随笔 - 746  文章 - 0  评论 - 39  阅读 - 79万

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
复制代码

 

posted on   jinzhenshui  阅读(46)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)

点击右上角即可分享
微信分享提示