不解释!
一切都在批处理代码中! 关键,挺简单的。
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
Original: https://www.cnblogs.com/jinzhenshui/p/16224565.html
Author: jinzhenshui
Title: Oracle:10g(10.2.0.5):纯控制台console版本的dbca:不要java!
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/538904/
转载文章受原作者版权保护。转载请注明原作者出处!