1. 程式人生 > >Oracle Archivelog、檢視及日誌分析

Oracle Archivelog、檢視及日誌分析

編寫時間:2015416日星期四

編寫人:蝸牛

QQ  295013648


  1. 說明

Archivelog,也就是我們通常所說的歸檔,那什麼是歸檔,歸檔是怎麼產生的,其作用又是什麼,歸檔檔案中到底存在什麼樣的內容,這些都是作為資料庫管理員的我們應該知道,並且能夠應用到工作中的。在參加工作的兩年多裡,本人一直都在從事著oraclesybase相關的工作,期間也整理過很多的資料,但都很亂。下面就來整理一下關於歸檔原理與相關只是吧。

  1. 為什麼需要歸檔

在我們講什麼是歸檔之前,就需要說一下為什麼需要歸檔。為什麼需要歸檔哪?那麼如果真的沒有歸檔會發生什麼事情?

  1. rman online備份不存在
  2. 閃回功能不存在
  3. Dataguard不存在
  1. Goldengate不存在
  1. 流功能不存在
  2. ……

那麼現在應該知道歸檔為什麼這麼重要了吧,當然起初歸檔的產生原因可能很簡單,可能是客戶需要更安全的資料庫,也可能是其他原因,但正是因為歸檔的存在,才有了oracle一系列基於歸檔的新功能或者新應用。

  1. 歸檔總結

下面我們就基於歸檔的生命週期,來對歸檔進行進一步的總結。

  1. 歸檔從哪來

要說歸檔從哪來,那就要先提一下redo日誌了(我有一篇專門關於redo日誌的文件叫Oracle Redo,在我的百度中應該有,下面也不會說太多),redo中存放的是資料庫中資料的變更,每對資料或者資料庫表做插入、刪除、修改操作,在redo中都會進行記錄,這樣做是為了資料安全。

歸檔就是由oracle資料庫後臺程序ARCn程序redo日誌檔案中的內容複製到歸檔檔案中。

  1. 歸檔的作用

歸檔日誌在oracle資料庫中是非常重要,它能夠使資料庫更加的安全可靠,甲骨文公司基於歸檔為oracle資料庫增加了很多新的功能,例如閃回、資料流等,更為online備份打下了基礎,還開發了新的應用,例如DGOGG等。

  1. 怎麼檢視歸檔

檢視歸檔分為兩個部分,一是邏輯層面檢視歸檔日誌,二是物理層面檢視歸檔日誌,只有這樣才能更好的理解歸檔,分析歸檔,以及利用歸檔。

3.1從邏輯層面查詢歸檔

相關檢視V$ARCHIVEV$ARCHIVED_LOGV$ARCHIVE_DESTV$ARCHIVE_DEST_STATUS

V$ARCHIVE_GAPV$ARCHIVE_PROCESSES等。

Dynamic Performance View

Description

V$DATABASE

Shows if the database is in ARCHIVELOG or NOARCHIVELOG

mode and if MANUAL (archiving mode) has been specified.

V$ARCHIVED_LOG

V$ARCHIVED_LOG displays archived log information from the control file, including

archive log names. An archive log record is inserted after the online redo log is

successfully archived or cleared (name column is NULL if the log was cleared). If the log

is archived twice, there will be two archived log records with the same THREAD#,

SEQUENCE#, and FIRST_CHANGE#, but with a different name. An archive log record is

also inserted when an archive log is restored from a backup set or a c

V$ARCHIVE_DEST

Describes the current instance, all archive destinations, and

the current value, mode, and status of these destinations

V$ARCHIVE_PROCESSES

Displays information about the state of the various archive

processes for an instance.

V$ARCHIVE_DEST_STATUS

V$ARCHIVE_DEST_STATUS displays runtime and configuration information for the

archived redo log destinations. The information in this view does not persist across an

instance shutdown.

V$ARCHIVE_GAP

V$ARCHIVE_GAP displays information about archive gaps on a standby database. This

view can be used to find out the current archive gap that is blocking recovery for the

current recovery incarnation.

V$ARCHIVE

V$ARCHIVE displays information about redo log files in need of archiving. Each row

displays information for one thread. This information is also available in V$LOG. Oracle

recommends that you use V$LOG.

3.2從物理層面檢視歸檔

要從邏輯層面檢視歸檔就牽扯到了日誌分析了,通過日誌分析,我們可以去檢視資料庫中到底執行了什麼樣的命令,更新了那些物件,誰在更新等資訊。下面我們就針對歸檔日誌做一些日誌分析。

命令如下

SQL>execdbms_logmnr.add_logfile(logfilename=>'/flash/ORCL/archivelog/2015_04_16/o1_mf_1_80_blyjdrvq_.arc',options=>dbms_logmnr.new);

PL/SQLprocedure successfully completed.

SQL>

SQL>EXECDBMS_LOGMNR.START_LOGMNR(OPTIONS=>DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG);

PL/SQLprocedure successfully completed.

selectSCN,TABLE_NAME,USERNAME from v$logmnr_contents;

可以從表中檢視到所做的操作。

四、待補充