中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

聊聊Oracle表空間Offline的三種參數(下)

發布時間:2020-08-14 23:08:04 來源:ITPUB博客 閱讀:225 作者:路途中的人2012 欄目:建站服務器

 

6、非歸檔情況Offline處理

 

上面的一系列討論,都是在歸檔文件模式下進行的實驗。如果在非歸檔情況下,我們面對的問題是不同的。

 

首先,非歸檔模式下,表空間可以進行normal offline操作。

 

 

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     22

Current log sequence           24

 

創建表空間,查看文件狀態的。

 

 

SQL> create tablespace testtbs datafile size 10m extent management local uniform. size 1m segment space management auto;

 

Tablespace created

 

SQL> alter tablespace testtbs add datafile size 20m autoextend on;

 

Tablespace altered

 

SQL> select tablespace_name, status from dba_tablespaces where tablespace_name='TESTTBS';

 

TABLESPACE_NAME                STATUS

------------------------------ ---------

TESTTBS                        ONLINE

 

SQL> select file_name, status, online_status from dba_data_files where tablespace_name='TESTTBS';

 

FILE_NAME            STATUS    ONLINE_STATUS

-------------------- --------- -------------

/u01/app/oradata/ORA AVAILABLE ONLINE

11G/datafile/o1_mf_t          

esttbs_94hsw8oo_.dbf          

 

/u01/app/oradata/ORA AVAILABLE ONLINE

11G/datafile/o1_mf_t          

esttbs_94hswx27_.dbf          

 

 

正常Offline Tablespace

 

 

SQL> alter tablespace testtbs offline normal;

 

Tablespace altered

 

SQL> select tablespace_name, status from dba_tablespaces where tablespace_name='TESTTBS';

 

TABLESPACE_NAME                STATUS

------------------------------ ---------

TESTTBS                        OFFLINE

 

SQL> select file_name, status, online_status from dba_data_files where tablespace_name='TESTTBS';

 

FILE_NAME            STATUS    ONLINE_STATUS

-------------------- --------- -------------

/u01/app/oradata/ORA AVAILABLE OFFLINE

11G/datafile/o1_mf_t          

esttbs_94hsw8oo_.dbf          

 

/u01/app/oradata/ORA AVAILABLE OFFLINE

11G/datafile/o1_mf_t          

esttbs_94hswx27_.dbf          

 

 

SQL> alter tablespace testtbs online;

Tablespace altered

 

 

在非歸檔模式下,單獨對數據文件進行offline是不允許的。

 

 

SQL> alter database datafile '/u01/app/oradata/ORA11G/datafile/o1_mf_testtbs_94hsw8oo_.dbf' offline;

 

alter database datafile '/u01/app/oradata/ORA11G/datafile/o1_mf_testtbs_94hsw8oo_.dbf' offline

 

ORA-01145: 除非啟用了介質恢復, 否則不允許立即脫機

 

 

試想一下,這個過程是可以理解的。Oracle認為:如果你將文件進行offline,與表空間不一致。那么,一旦文件online的時候,一定是需要進行recover來“追”上表空間中其他文件。這個過程就是需要連續的redo log來進行apply動作。

 

在非歸檔模式下,連續的操作redo log file是不容易拿到的。從Oracle理論上,也就認為說不可能拿到的。所以,這個時候,Oracle索性禁止這種操作行為。

 

那么,是不是非歸檔模式下,就不允許進行單獨文件的offline了呢?不是的,只要你“允諾”說不會再回來。

 

通過后臺,我們刪除了數據文件。

 

--刪除掉數據文件

[oracle@SimpleLinux ~]$ rm /u01/app/oradata/ORA11G/datafile/o1_mf_testtbs_94hswx27_.dbf

[oracle@SimpleLinux ~]$

 

SQL> alter system checkpoint;

alter system checkpoint

 

 

此時,數據庫發現故障,實例終止。注意:不同版本Oracle在這個問題上行為有一些差異。CKPT將實例終止。

 

 

Sun Sep 29 16:59:08 2013

Beginning global checkpoint up to RBA [0x18.ad3e.10], SCN: 1062240

Errors in file /u01/app/diag/rdbms/ora11g/ora11g/trace/ora11g_ckpt_27311.trc:

ORA-01242: data file suffered media failure: database in NOARCHIVELOG mode

ORA-01116: error in opening database file 7

ORA-01110: data file 7: '/u01/app/oradata/ORA11G/datafile/o1_mf_testtbs_94hswx27_.dbf'

ORA-27041: unable to open file

Linux Error: 2: No such file or directory

Additional information: 3

Errors in file /u01/app/diag/rdbms/ora11g/ora11g/trace/ora11g_ckpt_27311.trc:

ORA-01242: data file suffered media failure: database in NOARCHIVELOG mode

ORA-01116: error in opening database file 7

ORA-01110: data file 7: '/u01/app/oradata/ORA11G/datafile/o1_mf_testtbs_94hswx27_.dbf'

ORA-27041: unable to open file

Linux Error: 2: No such file or directory

Additional information: 3

Sun Sep 29 16:59:08 2013

System state dump requested by (instance=1, sid=27311 (CKPT)), summary=[abnormal instance termination].

System State dumped to trace file /u01/app/diag/rdbms/ora11g/ora11g/trace/ora11g_diag_27299.trc

CKPT (ospid: 27311): terminating the instance due to error 1242

Dumping diagnostic data in directory=[cdmp_20130929165908], requested by (instance=1, sid=27311 (CKPT)), summary=[abnormal instance termination].

Instance terminated by CKPT, pid = 27311

 

 

--數據庫終止

[oracle@SimpleLinux ~]$ ps -ef | grep pmon

oracle   27487 27404  0 17:00 pts/2    00:00:00 grep pmon

[oracle@SimpleLinux ~]$

 

 

我們將數據庫啟動到mount狀態,之后可以offline drop文件。

 

 

--啟動到mount狀態。

SQL> conn / as sysdba

Connected to an idle instance.

SQL> startup mount

ORACLE instance started.

 

Total System Global Area  376635392 bytes

Fixed Size                  1345072 bytes

Variable Size             306186704 bytes

Database Buffers           62914560 bytes

Redo Buffers                6189056 bytes

Database mounted.

 

 

SQL> select file#, status, recover, fuzzy, CHECKPOINT_CHANGE# from v$datafile_header;

 

     FILE# STATUS  RECOVER FUZZY CHECKPOINT_CHANGE#

---------- ------- ------- ----- ------------------

         1 ONLINE  NO      YES              1062240

         2 ONLINE  NO      YES              1062240

         3 ONLINE  NO      YES              1062240

         4 ONLINE  NO      YES              1062240

         5 ONLINE  NO      YES              1062240

         6 ONLINE  NO      YES              1062240

         7 ONLINE                                 0

 

7 rows selected

 

--直接offline不允許

SQL> alter database datafile 7 offline;

alter database datafile 7 offline

 

ORA-01145: 除非啟用了介質恢復, 否則不允許立即脫機

 

 

--未打開情況下,表空間狀態不明確

SQL> alter tablespace testtbs offline;

 

alter tablespace testtbs offline

 

ORA-01109: 數據庫未打開

 

--Offline Drop

SQL> alter database datafile 7 offline drop;

 

Database altered

 

SQL> alter database open;

 

Database altered

 

SQL> drop tablespace testtbs;

 

Tablespace dropped

 

 

顧名思義,Offline Drop就是永久性的刪除這個對象,也就不需要了。更不要提到重新回歸online

 

7、結論

 

最后,我們來總結一下Offline三種參數的情況。

 

offline normal:是最常用的場景,也是最不容易出問題的場景。Offline Normal的時候,Oracle會在表空間內部進行Check Point動作,保證表空間內部各個文件頭上面的SCN一致,也就是數據一致。如果存在數據文件不能前推SCN,如已經Offline,的情況,offline normal失效報錯。

 

offline temporary:比Normal要求略松的一種關閉模式。Temporary模式下,Oracle依然會去“嘗試”統一表空間內部文件頭的SCN號。如果數據文件可以統一,就進行Check Point動作,如果文件不能統一,操作也不會報錯,只是將其狀態標記為不一致。Temporary模式下Offline的表空間Online的時候,那些“有問題”的不一致文件,是需要進行media recovey的。沒有問題,打入check point的數據文件,就不需要進行恢復動作。

 

offline immediate:最松的一種offline模式。Immediate模式下,Oracle不會進行check point動作,無論有無問題的Datafile,都會被設置為需要Recover過程。在重新online的時候,表空間就需要進行重新的全表空media recover

 

在日常選擇上,我們傾向嚴格的原則。因為非Normal方式的offline,都需要借助外部的redo log進行media recover動作。選擇的順序是normaltemporaryimmediate

 

Oracle表空間的Offline動作,是我們非常常用的一種日常維護操作手段。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

饶河县| 惠东县| 台安县| 南安市| 鄱阳县| 阜新| 隆安县| 广州市| 灵石县| 新丰县| 张北县| 勃利县| 新津县| 吉木萨尔县| 鹤岗市| 铁力市| 敖汉旗| 乐昌市| 娄底市| 商河县| 赣榆县| 沙河市| 镇原县| 前郭尔| 谷城县| 金山区| 吴忠市| 镇平县| 阳谷县| 潞城市| 喀什市| 多伦县| 广丰县| 外汇| 赣榆县| 青龙| 黄浦区| 攀枝花市| 拜城县| 卓资县| 万安县|