Oracle:10g(10.2.0.5):纯控制台console版本的dbca:不要java!
不解释!
一切都在批处理代码中! 关键,挺简单的。
1 @echo off 2 3 %~d0 4 cd "%~dp0" 5 title "%~n0" 6 7 set ORACLE_HOME=%cd% 8 set PATH=.;%ORACLE_HOME%\bin;%PATH% 9 10 title ORACLE_HOME=%ORACLE_HOME% 11 12 rem --------------------------------------------------- 13 14 set cn=7 15 set sid= 16 set ORACLE_SID= 17 set chrset= 18 set tt=c:\ade\aime_t7\oracle\oradata\seeddata 19 20 goto next1 21 rem --------------------------------------------------- 22 23 24 :next1 25 cls 26 set msg="设置 sid :" 27 title 1 of %cn% : %msg% 28 set /p sid=%msg% 29 echo %sid% 30 set ORACLE_SID=%sid% 31 echo "确认请按 Y, 否请按 N" 32 choice /C YN 33 set ch=%ERRORLEVEL% 34 if %ch%==0 exit 35 if %ch%==1 goto next2 36 if %ch%==2 goto next1 37 38 :next2 39 cls 40 set msg="设置数据库字符集 characterset :" 41 title 2 of %cn% : %msg% 42 echo "中文ZHS16GBK 请按Z, Unicode字符AL32UTF8 请按U" 43 choice /C ZU 44 set ch=%ERRORLEVEL% 45 rem if %ch%==1 set chrset=US7ASCII 46 if %ch%==1 set chrset=ZHS16GBK 47 if %ch%==2 set chrset=AL32UTF8 48 echo %chrset% 49 echo "确认请按 Y, 否请按 N" 50 choice /C YN 51 set ch=%ERRORLEVEL% 52 if %ch%==0 exit 53 if %ch%==1 goto next22 54 if %ch%==2 goto next2 55 56 :next22 57 cls 58 rem --------------------------------------- 59 60 61 62 63 :next3 64 set pfile=database\init%sid%.ora 65 set msg="创建初始化参数文件 %pfile% ..." 66 title 3 of %cn% : %msg% 67 68 rem ******************************* 69 echo shutdown abort; | sqlplus "/ as sysdba" >nul 70 ping -n 3 127.0.0.1>nul 71 72 rem ******************************* 73 mkdir c:\oradata 74 set dd=c:\oradata\%sid% 75 rmdir /s /q %dd% 76 mkdir %dd% 77 78 set pfile=database\init%sid%.ora 79 rem ****************** pfile ************* 80 echo db_name='%sid%'>%pfile% 81 echo db_name='SEEDDATA'>>%pfile% 82 echo compatible='10.2.0.2'>>%pfile% 83 echo control_files='%dd%\control_%sid%.ctl'>>%pfile% 84 echo sga_target=333M>>%pfile% 85 echo pga_aggregate_target=200M>>%pfile% 86 echo undo_tablespace='UNDOTBS1'>>%pfile% 87 88 echo db_create_file_dest='%dd%'>>%pfile% 89 rem echo diagnostic_dest='/tmp11' 90 rem echo audit_file_dest='/tmp11' 91 rem echo audit_trail='NONE' 92 93 echo --------initialize parameters----------- 94 type %pfile% 95 echo ---------------------------------------- 96 ping -n 2 127.0.0.1 >nul 97 98 :next4 99 set msg="准备环境,并启动实例 %sid% ..." 100 title 4 of %cn% : %msg% 101 102 103 rem ******************************* 104 start "oracle instance : %sid%" /min oracle.exe %sid% 105 ping -n 3 127.0.0.1>nul 106 107 rem ******************************* 108 start "rman for %sid%" /min rman target=/ 109 ping -n 1 127.0.0.1>nul 110 111 start "sqlplus for %sid%" /min sqlplus "/ as sysdba" 112 ping -n 1 127.0.0.1>nul 113 114 115 :next5 116 set msg="恢复模板数据库SEEDDATA ..." 117 title 5 of %cn% : %msg% 118 119 set tt=c:\ade\aime_t7\oracle\oradata\seeddata 120 set rman=rman.rman 121 rem ***************************************** 122 echo startup nomount;>%rman% 123 echo restore controlfile from '?\assistants\dbca\templates\Seed_Database.ctl';>>%rman% 124 125 echo startup mount;>>%rman% 126 echo catalog start with '?\assistants\dbca\templates\Seed';>>%rman% 127 128 echo run {>>%rman% 129 echo set newname for datafile 1 to '%dd%\system01.dbf';>>%rman% 130 echo set newname for datafile 2 to '%dd%\undotbs01.dbf';>>%rman% 131 echo set newname for datafile 3 to '%dd%\sysaux01.dbf';>>%rman% 132 echo set newname for datafile 4 to '%dd%\users01.dbf';>>%rman% 133 echo set newname for tempfile 1 to '%dd%\temp01.dbf';>>%rman% 134 echo restore database;>>%rman% 135 echo switch datafile all;>>%rman% 136 echo switch tempfile all;>>%rman% 137 echo }>>%rman% 138 echo;>>%rman% 139 140 rman target=/ @%rman% 141 142 143 set sql=sql.sql 144 rem ***************************************** 145 echo;>%sql% 146 echo set echo on>>%sql% 147 echo set sqlbl on>>%sql% 148 echo set pagesize 2000>>%sql% 149 echo set linesize 120>>%sql% 150 echo col now format A23>>%sql% 151 echo col name format A50>>%sql% 152 echo col type format A10>>%sql% 153 echo col file# format 999>>%sql% 154 155 echo -- startup nomount;>>%sql% 156 echo alter database rename file '%tt%\redo01.log' to '%dd%\redo01.log';>>%sql% 157 echo alter database rename file '%tt%\redo02.log' to '%dd%\redo02.log';>>%sql% 158 echo alter database rename file '%tt%\redo03.log' to '%dd%\redo03.log';>>%sql% 159 echo alter database open resetlogs;>>%sql% 160 echo select to_char(sysdate,'yyyy-mm-dd_hh24:mi:ss') as now, open_mode from v$database;>>%sql% 161 162 echo select 'datafile' as type,file#,name from v$datafile>>%sql% 163 echo union all>>%sql% 164 echo select 'tempfile',file#,name from v$tempfile>>%sql% 165 echo union all>>%sql% 166 echo select 'redolog',group#,member from v$logfile;>>%sql% 167 168 echo shutdown immediate;>>%sql% 169 echo startup mount;>>%sql% 170 echo exit;>>%sql% 171 172 sqlplus "/ as sysdba" @%sql% 173 174 175 :next6 176 set msg="重命名模板数据库SEEDDATA 为 %sid% ..." 177 title 6 of %cn% : %msg% 178 179 echo y | nid target=/ dbname=%sid% 180 rem 注意:执行完nid后,oracle实例十关闭的 181 182 set pfile=database\init%sid%.ora 183 rem ****************** pfile ************* 184 echo;>>%pfile% 185 echo db_name='%sid%'>>%pfile% 186 start "pfile for %sid%" /min type %pfile% 187 188 set sql=sql.sql 189 rem ***************************************** 190 echo;>%sql% 191 echo set echo on>>%sql% 192 echo set sqlbl on>>%sql% 193 echo startup mount;>>%sql% 194 echo alter database open resetlogs;>>%sql% 195 echo select open_mode from v$database;>>%sql% 196 echo exit;>>%sql% 197 198 sqlplus "/ as sysdba" @%sql% 199 200 201 202 :next7 203 set msg="修改数据库字符集为 %chrset% ..." 204 title 7 of %cn% : %msg% 205 206 set sql=sql.sql 207 rem ***************************************** 208 echo;>%sql% 209 echo set echo on>>%sql% 210 echo set sqlbl on>>%sql% 211 echo set pagesize 999>>%sql% 212 echo set linesize 120>>%sql% 213 echo col parameter format A26>>%sql% 214 echo col value format A35>>%sql% 215 echo startup restrict force;>>%sql% 216 echo alter database character set internal_convert %chrset%;>>%sql% 217 echo shutdown immediate;>>%sql% 218 echo startup;>>%sql% 219 echo select * from nls_database_parameters;>>%sql% 220 echo exit;>>%sql% 221 222 sqlplus "/ as sysdba" @%sql% 223 224 225 :pau 226 pause 227 goto pau
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)