溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

CLEAR   UNARCHIVED   LOGFILE的使用

發(fā)布時(shí)間:2020-07-09 11:37:31 來(lái)源:網(wǎng)絡(luò) 閱讀:664 作者:sunhuabin2016 欄目:數(shù)據(jù)庫(kù)

ALTER DATABASE CLEAR UNARCHIVED LOGFILE的使用


在進(jìn)入今天主題之前,先來(lái)討論一個(gè)v$log動(dòng)態(tài)性能視圖的兩個(gè)字段:
CLEAR   UNARCHIVED   LOGFILE的使用
我們需要注意上圖中的兩個(gè)字段:STATUS和ARCHIVED。

    STATUS有3種狀態(tài):CURRENT,ACTIVE和INACTIVE;在發(fā)生日志切換的時(shí)候,會(huì)觸發(fā)數(shù)據(jù)庫(kù)執(zhí)行一次CHECKPOINT,CHECKPOINT會(huì)觸發(fā)DBWn進(jìn)程將內(nèi)存中的臟數(shù)據(jù)寫入到硬盤,一旦寫入完成,之前的日志組的STATUS就會(huì)變成INACTIVE,表示如果此時(shí)發(fā)生宕機(jī),不再需要改日志組的日志進(jìn)行實(shí)例恢復(fù),反之,需要用到該日志組的日志完成實(shí)例恢復(fù);在實(shí)際的工作中發(fā)現(xiàn),對(duì)于一個(gè)”不忙“的數(shù)據(jù)庫(kù),日志組ACTIVE的狀態(tài)可能持續(xù)數(shù)小時(shí),如果此時(shí)停電或異常關(guān)閉,將可能丟失兩個(gè)日志組的數(shù)據(jù);從這點(diǎn)來(lái)說(shuō),為了數(shù)據(jù)的安全,日志組成員不應(yīng)設(shè)置的過(guò)大,應(yīng)該有一個(gè)“適合”的大小。

    ARCHIVED有兩種狀態(tài):YES,NO;YES表示ARCH進(jìn)程已經(jīng)將該日志組的Online Redo LogFile拷貝到歸檔目的地,成為一個(gè)Archived Redo Logfile,NO表示還沒有拷貝完成。日志組的狀態(tài)和日志組是否歸檔之間是沒有必然的聯(lián)系,它們分別由不同的進(jìn)程來(lái)控制。在出現(xiàn)故障,需要手動(dòng)恢復(fù)的時(shí)候,我們應(yīng)該注意觀察最新的日志組狀態(tài)及是否歸檔,這可能幫助到我們的恢復(fù)過(guò)程,另外,V$LOG的數(shù)據(jù)來(lái)源于控制文件,所以恢復(fù)的控制文件或重建的控制文件不能說(shuō)明數(shù)據(jù)庫(kù)最新的日志組狀態(tài)。

下面通過(guò)一個(gè)簡(jiǎn)單的例子來(lái)討論ALTER DATABASE CLEAR UNARCHIVED LOGFILE的使用:
C:\Users\LIUBINGLIN>sqlplus / as sysdba

SQL*Plus: Release 11.2.0.3.0 Production on 星期五 1月 4 23:22:26 2013

Copyright (c) 1982, 2011, Oracle.  All rights reserved.


連接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - Production
With the Partitioning, Oracle Label Security, OLAP, Data Mining,
Oracle Database Vault and Real Application Testing options

SQL> select status from v$instance;

STATUS
------------
OPEN

SQL> shutdown immediate
數(shù)據(jù)庫(kù)已經(jīng)關(guān)閉。
已經(jīng)卸載數(shù)據(jù)庫(kù)。
ORACLE 例程已經(jīng)關(guān)閉。
SQL> startup mount
ORACLE 例程已經(jīng)啟動(dòng)。

Total System Global Area  267825152 bytes
Fixed Size                  1384044 bytes
Variable Size             109052308 bytes
Database Buffers          150994944 bytes
Redo Buffers                6393856 bytes
數(shù)據(jù)庫(kù)裝載完畢。
SQL> select group#,thread#,sequence#,status from v$log;


    GROUP#    THREAD#  SEQUENCE# STATUS
---------- ---------- ---------- ----------------
         4          1         41 CURRENT
         3          1          0 UNUSED

SQL> alter database clear unarchived logfile group 4;

數(shù)據(jù)庫(kù)已更改。

SQL> alter database open;

數(shù)據(jù)庫(kù)已更改。

SQL> select group#,thread#,sequence#,status from v$log;

    GROUP#    THREAD#  SEQUENCE# STATUS
---------- ---------- ---------- ----------------
         3          1         42 CURRENT
         4          1          0 UNUSED

SQL> shutdown abort
ORACLE 例程已經(jīng)關(guān)閉。
SQL> startup mount
ORACLE 例程已經(jīng)啟動(dòng)。

Total System Global Area  267825152 bytes
Fixed Size                  1384044 bytes
Variable Size             109052308 bytes
Database Buffers          150994944 bytes
Redo Buffers                6393856 bytes
數(shù)據(jù)庫(kù)裝載完畢。
SQL> select group#,thread#,sequence#,status from v$log;

    GROUP#    THREAD#  SEQUENCE# STATUS
---------- ---------- ---------- ----------------
         4          1          0 UNUSED
         3          1         42 CURRENT

SQL> alter database clear unarchived logfile group 3;
alter database clear unarchived logfile group 3
*
第 1 行出現(xiàn)錯(cuò)誤:
ORA-01624: 日志 3 是緊急恢復(fù)實(shí)例 orcl (線程 1) 所必需的
ORA-00312: 聯(lián)機(jī)日志 3 線程 1: 'F:\APP\ORACLE\ORADATA\ORCL2\REDO03.LOG'

SQL> alter database open;

數(shù)據(jù)庫(kù)已更改。

SQL> select group#,thread#,sequence#,status from v$log;


    GROUP#    THREAD#  SEQUENCE# STATUS
---------- ---------- ---------- ----------------
         3          1         42 INACTIVE
         4          1         43 CURRENT

SQL> alter system switch logfile;

系統(tǒng)已更改。

SQL> shutdown abort
ORACLE 例程已經(jīng)關(guān)閉。
SQL> startup mount
ORACLE 例程已經(jīng)啟動(dòng)。

Total System Global Area  267825152 bytes
Fixed Size                  1384044 bytes
Variable Size             109052308 bytes
Database Buffers          150994944 bytes
Redo Buffers                6393856 bytes
數(shù)據(jù)庫(kù)裝載完畢。
SQL> select group#,thread#,sequence#,status from v$log;

    GROUP#    THREAD#  SEQUENCE# STATUS
---------- ---------- ---------- ----------------
         4          1         43 ACTIVE
         3          1         44 CURRENT

SQL> alter database clear unarchived logfile group 4;
alter database clear unarchived logfile group 4
*
第 1 行出現(xiàn)錯(cuò)誤:
ORA-01624: 日志 4 是緊急恢復(fù)實(shí)例 orcl (線程 1) 所必需的
ORA-00312: 聯(lián)機(jī)日志 4 線程 1: 'F:\APP\ORACLE\ORADATA\ORCL2\REDO04.LOG'

總結(jié):ALTER DATABASE CLEAR UNARCHIVED LOGFILE只能用于清除正常關(guān)閉下的CURRENT狀態(tài)的日志組。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI