正式環境:windows 2008 r2-32bit/ Oracle: Release 11.2.0.1.0
目標環境:windows 2012 Standard-64bit / Oracle: Release 11.2.0.1.0
備份工具:EMC Avamar 7.5.1-RMAM全備sql
Avamar自動配置RMAN腳本,全備數據庫,自動腳本日誌內容以下(圖形界面配置的,自動生成以下腳本,也能夠手工寫腳本備份):數據庫
1> RMAN> @@ORCL-24081.tmp 2> connect target *; 3> **文件結尾** 4> run { 5> configure controlfile autobackup on; 6> set controlfile autobackup format for device type sbt to 'CONTROLFILE.ORCL.%F'; 7> allocate channel c0 type sbt PARMS="SBT_LIBRARY=C:\PROGRA~1\avs\bin\LIBOBK~1.DLL" format '%d_%U'; 8> send channel 'c0' '"--libport=55154" "--force-expires" "--ctlusessl=false" "--cacheprefix=ORCL_c0" "--sysdir=C:\Program Files\avs\etc" "--bindir=C:\Program Files\avs\bin" "--vardir=C:\Program Files\avs\var\clientlogs" "--logfile=C:\Program Files\avs\var\clientlogs\yongyouLV0-yongyouLV0-1553436000010-3002-OracleORCL-avtar0.log" "--ctlcallport=55152"'; 9> backup filesperset = 1 incremental level = 0 database plus archivelog delete input; 10> } 11>
採用了Avamar恢復數據庫的方式,實際上也是RMAN腳本,按照要求使用dbca命令創建好相同實例名稱等,並備份相關控制文件(此步驟在Linux上能夠手工創建)開始還原。其中須要注意的問題包含了恢復段的SCN號。開始沒注意,致使完報錯以下:windows
歸檔日誌文件名=E:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2019_03_21\O1_MF_1_29360_G97XBTPZ_.ARC 線程=1 序列=29360 通道 default: 正在刪除歸檔日誌 歸檔日誌文件名=E:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2019_03_21\O1_MF_1_29360_G97XBTPZ_.ARC RECID=8674 STAMP=1003498474 沒法找到歸檔日誌 歸檔日誌線程=1 序列=29361 釋放的通道: c0 RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03002: recover 命令 (在 03/21/2019 13:34:38 上) 失敗 RMAN-06054: 介質恢復正在請求未知的線程 1 序列 29361 的歸檔日誌以及起始 SCN 983751610
再次使用SCN號參數恢復後,Avamar中顯示恢復正常,但使用rman target / nocatalog 訪問恢復後的數據庫時,忽然發現數據庫沒法啓動,報錯以下:oracle
RMAN-00571: ==================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ======== RMAN-00571: ==================================================== RMAN-00554: 內部恢復管理器程序包初始化失敗 RMAN-04005: 目標數據庫中存在錯誤: ORA-12432: LBAC 錯誤: zllesesinit:OCIStmtExecute
使用 sqlplus / as sysdba能夠登錄數據庫,但沒法執行SQL語句,報錯以下:工具
ORA-01012: not logged on
在網上找了下相同狀況的問題,其中在oracle官網找到了相似問題,以下圖:
網站
同時其餘網站上大部分給出的解決方式爲:this
--Oracle給出的解決方案 --To solve this situation the LBAC option has to be disabled: Step 1 cd $ORACLE_HOME/rdbms/lib make -f ins_rdbms.mk lbac_off ioracle -- Author : Robinson Cheng -- Blog : http://blog.csdn.net/robinson_0612 -- DB Forum : http://bbs.dbsupport.cn Step 2 $ sqlplus "/ as sysdba" SQL> startup migrate SQL> @?/rdbms/admin/catnools.sql SQL> shutdown immediate SQL> startup SQL> select * from v$version where rownum<2;
但因爲這次的環境爲windows,嘗試了使用step2的方式仍是不行,又在網上找了下,發現別人的一片文章,連接以下:Fix ORA-12432: LBAC error: zllesesinit:OCIStmtExecute when you cannot logon - General Database Discussions。其中根據做者所述:
.net
給了我解決思路。因而我採用此方式。sqlplus / as sysdba後先abort數據庫,在嘗試使用Step2的步驟線程
SQL>shutdown abort SQL> startup migrate
此時數據庫居然起來了,繼續執行Step2的步驟日誌
SQL> @?/rdbms/admin/catnools.sql
發生報錯ORA-06553: PLS-801: 內部錯誤 [56327]。嘗試解決以下:
SQL>shutdown abort SQL> startup upgrade SQL> @?/rdbms/admin/utlirp SQL> shutdown immediate
此時,又發生了報錯ORA-12432: LBAC 錯誤: zllesesinit:OCIStmtExecute。繼續嘗試執行:
SQL>shutdown abort SQL> startup upgrade SQL> @?/rdbms/admin/utlrp
此後在此步驟一直卡住不動了,嘗試開啓了新的窗口,從新執行:
SQL> shutdown abort SQL> startup migrate SQL> @?/rdbms/admin/catnools.sql
此時數據庫居然沒報錯,再次使用如下命令後,數據庫正常啓動。
SQL> shutdown immediate SQL> startup SQL> select * from v$version where rownum<2;
實際上本次遷移主要遇到的問題是: