由此想到数据库如果是非归档模式,那么这个表空间备份模式的时间必须不能超过联机日志被覆盖的时间,才能保证数据的修改不会丢失。
那么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