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