ORA-01145: offline immediate disallowed unless media recovery enabled
如题所示,该错误发生在将表空间OFFLINE的过程中,具体情况如下:
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 |
SQL> archive log list Database log mode No Archive Mode Automatic archival Disabled Archive destination USE_DB_RECOVERY_FILE_DEST Oldest online log sequence 154 Current log sequence 156 SQL> SQL> select tablespace_name,status from dba_tablespaces; TABLESPACE_NAME STATUS ------------------------------ --------- SYSTEM ONLINE SYSAUX ONLINE UNDOTBS1 ONLINE TEMP ONLINE USERS ONLINE SQL> alter tablespace users offline immediate; alter tablespace users offline immediate * ERROR at line 1: ORA-01145: offline immediate disallowed unless media recovery enabled SQL> |
在通过“offline immediate”来脱机表空间时,Oracle不会在数据文件上执行检查点。
所以,在下次表空间重新联机是,会发生检查点。
在没有开启归档的情况下,联机日志文件是轮询机制运行的,可能有的变更数据会在下一轮的重用中彻底丢失。
变更数据的丢失是不允许出现的。
所以,不执行检查点的时候,必须开启数据库归档模式。
否则,将如上报错。
解决方法:
开启归档,然后重试:
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 52 53 54 55 56 57 58 59 60 |
SQL> shutdown immediate; Database closed. Database dismounted. ORACLE instance shut down. SQL> startup mount; ORACLE instance started. Total System Global Area 1140850688 bytes Fixed Size 2923584 bytes Variable Size 771752896 bytes Database Buffers 352321536 bytes Redo Buffers 13852672 bytes Database mounted. SQL> archive log list; Database log mode No Archive Mode Automatic archival Disabled Archive destination USE_DB_RECOVERY_FILE_DEST Oldest online log sequence 154 Current log sequence 156 SQL> alter database archivelog; Database altered. SQL> alter database open; Database altered. SQL> archive log list; Database log mode Archive Mode Automatic archival Enabled Archive destination USE_DB_RECOVERY_FILE_DEST Oldest online log sequence 154 Next log sequence to archive 156 Current log sequence 156 SQL> SQL> select tablespace_name,status from dba_tablespaces; TABLESPACE_NAME STATUS ------------------------------ --------- SYSTEM ONLINE SYSAUX ONLINE UNDOTBS1 ONLINE TEMP ONLINE USERS ONLINE SQL> alter tablespace users offline immediate; Tablespace altered. SQL> select tablespace_name,status from dba_tablespaces; TABLESPACE_NAME STATUS ------------------------------ --------- SYSTEM ONLINE SYSAUX ONLINE UNDOTBS1 ONLINE TEMP ONLINE USERS OFFLINE SQL> |
——————————————
Ending。