1. 程式人生 > 其它 >Oracle:10g(10.2.0.5):純控制檯console版本的dbca:不要java!

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