Oracle
沒有歸檔日誌的 Oracle 重複數據庫
我正在嘗試在 oracle 11g 上執行從一台伺服器到另一台伺服器的重複操作(測試災難恢復)。我仍然非常了解 Oracle。
該系統沒有投入生產,它只是原型的開發,因此我們不需要歸檔日誌/重做日誌,所以這些被禁用,我認為這是令人困惑的事情。
我嘗試從 RMAN 執行以下操作:
DUPLICATE DATABASE TO RON NOREDO BACKUP LOCATION 'F:\2014_08_12' NOFILENAMECHECK;
一切似乎都很順利,但是過了一段時間(可能是半小時),複製失敗了。我認為這是重要的錯誤資訊:
ORA-39700: database must be opened with UPGRADE option
然後我在Google搜尋後嘗試了其他一些事情:
SQL> startup upgrade; ORA-01081: cannot start already-running ORACLE - shut it down first SQL> shutdown immediate; ORA-01109: database not open Database dismounted. ORACLE instance shut down. SQL> startup upgrade; ORACLE instance started. Total System Global Area 2538741760 bytes Fixed Size 2178416 bytes Variable Size 1409286800 bytes Database Buffers 1107296256 bytes Redo Buffers 19980288 bytes Database mounted. ORA-01113: file 1 needs media recovery ORA-01110: data file 1: 'C:\APP\CS\ORADATA\RONNIE\SYSTEM01.DBF' SQL> RECOVER DATABASE UNTIL CANCEL; ORA-00283: recovery session canceled due to errors ORA-16433: The database must be opened in read/write mode. SQL> ALTER DATABASE OPEN READ WRITE; ALTER DATABASE OPEN READ WRITE * ERROR at line 1: ORA-01113: file 1 needs media recovery ORA-01110: data file 1: 'C:\APP\CS\ORADATA\RONNIE\SYSTEM01.DBF'
……現在我陷入了死胡同。任何人都可以幫忙嗎?
原始重複命令的完整輸出:
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:04 output file name=C:\APP\RM\ORADATA\RON\CONTROL01.CTL output file name=C:\APP\RM\FLASH_RECOVERY_AREA\RON\CONTROL02.CTL Finished restore at 16-OCT-14 database mounted released channel: ORA_AUX_DISK_1 allocated channel: ORA_AUX_DISK_1 channel ORA_AUX_DISK_1: SID=63 device type=DISK contents of Memory Script: { set newname for datafile 1 to "C:\APP\CS\ORADATA\RONNIE\SYSTEM01.DBF"; set newname for datafile 2 to "C:\APP\CS\ORADATA\RONNIE\SYSAUX01.DBF"; set newname for datafile 3 to "C:\APP\CS\ORADATA\RONNIE\UNDOTBS01.DBF"; set newname for datafile 4 to "C:\APP\CS\ORADATA\RONNIE\USERS01.DBF"; set newname for datafile 5 to "C:\APP\CS\ORADATA\RONNIE\USERS2.DBF"; set newname for datafile 6 to "C:\APP\CS\ORADATA\RONNIE\USERS3.DBF"; restore clone database ; } executing Memory Script executing command: SET NEWNAME executing command: SET NEWNAME executing command: SET NEWNAME executing command: SET NEWNAME executing command: SET NEWNAME executing command: SET NEWNAME Starting restore at 16-OCT-14 using channel ORA_AUX_DISK_1 channel ORA_AUX_DISK_1: starting datafile backup set restore channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set channel ORA_AUX_DISK_1: restoring datafile 00003 to C:\APP\CS\ORADATA\RONNIE\UNDOTBS01.DBF channel ORA_AUX_DISK_1: restoring datafile 00005 to C:\APP\CS\ORADATA\RONNIE\USERS2.DBF channel ORA_AUX_DISK_1: reading from backup piece F:\2014_08_12\JCPKATMD_1_1 channel ORA_AUX_DISK_1: piece handle=F:\2014_08_12\JCPKATMD_1_1 tag=BACKUP_RONNIE_0000_100514094607 channel ORA_AUX_DISK_1: restored backup piece 1 channel ORA_AUX_DISK_1: reading from backup piece F:\2014_08_12\JCPKATMD_2_1 channel ORA_AUX_DISK_1: piece handle=F:\2014_08_12\JCPKATMD_2_1 tag=BACKUP_RONNIE_0000_100514094607 channel ORA_AUX_DISK_1: restored backup piece 2 channel ORA_AUX_DISK_1: reading from backup piece F:\2014_08_12\JCPKATMD_3_1 channel ORA_AUX_DISK_1: piece handle=F:\2014_08_12\JCPKATMD_3_1 tag=BACKUP_RONNIE_0000_100514094607 channel ORA_AUX_DISK_1: restored backup piece 3 channel ORA_AUX_DISK_1: reading from backup piece F:\2014_08_12\JCPKATMD_4_1 channel ORA_AUX_DISK_1: piece handle=F:\2014_08_12\JCPKATMD_4_1 tag=BACKUP_RONNIE_0000_100514094607 channel ORA_AUX_DISK_1: restored backup piece 4 channel ORA_AUX_DISK_1: reading from backup piece F:\2014_08_12\JCPKATMD_5_1 channel ORA_AUX_DISK_1: piece handle=F:\2014_08_12\JCPKATMD_5_1 tag=BACKUP_RONNIE_0000_100514094607 channel ORA_AUX_DISK_1: restored backup piece 5 channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:18:58 channel ORA_AUX_DISK_1: starting datafile backup set restore channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set channel ORA_AUX_DISK_1: restoring datafile 00001 to C:\APP\CS\ORADATA\RONNIE\SYSTEM01.DBF channel ORA_AUX_DISK_1: restoring datafile 00006 to C:\APP\CS\ORADATA\RONNIE\USERS3.DBF channel ORA_AUX_DISK_1: reading from backup piece F:\2014_08_12\JEPKATME_1_1 channel ORA_AUX_DISK_1: piece handle=F:\2014_08_12\JEPKATME_1_1 tag=BACKUP_RONNIE_0000_100514094607 channel ORA_AUX_DISK_1: restored backup piece 1 channel ORA_AUX_DISK_1: reading from backup piece F:\2014_08_12\JEPKATME_2_1 channel ORA_AUX_DISK_1: piece handle=F:\2014_08_12\JEPKATME_2_1 tag=BACKUP_RONNIE_0000_100514094607 channel ORA_AUX_DISK_1: restored backup piece 2 channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:10:40 channel ORA_AUX_DISK_1: starting datafile backup set restore channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set channel ORA_AUX_DISK_1: restoring datafile 00002 to C:\APP\CS\ORADATA\RONNIE\SYSAUX01.DBF channel ORA_AUX_DISK_1: restoring datafile 00004 to C:\APP\CS\ORADATA\RONNIE\USERS01.DBF channel ORA_AUX_DISK_1: reading from backup piece F:\2014_08_12\JDPKATMD_1_1 channel ORA_AUX_DISK_1: piece handle=F:\2014_08_12\JDPKATMD_1_1 tag=BACKUP_RONNIE_0000_100514094607 channel ORA_AUX_DISK_1: restored backup piece 1 channel ORA_AUX_DISK_1: reading from backup piece F:\2014_08_12\JDPKATMD_2_1 channel ORA_AUX_DISK_1: piece handle=F:\2014_08_12\JDPKATMD_2_1 tag=BACKUP_RONNIE_0000_100514094607 channel ORA_AUX_DISK_1: restored backup piece 2 channel ORA_AUX_DISK_1: reading from backup piece F:\2014_08_12\JDPKATMD_3_1 channel ORA_AUX_DISK_1: piece handle=F:\2014_08_12\JDPKATMD_3_1 tag=BACKUP_RONNIE_0000_100514094607 channel ORA_AUX_DISK_1: restored backup piece 3 channel ORA_AUX_DISK_1: reading from backup piece F:\2014_08_12\JDPKATMD_4_1 channel ORA_AUX_DISK_1: piece handle=F:\2014_08_12\JDPKATMD_4_1 tag=BACKUP_RONNIE_0000_100514094607 channel ORA_AUX_DISK_1: restored backup piece 4 channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:17:41 Finished restore at 16-OCT-14 contents of Memory Script: { switch clone datafile all; } executing Memory Script datafile 1 switched to datafile copy input datafile copy RECID=1 STAMP=861118160 file name=C:\APP\CS\ORADATA\RONNIE\SYSTEM01.DBF datafile 2 switched to datafile copy input datafile copy RECID=2 STAMP=861118160 file name=C:\APP\CS\ORADATA\RONNIE\SYSAUX01.DBF datafile 3 switched to datafile copy input datafile copy RECID=3 STAMP=861118160 file name=C:\APP\CS\ORADATA\RONNIE\UNDOTBS01.DBF datafile 4 switched to datafile copy input datafile copy RECID=4 STAMP=861118160 file name=C:\APP\CS\ORADATA\RONNIE\USERS01.DBF datafile 5 switched to datafile copy input datafile copy RECID=5 STAMP=861118160 file name=C:\APP\CS\ORADATA\RONNIE\USERS2.DBF datafile 6 switched to datafile copy input datafile copy RECID=6 STAMP=861118160 file name=C:\APP\CS\ORADATA\RONNIE\USERS3.DBF contents of Memory Script: { recover clone database noredo delete archivelog ; } executing Memory Script Starting recover at 16-OCT-14 using channel ORA_AUX_DISK_1 Finished recover at 16-OCT-14 contents of Memory Script: { shutdown clone immediate; startup clone nomount; sql clone "alter system set db_name = ''RON'' comment= ''Reset to original value by RMAN'' scope=spfile"; sql clone "alter system reset db_unique_name scope=spfile"; shutdown clone immediate; startup clone nomount; } executing Memory Script database dismounted Oracle instance shut down connected to auxiliary database (not started) Oracle instance started Total System Global Area 2538741760 bytes Fixed Size 2178416 bytes Variable Size 1409286800 bytes Database Buffers 1107296256 bytes Redo Buffers 19980288 bytes sql statement: alter system set db_name = ''RON'' comment= ''Reset to original value by RMAN'' scope=spfile sql statement: alter system reset db_unique_name scope=spfile Oracle instance shut down connected to auxiliary database (not started) Oracle instance started Total System Global Area 2538741760 bytes Fixed Size 2178416 bytes Variable Size 1409286800 bytes Database Buffers 1107296256 bytes Redo Buffers 19980288 bytes sql statement: CREATE CONTROLFILE REUSE SET DATABASE "RON" RESETLOGS NOARCHIVELOG MAXLOGFILES 16 MAXLOGMEMBERS 3 MAXDATAFILES 100 MAXINSTANCES 8 MAXLOGHISTORY 2336 LOGFILE GROUP 1 SIZE 300 M , GROUP 2 SIZE 300 M , GROUP 3 SIZE 300 M , GROUP 4 SIZE 50 M , GROUP 5 SIZE 300 M , GROUP 6 SIZE 50 M DATAFILE 'C:\APP\CS\ORADATA\RONNIE\SYSTEM01.DBF' CHARACTER SET WE8MSWIN1252 contents of Memory Script: { set newname for tempfile 1 to "C:\APP\CS\ORADATA\RONNIE\TEMP01.DBF"; set newname for tempfile 2 to "C:\APP\CS\ORADATA\RONNIE\TEMP02.DBF"; switch clone tempfile all; catalog clone datafilecopy "C:\APP\CS\ORADATA\RONNIE\SYSAUX01.DBF", "C:\APP\CS\ORADATA\RONNIE\UNDOTBS01.DBF", "C:\APP\CS\ORADATA\RONNIE\USERS01.DBF", "C:\APP\CS\ORADATA\RONNIE\USERS2.DBF", "C:\APP\CS\ORADATA\RONNIE\USERS3.DBF"; switch clone datafile all; } executing Memory Script executing command: SET NEWNAME executing command: SET NEWNAME renamed tempfile 1 to C:\APP\CS\ORADATA\RONNIE\TEMP01.DBF in control file renamed tempfile 2 to C:\APP\CS\ORADATA\RONNIE\TEMP02.DBF in control file cataloged datafile copy datafile copy file name=C:\APP\CS\ORADATA\RONNIE\SYSAUX01.DBF RECID=1 STAMP=861118211 cataloged datafile copy datafile copy file name=C:\APP\CS\ORADATA\RONNIE\UNDOTBS01.DBF RECID=2 STAMP=861118211 cataloged datafile copy datafile copy file name=C:\APP\CS\ORADATA\RONNIE\USERS01.DBF RECID=3 STAMP=861118211 cataloged datafile copy datafile copy file name=C:\APP\CS\ORADATA\RONNIE\USERS2.DBF RECID=4 STAMP=861118211 cataloged datafile copy datafile copy file name=C:\APP\CS\ORADATA\RONNIE\USERS3.DBF RECID=5 STAMP=861118211 datafile 2 switched to datafile copy input datafile copy RECID=1 STAMP=861118211 file name=C:\APP\CS\ORADATA\RONNIE\SYSAUX01.DBF datafile 3 switched to datafile copy input datafile copy RECID=2 STAMP=861118211 file name=C:\APP\CS\ORADATA\RONNIE\UNDOTBS01.DBF datafile 4 switched to datafile copy input datafile copy RECID=3 STAMP=861118211 file name=C:\APP\CS\ORADATA\RONNIE\USERS01.DBF datafile 5 switched to datafile copy input datafile copy RECID=4 STAMP=861118211 file name=C:\APP\CS\ORADATA\RONNIE\USERS2.DBF datafile 6 switched to datafile copy input datafile copy RECID=5 STAMP=861118211 file name=C:\APP\CS\ORADATA\RONNIE\USERS3.DBF contents of Memory Script: { Alter clone database open resetlogs; } executing Memory Script RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-00601: fatal error in recovery manager RMAN-03004: fatal error during execution of command RMAN-10041: Could not re-create polling channel context following failure. RMAN-10024: error setting up for rpc polling RMAN-10005: error opening cursor RMAN-10002: ORACLE error: ORA-03114: not connected to ORACLE RMAN-03002: failure of Duplicate Db command at 10/16/2014 15:30:52 RMAN-03015: error occurred in stored script Memory Script RMAN-06136: ORACLE error from auxiliary database: ORA-01092: ORACLE instance terminated. Disconnection forced ORA-00704: bootstrap process failure ORA-39700: database must be opened with UPGRADE option Process ID: 148156 Session ID: 4 Serial number: 5
兩件事情:
兩個數據庫之間的 Oracle 二進製文件是否相同?當您從 11.0 到 11.2 二進製文件並且目錄需要更新時,通常會出現該消息。平台也需要相同(Linux/Windows 不能混合使用)。
如果您嘗試複製一個打開的數據庫,並且您沒有歸檔日誌,您將因介質恢復錯誤而失敗。被複製的數據庫必須關閉,或者您必須有歸檔日誌。您的問題不清楚它是否已關閉。