Oracle數據庫冷備份的還原及emca重建資料庫

刪除oracle數據庫中已經建立的數據庫,按照備份的oracle路徑重新安裝新建數據庫,路徑、數據庫SMID必須和原來的完全一致。

停止所有的Oracle服務,到oracle安裝目錄下,把新建的數據庫刪除,把備份的文件夾複製進來。

重新啓動oracle服務,此時可以通過sqlplus對數據庫進行相關的操作,但要使用EM(Enterprise Manager)對數據庫進行管理時會顯示“Enterprise Manager 無法連接到數據庫實例,下面列出了組件的狀態”的信息,此時EM無法正常使用。出現問題的原因很多,可以用emca重建資料庫解決。

emca重建資料庫:

用sqlplus登錄,刪除早期DBCONSOLE創建的用戶:

SQL> dropuser sysman cascade;

若正常的話會等待一段時間,可能會出現如下錯誤:

=========================================================

ERROR at line 1:

ORA-06553: PLS-801: internal error [56319]

=========================================================

錯誤原因:用64位系統上的備份片將數據庫還原到32位系統中所產生,反過來也會產生此錯誤。

解決方案:運行腳本用32位系統重新編譯一下內核參數即可

SQL> shutdown immediate;

SQL> startup upgrade;

SQL> @?/rdbms/admin/utlirp.sql

SQL> @?/rdbms/admin/utlrp.sql

SQL> shutdown immediate;

SQL> startup;

其中:

utlirp.sql的作用是把相關內容全部在32bit平臺下編譯一遍.

utlrp.sql的作用是編譯所有失效對象.

然後再重新連接,就不會報錯了。

接下來繼續重建資料庫

SQL> droprole MGMT_USER;

SQL> dropuser MGMT_VIEW cascade;

刪除早期DBCONSOLE創建的對象:

SQL> droppublic synonym MGMT_TARGET_BLACKOUTS;

SQL> droppublic synonym SETEMVIEWUSERCONTEXT;

 

在配置oem時遇到“DBSNMP 用戶名或密碼無效”的錯誤,原因是DBSNMP系統用戶可能被鎖用,所以我們首先解鎖DBSNMP用戶。

登錄:SQL> conn sys/密碼 as sysdba

解鎖:SQL> alter user dbsnmp account unlock;

提交:SQL> commit;

修改密碼:SQL> alter user dbsnmp identified by 你的新密碼;

提交:SQL> commit;

注意:提交很重要,不然解鎖不會生效。

 

開始重新創建資料庫,在命令行執行以下命令:

[oracle@localhost~]emca -repos recreate

此時如出現(一般不會出現)如下錯誤:

=========================================================

ORA-12526: TNS:listener: all appropriate instances are in restricted mode

=========================================================

意思是:連接oracle數據庫出現oracleORA-12526: TNS:監聽程序: 所有適用例程都處於受限模式。

原因是之前改字符集時執行了:

[oracle@localhost~]# ALTER SYSTEM ENABLE RESTRICTEDSESSION

導致受限

解決辦法:使用系統管理員身份運行以下一段代碼

[oracle@localhost~]# ALTER SYSTEM DISABLE RESTRICTEDSESSION;

解決完以後再次執行:

[oracle@localhost~]# emca -repos recreate

此時會提示輸入相關參數,按照提示輸入即可,其中監聽程序端口號爲: 1521 ,等待一小會時間,執行完畢以後再停止agent

[oracle@localhost~]# emctl stop agent

最後開始重建資料庫:

[oracle@localhost~]# emca -config dbcontrol db

此時同樣會提示輸入相關參數,按照提示輸入即可,其中監聽程序端口號還是爲爲: 1521 ,其中通知的電子郵件地址 (可選)和通知的發件 (SMTP) 服務器 (可選)兩項可以不寫,直接按enter鍵。

再次等待一小會時間,執行完畢以後重建資料庫成功,啓動Enterprise Manager:

 [oracle@localhost ~]# emctl start dbconsole

在瀏覽器地址欄輸入:http://localhost:1158/em即可使用Enterprise Manager管理數據庫。若其他機器無法連接,關閉防火牆即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章