1、什麼是oradim ORADIM工具是Oracle在Windows上的一個命令列工具,用於手工進行Oracle服務的建立、修改、刪除等工作。ORADIM的使用很簡單,通過協助檔案可以看到常用的命令樣本,此處不再贅述。
ORADIM在資料庫恢複中也常被用到,很多朋友都問過這樣的問題:在Windows上,如果系統崩潰了,可能資料庫軟體丟掉了,但是資料檔案、控制檔案、記錄檔等都還在,該怎樣來恢複Oracle資料庫。
其實過程很簡單,通常只要按原來的目錄結構重新安裝Oracle軟體,然後通過ORADIM工具重建服務,就可以啟動執行個體、載入資料庫(當然相關的參數檔案和口令檔案等需要在$ORACLE_HOME/database目錄存在)。
來看以下過程,通過ORADIM建立一個服務後,執行個體會隨之啟動:
C:/>oradim -new -sid eygle 用net命令可以查看系統啟動了哪些服務,看到Oracle的服務已經啟動:
C:/>net start
已經啟動以下 Windows 服務: OracleServiceeygle
Plug and Play
Print Spooler 如果你的系統裝了一些UNIX增強工具,那麼可以通過grep過濾一下:
C:/>net start |grep Oracle
OracleServiceeygle
使用ORADIM工具後,會在$ORACLE_HOME/database目錄下產生一個記錄檔。 2、Oradim工具的用法建立常式:
-NEW -SID sid | -SRVC 服務 [-INTPWD 口令] [-MAXUSERS 數量] [-STARTMODE a|m] [-PFILE 檔案] [-TIMEOUT 秒] 編輯常式:
-EDIT -SID sid [-NEWSID sid] [-INTPWD 口令] [-STARTMODE auto|manual] [-PFILE 檔案名稱] [-SHUTMODE a|i|n] [-SHUTTYPE srvc|inst|srvc,inst] [-TIMEOUT 秒] 刪除常式:
-DELETE -SID sid | -SRVC 服務名稱 -STARTUP -SID sid [-USRPWD 口令] [-STARTTYPE srvc|inst|srvc,inst] [-PFILE 檔案名稱] -SHUTDOWN -SID sid [-USRPWD 口令] [-SHUTTYPE srvc|inst|srvc,inst] [-SHUTMODE a | i | n] -? | -h | -help -SID sid 指定要啟動的執行個體名稱
-SRVC 服務 指定要啟動的服務名稱
-USRPWD 口令 指定內部使用者的口令,如果作為NT管理員登入,不用此參數
-PFILE 檔案名稱 為執行個體指明初始化參數檔案,如果參數檔案在Oracle的預設位置,則不需要此命令
-STARTTYPE srvc|inst|srvc,inst 表示要啟動什么srvc—只啟動服務inst—啟動執行個體,服務必須已經啟動並開始工作了srvc,inst —服務和執行個體都啟動
-SHUTTYPE srvc|inst|srvc,inst 表示要終止什么,參數選項同上
-STARTMODE a|m 表示啟動執行個體所使用的模式a—auto方式(自動)m—manual方式(手動)
-SHUTMODE a|i|n 表示終止執行個體所使用的關閉模式a—abort方式i—immediate方式n—normal方式 1.在服務裡產生一個新的執行個體管理服務,啟動方式為手工
oradim -NEW -SID test -STARTMODE manual -PFILE "D:/Oracle/admin/test/pfile/inittest.ora
oradim -NEW -SRVC OracleServicetest -STARTMODE manual -PFILE "D:/Oracle/admin/test/pfile/inittest.ora
註:有效服務名為 “OracleService” 後跟“ SID”
-SID test 與 -SRVC OracleServicetest 等價 2.刪除此執行個體或服務
oradim -DELETE -SID test
oradim -DELETE -SRVC OracleServicetest
3.編輯此執行個體,啟動方式改為手動
oradim -EDIT -SID test -STARTMODE manual
4.編輯此執行個體,啟動方式改為自動
oradim -EDIT -SID test -STARTMODE auto
5. 啟動test
oradim -STARTUP -SID test
oradim -STARTUP -SID test -STARTTYPE srvc,inst
6.只啟動test服務
oradim -STARTUP -SID test -STARTTYPE srvc
7.只啟動test執行個體
oradim -STARTUP -SID test -STARTTYPE inst
8. 關閉test
oradim -SHUTDOWN -SID test
oradim -SHUTDOWN -SID test -SHUTTYPE srvc,inst 3、舉一個windows的例子助於理解在Windows上如果系統崩潰了,資料檔案、控制檔案、記錄檔等都還在,怎樣來恢複Oracle資料庫? 如果軟體也損失了,那麼需要重新安裝一下資料庫軟體,以恢複Windows相關環境變數等資訊。
很多人抱怨我的新書很少關於Windows的內容,實際上,Windows和Linux/Unix上的操作沒有什麼不同,Windows本身就是一個仿Unix的系統。
那麼好吧,我還是用一個系列的文章介紹一下我所使用的Windows系統,以及我所認為的資料庫系統無關性。首先開啟一個cmd命令列視窗。
開始->運行->cmd
我的Oracle軟體安裝在D:oracle :
D:>dir oracle
磁碟機 D 中的卷是 PRIVAT
卷的序號是 94B0-FD3B
D:oracle 的目錄
2006-08-16 14:14 <DIR> .
2006-08-16 14:14 <DIR> ..
2006-08-16 14:14 <DIR> ora10gR2
0 個檔案 0 位元組
3 個目錄 941,744,128 可用位元組我的資料檔案位於D:oradata下:
D:>dir d:oradata
磁碟機 D 中的卷是 PRIVAT
卷的序號是 94B0-FD3B
d:oradata 的目錄
2006-08-16 14:25 <DIR> .
2006-08-16 14:25 <DIR> ..
2005-09-12 16:40 <DIR> flash_recovery_area
2005-09-12 16:40 <DIR> EYGLE
0 個檔案 0 位元組
4 個目錄 941,744,128 可用位元組現在讓我們用oradim建立一個執行個體,實際上也就是建立一個Windows服務:
C:>oradim -new -sid eygle 我們用net命令可以查看系統啟動了哪些服務,我們看到Oracle的服務已經啟動:
C:>net start
已經啟動以下 Windows 服務: O&O Defrag
OracleServiceeygle
Plug and Play
Print Spooler 命令成功完成。如果你的系統裝了一些Unix增強工具,那麼可以通過grep過濾一下:
C:>net start |grep Oracle
OracleServiceeygle
Unix命令工具可以在Sourceforge (http://sourceforge.net/projects/gnuwin32/) 下載.
此時我們就可以通過啟動執行個體,掛接原有資料庫,啟動Oracle資料庫了。當然你可能還有一些其他工作需要完成,比如重建口令檔案等。 C:>oradim -delete -sid eygle 當然做好備份仍然是最重要的,我見過有的企業將檔案分散在很多邏輯分區上,結果隨系統崩潰丟失了部分檔案,損失也是相當慘重的。
在Linux/Unix上不需要服務來啟動執行個體,也就不存在這樣類似的操作。不過在命令列操作,一切都是類似的。 http://www.eygle.com/archives/2006/08/oracle10g_on_windows.html