您好,登錄后才能下訂單哦!
Oracle數據庫管理中,對表空間操作是基礎中的基礎。其中,表空間Offline是我們經常接觸的。同數據文件Offline一起,構成了Oracle維護數據一致性的重要體系結構。
一般我們比較常接觸到的,就是直接的alter tablespace xxx offline操作。但是在實際中,針對表空間對應數據文件的不同情況,Oracle提供了三種offline的參數。同數據庫關閉shutdown對應的若干種參數一樣,不同的offline參數對應Oracle不同的行為,更引出后續不同的處理方法。
下面是Oracle11g官方文檔關于表空間offline的相關解釋說明:
*************************************************************************************************************
You may want to take a tablespace offline for any of the following reasons:
希望使表空間offline的原因如下:
?使數據庫的一部分不訪問,同時允許正常訪問數據庫的其余部分
?要執行脫機表空間備份(即使可以在線并在使用中備份表空間)
?在更新或維護應用程序時,使應用程序及其一組表暫時不可用
?重命名或重新定位表空間數據文件
When a tablespace is taken offline, the database takes all the associated files offline.
當表空間脫機時,數據庫會將所有關聯的文件脫機。
You cannot take the following tablespaces offline:
SYSTEM、undo表空間、臨時表空間不可以offline;
Before taking a tablespace offline, consider altering the tablespace allocation of any users who have been assigned the tablespace as a default tablespace. Doing so is advisable because those users will not be able to access objects in the tablespace while it is offline.
在使表空間脫機之前,請考慮將已分配表空間的任何用戶的表空間分配更改為默認表空間。 這樣做是可取的,因為這些用戶在脫機時將無法訪問表空間中的對象。
You can specify any of the following parameters as part of the ALTER TABLESPACE...OFFLINE statement:
Clause |
Description |
NORMAL |
A tablespace can be taken offline normally if no error conditions exist for any of the datafiles of the tablespace. No datafile in the tablespace can be currently offline as the result of a write error. When you specify OFFLINE NORMAL, the database takes a checkpoint for all datafiles of the tablespace as it takes them offline. NORMAL is the default.
1、normal 是offline的默認方式 |
TEMPORARY |
A tablespace can be taken offline temporarily, even if there are error conditions for one or more files of the tablespace. When you specify OFFLINE TEMPORARY, the database takes offline the datafiles that are not already offline, checkpointing them as it does so. If no files are offline, but you use the temporary clause, media recovery is not required to bring the tablespace back online. However, if one or more files of the tablespace are offline because of write errors, and you take the tablespace offline temporarily, the tablespace requires recovery before you can bring it back online.
1、offline temporary 表空間時,如果表空間中沒有offline的數據文件,則online該表空間時不需要介質恢復。 |
IMMEDIATE |
A tablespace can be taken offline immediately, without the database taking a checkpoint on any of the datafiles. When you specify OFFLINE IMMEDIATE, media recovery for the tablespace is required before the tablespace can be brought online. You cannot take a tablespace offline immediately if the database is running in NOARCHIVELOGmode.
1、offline immediate 不會對表空間的任何文件執行檢查點操作。 |
Caution:
If you must take a tablespace offline, use the NORMAL clause (the default) if possible. This setting guarantees that the tablespace will not require recovery to come back online, even if after incomplete recovery you reset the redo log sequence using an ALTER DATABASE OPEN RESETLOGS statement.
如果必須使表空間脫機,請盡可能使用NORMAL子句(默認值)。 此設置保證表空間不需要恢復在線恢復,即使在不完全恢復后,使用ALTER DATABASE OPEN RESETLOGS語句重置重做日志序列。
Speify TEMPORARY only when you cannot take the tablespace offline normally. In this case, only the files taken offline because of errors need to be recovered before the tablespace can be brought online. Specify IMMEDIATE only after trying both the normal and temporary settings.
僅在不能使表空間正常脫機時指定TEMPORARY。 在這種情況下,只有在出現錯誤的情況下離線的文件需要在表空間上線之前恢復。 僅在嘗試正常和臨時設置之后才指定IMMEDIATE。
The following example takes the users tablespace offline normally:
ALTER TABLESPACE users OFFLINE NORMAL;
*************************************************************************************************************
通過以上官方文檔的說明,將表空間進行Offline的命令很簡單,就是alter tablespace xxx offline;根據不同的情況,可以使用三種參數進行命令修飾,分別為normal、temporary和immediate。三個命令分別對應了Offline過程的不同行為。
下面的實驗中,我們通過具體的案例來區別三種命令參數的不同之處:
實驗環境:
(注意:是否歸檔模式對于數據表空間和文件Offline行為至關重要!)
SYS@seiang11g>select * from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
PL/SQL Release 11.2.0.4.0 - Production
CORE 11.2.0.4.0 Production
TNS for Linux: Version 11.2.0.4.0 - Production
NLSRTL Version 11.2.0.4.0 – Production
SYS@seiang11g>archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /u01/app/oracle/arch
Oldest online log sequence 50
Next log sequence to archive 52
Current log sequence 52
示例一:歸檔模式下offline normal
創建表空間wjqtest,為了更加明顯進行試驗,該表空間由兩個數據文件構成。
SYS@seiang11g>create tablespace wjqtest datafile '/u01/app/oracle/oradata/OraDB11g/wjqtest01.dbf' size 5M
2 extent management local uniform size 1M
3 segment space management auto;
Tablespace created.
SYS@seiang11g>
SYS@seiang11g>alter tablespace wjqtest add datafile '/u01/app/oracle/oradata/OraDB11g/wjqtest02.dbf' size 5M;
Tablespace altered.
SYS@seiang11g>select tablespace_name,status from dba_tablespaces where tablespace_name='WJQTEST';
TABLESPACE_NAME STATUS
------------------------------ ---------
WJQTEST ONLINE
SYS@seiang11g>select file_name,status,online_status from dba_data_files where tablespace_name='WJQTEST';
FILE_NAME STATUS ONLINE_
-------------------------------------------------- --------- -------
/u01/app/oracle/oradata/OraDB11g/wjqtest01.dbf AVAILABLE ONLINE
/u01/app/oracle/oradata/OraDB11g/wjqtest02.dbf AVAILABLE ONLINE
SCOTT@seiang11g>create table wjqtest tablespace wjqtest as select * from dba_objects where rownum<1000;
Table created.
SCOTT@seiang11g>select count(*) from wjqtest;
COUNT(*)
----------
999
SYS@seiang11g>alter tablespace wjqtest offline normal;
Tablespace altered.
SYS@seiang11g>select tablespace_name ,status from dba_tablespaces where tablespace_name='WJQTEST';
TABLESPACE_NAME STATUS
------------------------------ ---------
WJQTEST OFFLINE
SYS@seiang11g>select file_name,status,online_status from dba_data_files where tablespace_name='WJQTEST';
FILE_NAME STATUS ONLINE_
-------------------------------------------------- --------- -------
/u01/app/oracle/oradata/OraDB11g/wjqtest01.dbf AVAILABLE OFFLINE
/u01/app/oracle/oradata/OraDB11g/wjqtest02.dbf AVAILABLE OFFLINE
[oracle@seiang11g trace]$ tail -f alert_seiang11g.log
Tue Sep 26 13:19:22 2017
alter tablespace wjqtest offline normal
Completed: alter tablespace wjqtest offline normal
Tue Sep 26 13:19:22 2017
Starting background process SMCO
Tue Sep 26 13:19:22 2017
SMCO started with pid=31, OS id=6497
Tue Sep 26 13:19:30 2017
Checker run found 3 new persistent data failures
數據文件一個很重要的內容就是數據文件頭的SCN號。我們知道,如果完全關閉數據庫或者check point的時候,Oracle是要保證控制文件和數據文件頭的SCN一致。
SYS@seiang11g>select file#, status, recover, fuzzy, checkpoint_change# from v$datafile_header;
FILE# STATUS REC FUZ CHECKPOINT_CHANGE#
---------- ------- --- --- ------------------
1 ONLINE NO YES 1860869
2 ONLINE NO YES 1860869
3 ONLINE NO YES 1860869
4 ONLINE NO YES 1860869
5 ONLINE NO YES 1860869
6 ONLINE NO YES 1860869
7 ONLINE NO YES 1860869
8 OFFLINE 0
9 OFFLINE 0
9 rows selected.
SYS@seiang11g>
SYS@seiang11g>select file#,checkpoint_change#,online_change# from v$datafile;
FILE# CHECKPOINT_CHANGE# ONLINE_CHANGE#
---------- ------------------ --------------
1 1860869 925702
2 1860869 925702
3 1860869 925702
4 1860869 925702
5 1860869 951158
6 1860869 0
7 1860869 0
8 1862009 0
9 1862009 0
9 rows selected.
RMAN> list failure all;
using target database control file instead of recovery catalog
List of Database Failures
=========================
Failure ID Priority Status Time Detected Summary
---------- -------- --------- ------------- -------
254 HIGH OPEN 26-SEP-17 Tablespace 9: 'WJQTEST' is offline
222 HIGH OPEN 26-SEP-17 One or more non-system datafiles are offline
如果是正常的offline normal,是可以直接online回正常的表空間。
SYS@seiang11g>alter tablespace wjqtest online;
Tablespace altered.
SYS@seiang11g>select file#, status, recover, fuzzy, checkpoint_change# from v$datafile_header;
FILE# STATUS REC FUZ CHECKPOINT_CHANGE#
---------- ------- --- --- ------------------
1 ONLINE NO YES 1860869
2 ONLINE NO YES 1860869
3 ONLINE NO YES 1860869
4 ONLINE NO YES 1860869
5 ONLINE NO YES 1860869
6 ONLINE NO YES 1860869
7 ONLINE NO YES 1860869
8 ONLINE NO YES 1862119
9 ONLINE NO YES 1862119
9 rows selected.
SYS@seiang11g>
SYS@seiang11g>select file#,checkpoint_change#,online_change# from v$datafile;
FILE# CHECKPOINT_CHANGE# ONLINE_CHANGE#
---------- ------------------ --------------
1 1860869 925702
2 1860869 925702
3 1860869 925702
4 1860869 925702
5 1860869 951158
6 1860869 0
7 1860869 0
8 1862119 1862119
9 1862119 1862119
9 rows selected.
[oracle@seiang11g trace]$ tail -f alert_seiang11g.log
Tue Sep 26 13:21:47 2017
alter tablespace wjqtest online
Completed: alter tablespace wjqtest online
RMAN> list failure all;
no failures found that match specification
在數據庫正常情況下,出于對性能考慮數據文件頭SCN號是不能維持一致的。我們使用offline normal之后,各個數據文件頭SCN相同。所以,offline normal特性是在offline的時候,要在表空間所有文件上打check point,只要能夠打上SCN號,offline normal是可以正常完成的。也就是說,offline normal是表空間各個文件一致性的關閉。
示例二:歸檔模式下offline temporary
Offline Normal是一種比較理想的情況。在很多時候,Offline一個Tablespace的時候,并不能執行成功。比如,在offline操作的時候,如果此時有正在進行的對表空間對象的DDL和DML操作,offline可能會受到影響。此外,如果一個表空間中有數據文件已經被Offline過了,我們正常是不能夠進行offline normal的。此時,我們就需要使用temporary。
我們首先將表空間的其中一個數據文件offline。
SYS@seiang11g>alter database datafile '/u01/app/oracle/oradata/OraDB11g/wjqtest01.dbf' offline;
Database altered.
注意:這個操作是在Archivelog模式下才能進行。如果是在非歸檔模式下,直接offline表空間中的一個數據文件會出現ORA-01145的錯誤如下所示:
SYS@seiang11g>alter database datafile
'/u01/app/oracle/oradata/OraDB11g/wjqtest01.dbf' offline;
alter database datafile '/u01/app/oracle/oradata/OraDB11g/wjqtest01.dbf'
offline
*
ERROR at line 1:
ORA-01145: offline immediate disallowed unless media
recovery enabled
SYS@seiang11g>!oerr ora 01145
01145, 00000, "offline immediate disallowed unless media recovery
enabled"
// *Cause: ALTER TABLESPACE ... OFFLINE IMMEDIATE or ALTER DATABASE
DATAFILE
// ... OFFLINE is only
allowed if database is in ARCHIVELOG mode.
// *Action:Take tablespace offline normally or shutdown abort. Reconsider
your
// backup strategy. You could
do this if you were archiving your logs.
要想對數據文件脫機,必須在歸檔模式下,這是Oracle自動保護的一種措施,防止在非歸檔模式下對數據文件脫機,造成數據丟失。
解決辦法:
可以在非歸檔模式下,
使用alter
database datafile '/u01/app/oracle/oradata/OraDB11g/wjqtest01.dbf
' offline for drop;語句將數據文件脫機,drop并不會刪除物理文件。如果沒有使用alter
system switch logfile;切換日志文件組,那么可以采用recover
datafile XXX;來恢復,并聯機。如果已切換日志文件組并清空了里面的內容,這個數據文件就不能再恢復聯機,永遠處于recover狀態(可以通過v$datafile視圖查看)。所以如果在實際的生產環境中,盡量在歸檔模式下做脫機數據文件操作。
SYS@seiang11g>
SYS@seiang11g>select tablespace_name,status from dba_tablespaces where tablespace_name='WJQTEST';
TABLESPACE_NAME STATUS
------------------------------ ---------
WJQTEST ONLINE
觀察表空間和數據文件狀態,發現被offline的數據文件狀態為Recover。
SYS@seiang11g>select file_name,status,online_status from dba_data_files where tablespace_name='WJQTEST';
FILE_NAME STATUS ONLINE_
-------------------------------------------------- --------- -------
/u01/app/oracle/oradata/OraDB11g/wjqtest01.dbf AVAILABLE RECOVER
/u01/app/oracle/oradata/OraDB11g/wjqtest02.dbf AVAILABLE ONLINE
看到的文件recover狀態,就表明如果需要這個文件回到Online狀態,需要進行Recover。此時,Online狀態表空間下的幾個文件狀態是不一致的。
注意,Oracle維持數據文件一致性,是一個動態一致性的過程。如果某一個文件或者對象臨時性的退出了這個一致性機制,就表示這個文件或者對象已經不一致。如果該對象希望回歸到原有的一致性體系里面,就需要進行Recover。Oracle進行Recover手段就需要借助于連續的redo log文件。
嘗試使用offline normal表空間
SYS@seiang11g>alter tablespace wjqtest offline normal;
alter tablespace wjqtest offline normal
*
ERROR at line 1:
ORA-01191: file 8 is already offline - cannot do a normal offline
ORA-01110: data file 8: '/u01/app/oracle/oradata/OraDB11g/wjqtest01.dbf'
SCOTT@seiang11g>create table tb_test tablespace wjqtest as select * from dba_objects where 1=0;
Table created.
[oracle@seiang11g trace]$ tail -f alert_seiang11g.log
Tue Sep 26 13:26:53 2017
alter tablespace wjqtest offline normal
ORA-1191 signalled during: alter tablespace wjqtest offline normal...
Tue Sep 26 13:26:53 2017
Checker run found 1 new persistent data failures
正常normal offline已經不能成功了。此時可以使用temporary參數。
SYS@seiang11g>alter tablespace wjqtest offline temporary;
Tablespace altered.
SYS@seiang11g>
SYS@seiang11g>select tablespace_name,status from dba_tablespaces where tablespace_name='WJQTEST';
TABLESPACE_NAME STATUS
------------------------------ ---------
WJQTEST OFFLINE
SYS@seiang11g>
SYS@seiang11g>select file_name,status,online_status from dba_data_files where tablespace_name='WJQTEST';
FILE_NAME STATUS ONLINE_
-------------------------------------------------- --------- -------
/u01/app/oracle/oradata/OraDB11g/wjqtest01.dbf AVAILABLE RECOVER
/u01/app/oracle/oradata/OraDB11g/wjqtest02.dbf AVAILABLE OFFLINE
[oracle@seiang11g trace]$ tail -f alert_seiang11g.log
Tue Sep 26 13:30:01 2017
alter tablespace wjqtest offline temporary
Completed: alter tablespace wjqtest offline temporary
Tue Sep 26 13:30:15 2017
Checker run found 2 new persistent data failures
使用temporary參數實現了Offline。但是對于那個提前進行offline的數據文件,狀態依然是recover。猜想,Temporary Offline的過程是一種不一致的關閉。
查看視圖v$datafile和v$datafile_header反映了控制文件和數據文件頭中文件SCN號的記錄。在offline normal的時候,我們看到了各個文件的一致性。在進行offline normal的時候,Oracle是打入了一個check point(內部),來同步各個文件的文件頭SCN。
在使用Temporary的時候,視圖狀態如何呢?
SYS@seiang11g>select file#, status, recover, fuzzy, checkpoint_change# from v$datafile_header;
FILE# STATUS REC FUZ CHECKPOINT_CHANGE#
---------- ------- --- --- ------------------
1 ONLINE NO YES 1860869
2 ONLINE NO YES 1860869
3 ONLINE NO YES 1860869
4 ONLINE NO YES 1860869
5 ONLINE NO YES 1860869
6 ONLINE NO YES 1860869
7 ONLINE NO YES 1860869
8 OFFLINE YES YES 1862119
9 OFFLINE NO NO 1862456
9 rows selected.
SYS@seiang11g>
SYS@seiang11g>select file#,checkpoint_change#,online_change# from v$datafile;
FILE# CHECKPOINT_CHANGE# ONLINE_CHANGE#
---------- ------------------ --------------
1 1860869 925702
2 1860869 925702
3 1860869 925702
4 1860869 925702
5 1860869 951158
6 1860869 0
7 1860869 0
8 1862119 1862119
9 1862456 1862119
9 rows selected.
控制文件和數據文件頭上面兩個文件的SCN編號不相同,說明在一個表空間內部文件的SCN號是不一致的。
說明:在Temporary Offline的時候,一些“有問題”的數據文件和“沒問題”的數據文件狀態是可以不一樣。“沒問題”的數據文件之間SCN號是一致。
如果此時直接Online表空間的話會報錯ORA-01113和ORA-01110。
SYS@seiang11g>alter tablespace wjqtest online;
alter tablespace wjqtest online
*
ERROR at line 1:
ORA-01113: file 8 needs media recovery
ORA-01110: data file 8: '/u01/app/oracle/oradata/OraDB11g/wjqtest01.dbf'
在online的時候,Oracle一定會去online一個“一致”的表空間。此時,它會發現表空間內部SCN的不一致。根據提示,我們需要手工進行文件恢復。
SYS@seiang11g>recover datafile 8;
Media recovery complete.
SYS@seiang11g>alter tablespace wjqtest online;
Tablespace altered.
online成功了,在alert 日志中看到了進行media recovery中使用的redo log apply乃至archived redo log apply過程。注意:此時我們只恢復了datafile 6。
[oracle@seiang11g trace]$ tail -f alert_seiang11g.log
Tue Sep 26 13:34:05 2017
ALTER DATABASE RECOVER datafile 8
Media Recovery Start
Serial Media Recovery started
Recovery of Online Redo Log: Thread 1 Group 1 Seq 52 Reading mem 0
Mem# 0: /u01/app/oracle/oradata/OraDB11g/redo01.log
Media Recovery Complete (seiang11g)
Completed: ALTER DATABASE RECOVER datafile 8
SYS@seiang11g>select file#, status, recover, fuzzy, checkpoint_change# from v$datafile_header;
FILE# STATUS REC FUZ CHECKPOINT_CHANGE#
---------- ------- --- --- ------------------
1 ONLINE NO YES 1860869
2 ONLINE NO YES 1860869
3 ONLINE NO YES 1860869
4 ONLINE NO YES 1860869
5 ONLINE NO YES 1860869
6 ONLINE NO YES 1860869
7 ONLINE NO YES 1860869
8 ONLINE NO YES 1863020
9 ONLINE NO YES 1863020
9 rows selected.
SYS@seiang11g>
SYS@seiang11g>select file#,checkpoint_change#,online_change# from v$datafile;
FILE# CHECKPOINT_CHANGE# ONLINE_CHANGE#
---------- ------------------ --------------
1 1860869 925702
2 1860869 925702
3 1860869 925702
4 1860869 925702
5 1860869 951158
6 1860869 0
7 1860869 0
8 1863020 1862119
9 1863020 1862119
示例三:歸檔模式下offline immediate
首先對表空間中的一個數據文件進行offline,然后再對相應的表空間進行offline,就會出現報錯ORA-01191和ORA-01110
SYS@seiang11g>alter database datafile '/u01/app/oracle/oradata/OraDB11g/wjqtest01.dbf' offline;
Database altered.
SYS@seiang11g>
SYS@seiang11g>alter tablespace wjqtest offline;
alter tablespace wjqtest offline
*
ERROR at line 1:
ORA-01191: file 8 is already offline - cannot do a normal offline
ORA-01110: data file 8: '/u01/app/oracle/oradata/OraDB11g/wjqtest01.dbf'
此處使用offline immediate操作。
SYS@seiang11g>alter tablespace wjqtest offline immediate;
Tablespace altered.
SYS@seiang11g>
SYS@seiang11g>select file#, status, recover, fuzzy, checkpoint_change# from v$datafile_header;
FILE# STATUS REC FUZ CHECKPOINT_CHANGE#
---------- ------- --- --- ------------------
1 ONLINE NO YES 1863090
2 ONLINE NO YES 1863090
3 ONLINE NO YES 1863090
4 ONLINE NO YES 1863090
5 ONLINE NO YES 1863090
6 ONLINE NO YES 1863090
7 ONLINE NO YES 1863090
8 OFFLINE YES YES 1863090
9 OFFLINE YES YES 1863090
9 rows selected.
SYS@seiang11g>
SYS@seiang11g>select file#,checkpoint_change#,online_change# from v$datafile;
FILE# CHECKPOINT_CHANGE# ONLINE_CHANGE#
---------- ------------------ --------------
1 1863090 925702
2 1863090 925702
3 1863090 925702
4 1863090 925702
5 1863090 951158
6 1863090 0
7 1863090 0
8 1863090 1862119
9 1863090 1862119
[oracle@seiang11g trace]$ tail -f alert_seiang11g.log
Tue Sep 26 13:40:52 2017
alter tablespace wjqtest offline immediate
Completed: alter tablespace wjqtest offline immediate
immediate和temporary相似地方是:在“有問題”數據文件存在的情況下,表空間依然可以進行Offline操作。但是區別是,Oracle在immediate參數情況下,就不會給任何數據文件進行check point統一SCN動作了。這種方法類似于shutdown abort。無論文件是不是有問題,Oracle都不進行檢查和統一動作。
有一個細節需要注意,就是v$datafile_header中的recover列。在normal參數的時候,這個列是不顯示的,也就是表示這個問題不需要關注和理睬。在tempory模式下,只有那些“有問題”文件才會被標注為YES,也就是需要進行Recover。其他沒問題的文件狀態為NO,也就是不需要進行recover。上面的案例證明了這點。
在immediate參數情況下,所有文件狀態都是YES,表示無論好壞,都要進行recover。
下面嘗試online動作。
SYS@seiang11g>alter tablespace wjqtest online;
alter tablespace wjqtest online
*
ERROR at line 1:
ORA-01113: file 8 needs media recovery
ORA-01110: data file 8: '/u01/app/oracle/oradata/OraDB11g/wjqtest01.dbf'
SYS@seiang11g>
SYS@seiang11g>recover datafile 8;
Media recovery complete.
依然不行,需要將所有的文件都recover一遍,索性直接recover表空間
SYS@seiang11g>alter tablespace wjqtest online;
alter tablespace wjqtest online
*
ERROR at line 1:
ORA-01113: file 9 needs media recovery
ORA-01110: data file 9: '/u01/app/oracle/oradata/OraDB11g/wjqtest02.dbf'
SYS@seiang11g>recover tablespace wjqtest;
Media recovery complete.
[oracle@seiang11g trace]$ tail -f alert_seiang11g.log
Tue Sep 26 13:42:44 2017
Checker run found 1 new persistent data failures
Tue Sep 26 13:43:04 2017
ALTER DATABASE RECOVER datafile 8
Media Recovery Start
Serial Media Recovery started
Recovery of Online Redo Log: Thread 1 Group 1 Seq 52 Reading mem 0
Mem# 0: /u01/app/oracle/oradata/OraDB11g/redo01.log
Media Recovery Complete (seiang11g)
Completed: ALTER DATABASE RECOVER datafile 8
alter tablespace wjqtest online
ORA-1113 signalled during: alter tablespace wjqtest online...
Tue Sep 26 13:44:43 2017
ALTER DATABASE RECOVER tablespace wjqtest
Media Recovery Start
Serial Media Recovery started
Recovery of Online Redo Log: Thread 1 Group 1 Seq 52 Reading mem 0
Mem# 0: /u01/app/oracle/oradata/OraDB11g/redo01.log
Media Recovery Complete (seiang11g)
Completed: ALTER DATABASE RECOVER tablespace wjqtest
總結
我們來總結一下Offline三種參數的情況。
(1)offline normal:是最常用的參數,也最不容易出問題。Offline
Normal的時候,Oracle會在表空間內部進行Check
Point動作,保證表空間內部各個文件頭上面的SCN一致,也就是數據一致。如果存在數據文件不能前推SCN,如已經Offline,的情況,offline
normal失效報錯。
(2)offline temporary:比Normal要求略松的一種關閉模式。Temporary模式下,Oracle依然會去“嘗試”統一表空間內部文件頭的SCN號。如果數據文件可以統一,就進行Check
Point動作,如果文件不能統一,操作也不會報錯,只是將其狀態標記為不一致。Temporary模式下Offline的表空間Online的時候,那些“有問題”的不一致文件,是需要進行media
recovey的。沒有問題,打入check point的數據文件,就不需要進行恢復動作。
(3)offline immediate:最松的一種offline模式。Immediate模式下,Oracle不會進行check
point動作,無論有無問題的Datafile,都會被設置為需要Recover過程。在重新online的時候,表空間就需要進行重新的全表空media
recover。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。