天天看點

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

删除oracle資料庫中已經建立的資料庫,按照備份的oracle路徑重新安裝建立資料庫,路徑、資料庫SMID必須和原來的完全一緻。

  停止所有的Oracle服務,到oracle安裝目錄下,把建立的資料庫删除,把備份的檔案夾複制進來。

  重新啟動oracle服務,此時可以通過sqlplus對資料庫進行相關的操作,但要使用EM(Enterprise Manager)對資料庫進行管理時會顯示“Enterprise Manager 無法連接配接到資料庫執行個體,下面列出了元件的狀态”的資訊,此時EM無法正常使用。出現問題的原因很多,可以用emca重建資料庫解決。

  emca重建資料庫:

  用sqlplus登入,删除早期DBCONSOLE建立的使用者:

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

  錯誤原因:用64位系統上的備份片将資料庫還原到32位系統中所産生,反過來也會産生此錯誤。

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

  其中:

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

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

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

  接下來繼續重建資料庫

  删除早期DBCONSOLE建立的對象:

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

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

  解鎖:SQL> alter user dbsnmp account unlock;

  送出:SQL> commit;

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

  注意:送出很重要,不然解鎖不會生效。

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

  [oracle@localhost~]emca -repos recreate

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

  意思是:連接配接oracle資料庫出現oracleORA-12526: TNS:監聽程式: 所有适用例程都處于受限模式。

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

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

  導緻受限

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

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

  解決完以後再次執行:

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

  [oracle@localhost~]# emctl stop agent

  最後開始重建資料庫:

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

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

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

  [oracle@localhost ~]# emctl start dbconsole