Oracle:alter database datafile xxx offlie for drop
如果你的数据库处于非归档状态,你又不想切换为归档模式,你又希望将数据文件脱机,你又不希望遇到错误(如:http://d-prototype.com/archives/1665)。
在这样的情况下,你需要使用命令“alter database datafile xxx offline for drop”。
在使用“for drop”命令的时候,数据库文件上也是没有检查点的。
所以,在下次联机数据文件时,一样需要介质恢复。
和“for immediat”OFFLINE表空间不同的是:由于数据库没有处于归档日志模式,所以在做介质恢复时,如果需要的重做信息没有在联机重做日志中找到,则介质恢复无法完成。这种情况发生了,则之前通过“for drop”离线的数据文件,将无法联机。(这是“for drop”的风险)
正常的操作演示:
脱机:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
SQL> archive log list; Database log mode No Archive Mode Automatic archival Disabled Archive destination USE_DB_RECOVERY_FILE_DEST Oldest online log sequence 157 Current log sequence 159 SQL> SQL> select file_id,file_name,status,online_status from dba_data_files; FILE_ID FILE_NAME STATUS ONLINE_ ---------- ------------------------------------------------------- --------- ------- 1 /oradata/ATLAS/datafile/o1_mf_system_b5cyjwrl_.dbf AVAILABLE SYSTEM 3 /oradata/ATLAS/datafile/o1_mf_sysaux_b5cykjk4_.dbf AVAILABLE ONLINE 5 /oradata/ATLAS/datafile/o1_mf_undotbs1_b5cykxrb_.dbf AVAILABLE ONLINE 6 /oradata/ATLAS/datafile/o1_mf_users_b5cym96v_.dbf AVAILABLE ONLINE SQL> select tablespace_name,status from dba_tablespaces; TABLESPACE_NAME STATUS ------------------------------ --------- SYSTEM ONLINE SYSAUX ONLINE UNDOTBS1 ONLINE TEMP ONLINE USERS ONLINE SQL> SQL> alter database datafile 6 offline for drop; Database altered. SQL> select file_id,file_name,status,online_status from dba_data_files; FILE_ID FILE_NAME STATUS ONLINE_ ---------- ------------------------------------------------------- --------- ------- 1 /oradata/ATLAS/datafile/o1_mf_system_b5cyjwrl_.dbf AVAILABLE SYSTEM 3 /oradata/ATLAS/datafile/o1_mf_sysaux_b5cykjk4_.dbf AVAILABLE ONLINE 5 /oradata/ATLAS/datafile/o1_mf_undotbs1_b5cykxrb_.dbf AVAILABLE ONLINE 6 /oradata/ATLAS/datafile/o1_mf_users_b5cym96v_.dbf AVAILABLE RECOVER SQL> select tablespace_name,status from dba_tablespaces; TABLESPACE_NAME STATUS ------------------------------ --------- SYSTEM ONLINE SYSAUX ONLINE UNDOTBS1 ONLINE TEMP ONLINE USERS ONLINE SQL> |
联机:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
SQL> alter database datafile 6 online; alter database datafile 6 online * ERROR at line 1: ORA-01113: file 6 needs media recovery ORA-01110: data file 6: '/oradata/ATLAS/datafile/o1_mf_users_b5cym96v_.dbf' SQL> recover datafile 6; Media recovery complete. SQL> select file_id,file_name,status,online_status from dba_data_files; FILE_ID FILE_NAME STATUS ONLINE_ ---------- ------------------------------------------------------- --------- ------- 1 /oradata/ATLAS/datafile/o1_mf_system_b5cyjwrl_.dbf AVAILABLE SYSTEM 3 /oradata/ATLAS/datafile/o1_mf_sysaux_b5cykjk4_.dbf AVAILABLE ONLINE 5 /oradata/ATLAS/datafile/o1_mf_undotbs1_b5cykxrb_.dbf AVAILABLE ONLINE 6 /oradata/ATLAS/datafile/o1_mf_users_b5cym96v_.dbf AVAILABLE OFFLINE SQL> alter database datafile 6 online; Database altered. SQL> select file_id,file_name,status,online_status from dba_data_files; FILE_ID FILE_NAME STATUS ONLINE_ ---------- ------------------------------------------------------- --------- ------- 1 /oradata/ATLAS/datafile/o1_mf_system_b5cyjwrl_.dbf AVAILABLE SYSTEM 3 /oradata/ATLAS/datafile/o1_mf_sysaux_b5cykjk4_.dbf AVAILABLE ONLINE 5 /oradata/ATLAS/datafile/o1_mf_undotbs1_b5cykxrb_.dbf AVAILABLE ONLINE 6 /oradata/ATLAS/datafile/o1_mf_users_b5cym96v_.dbf AVAILABLE ONLINE SQL> |
————————————————————————————
Ending。