刪除
oracle數(shù)據(jù)庫(kù)中已經(jīng)建立的
數(shù)據(jù)庫(kù),按照備份的oracle路徑重新安裝新建數(shù)據(jù)庫(kù),路徑、數(shù)據(jù)庫(kù)SMID必須和原來(lái)的完全一致。
停止所有的Oracle服務(wù),到oracle安裝目錄下,把新建的數(shù)據(jù)庫(kù)刪除,把備份的文件夾復(fù)制進(jìn)來(lái)。
重新啟動(dòng)oracle服務(wù),此時(shí)可以通過(guò)sqlplus對(duì)數(shù)據(jù)庫(kù)進(jìn)行相關(guān)的操作,但要使用EM(Enterprise Manager)對(duì)數(shù)據(jù)庫(kù)進(jìn)行管理時(shí)會(huì)顯示“Enterprise Manager 無(wú)法連接到數(shù)據(jù)庫(kù)實(shí)例,下面列出了組件的狀態(tài)”的信息,此時(shí)EM無(wú)法正常使用。出現(xiàn)問(wèn)題的原因很多,可以用emca重建資料庫(kù)解決。
emca重建資料庫(kù):
用sqlplus登錄,刪除早期DBCONSOLE創(chuàng)建的用戶:
SQL> dropuser sysman cascade;
若正常的話會(huì)等待一段時(shí)間,可能會(huì)出現(xiàn)如下錯(cuò)誤:
=========================================================
ERROR at line 1:
ORA-06553: PLS-801: internal error [56319]
=========================================================
錯(cuò)誤原因:用64位系統(tǒng)上的備份片將數(shù)據(jù)庫(kù)還原到32位系統(tǒng)中所產(chǎn)生,反過(guò)來(lái)也會(huì)產(chǎn)生此錯(cuò)誤。
解決方案:運(yùn)行腳本用32位系統(tǒng)重新編譯一下內(nèi)核參數(shù)即可
SQL> shutdown immediate;
SQL> startup upgrade;
SQL> @?/rdbms/admin/utlirp.sql
SQL> @?/rdbms/admin/utlrp.sql
SQL> shutdown immediate;
SQL> startup;
其中:
utlirp.sql的作用是把相關(guān)內(nèi)容全部在32bit平臺(tái)下編譯一遍.
utlrp.sql的作用是編譯所有失效對(duì)象.
然后再重新連接,就不會(huì)報(bào)錯(cuò)了。
接下來(lái)繼續(xù)重建資料庫(kù)
SQL> droprole MGMT_USER;
SQL> dropuser MGMT_VIEW cascade;
刪除早期DBCONSOLE創(chuàng)建的對(duì)象:
SQL> droppublic synonym MGMT_TARGET_BLACKOUTS;
SQL> droppublic synonym SETEMVIEWUSERCONTEXT;
在配置oem時(shí)遇到“DBSNMP 用戶名或密碼無(wú)效”的錯(cuò)誤,原因是DBSNMP系統(tǒng)用戶可能被鎖用,所以我們首先解鎖DBSNMP用戶。
登錄:SQL> conn sys/密碼 as sysdba
解鎖:SQL> alter user dbsnmp account unlock;
提交:SQL> commit;
修改密碼:SQL> alter user dbsnmp identified by 你的新密碼;
提交:SQL> commit;
注意:提交很重要,不然解鎖不會(huì)生效。
開始重新創(chuàng)建資料庫(kù),在命令行執(zhí)行以下命令:
[oracle@localhost~]emca -repos recreate
此時(shí)如出現(xiàn)(一般不會(huì)出現(xiàn))如下錯(cuò)誤:
=========================================================
ORA-12526: TNS:listener: all appropriate instances are in restricted mode
=========================================================
意思是:連接oracle數(shù)據(jù)庫(kù)出現(xiàn)oracleORA-12526: TNS:監(jiān)聽程序: 所有適用例程都處于受限模式。
原因是之前改字符集時(shí)執(zhí)行了:
[oracle@localhost~]# ALTER SYSTEM ENABLE RESTRICTEDSESSION;
導(dǎo)致受限
解決辦法:使用系統(tǒng)管理員身份運(yùn)行以下一段代碼
[oracle@localhost~]# ALTER SYSTEM DISABLE RESTRICTEDSESSION;
解決完以后再次執(zhí)行:
[oracle@localhost~]# emca -repos recreate
此時(shí)會(huì)提示輸入相關(guān)參數(shù),按照提示輸入即可,其中監(jiān)聽程序端口號(hào)為: 1521 ,等待一小會(huì)時(shí)間,執(zhí)行完畢以后再停止agent:
[oracle@localhost~]# emctl stop agent
最后開始重建資料庫(kù):
[oracle@localhost~]# emca -config dbcontrol db
此時(shí)同樣會(huì)提示輸入相關(guān)參數(shù),按照提示輸入即可,其中監(jiān)聽程序端口號(hào)還是為為: 1521 ,其中通知的電子郵件地址 (可選)和通知的發(fā)件 (SMTP) 服務(wù)器 (可選)兩項(xiàng)可以不寫,直接按enter鍵。
再次等待一小會(huì)時(shí)間,執(zhí)行完畢以后重建資料庫(kù)成功,啟動(dòng)Enterprise Manager:
[oracle@localhost ~]# emctl start dbconsole
在瀏覽器地址欄輸入:http://localhost:1158/em即可使用Enterprise Manager管理數(shù)據(jù)庫(kù)。若其他機(jī)器無(wú)法連接,關(guān)閉防火墻即可。