Oracle在非歸檔模式下不能更改資料表空間為備份模式
Oracle資料表空間設定為備份模式後,便可以聯機對錶空間下資料檔案進行檔案系統層級的copy備份操作,因為期間對錶空間的修改都記錄到資料庫的重做記錄檔中。
由此想到資料庫如果是非歸檔模式,那麼這個資料表空間備份模式的時間必須不能超過聯機日誌被覆蓋的時間,才能保證資料的修改不會丟失。
那麼Oracle對這種情況是如何擇決的呢?
實驗表明:Oracle是乾脆不讓你在非歸檔模式下開啟資料表空間的備份模式。
報錯如下: ORA-01123: cannot start online backup; media recovery not enabled
實驗驗證如下: 環境:RHEL 6.4 + Oracle 11.2.0.3
1.歸檔模式下可以開啟資料表空間的備份模式。
SQL> alter tablespace TT begin backup;
Tablespace altered.
SQL> host cp /home/oradata/JYZHAO/datafile/tt.dbf /tmp/
SQL> alter tablespace TT end backup;
Tablespace altered.
SQL> !ls -lh /tmp |grep tt
-rw-r-----. 1 oracle oinstall 11M Sep 17 17:06 tt.dbf
SQL> archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 1876
Next log sequence to archive 1879
Current log sequence 1879
2.修改資料庫為非歸檔模式下,發現資料表空間的備份模式開啟將不被允許。
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.
Total System Global Area 413372416 bytes
Fixed Size 2228904 bytes
Variable Size 356519256 bytes
Database Buffers 46137344 bytes
Redo Buffers 8486912 bytes
Database mounted.
SQL> alter database noarchivelog;
Database altered.
SQL> archive log list
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 1876
Current log sequence 1879
SQL> alter database open;
Database altered.
SQL> alter tablespace TT begin backup;
alter tablespace TT begin backup
*
ERROR at line 1:
ORA-01123: cannot start online backup; media recovery not enabled