oracle歸檔日志文件管理


歸檔日志(Archive Log)是非活動的重做日志備份.通過使用歸檔日志,可以保留所有重做歷史記錄,當數據庫處於ARCHIVELOG模式並進行日志切換式,后台進程ARCH會將重做日志的內容保存到歸檔日志中.當數據庫出現介質失敗時,使用數據文件備份,歸檔日志和重做日志可以完全恢復數據庫.

日志操作模式:ARCHIVELOG NOARCHIVELOG


1,改變日志操作模式:

檢查當前日志操作模式

SELECT log_mode from v$database;

關閉數據庫,然后裝載數據庫

SHUTDOWN IMMEDIATE
STARTUP MOUNT

改變日志操作模式,然后打開數據庫

ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;


2,執行手工歸檔

從oracle database 10g開始,當將日志操作模式轉變未ARCHIVELOG模式時,oracle會自動啟動ARCH進程.如果要使用手工歸檔.那么在改變日志操作模式時必須使用命令ALTER DATABASE ARCHIVELOG MANUAL.

需要注意,使用手工歸檔方式,數據庫管理員必須手工執行歸檔命令.如果沒有執行手工歸檔命令,日志組的原有內容將不能被覆蓋.ALTER DATABASE ARCHIVELOG MANUAL 命令是為了與先前的版本兼容而保留的,.將來的oracle版本會淘汰該命令,使用手工歸檔方式是,數據庫管理員可以執行以下命令歸檔重做日志:

ALTER SYSTEM ARCHIVE LOG ALL;


3,配置歸檔進程

初始化參數LOG_ARCHIVE_MAX_PROCESSES用於指定例程初始啟動的最大歸檔進程個數,當將數據庫轉變為ARCHIVELOG模式時,默認情況下oracle會自動啟動兩個歸檔進程.通過改變初始化參數LOG_ARCHIVE_MAX_PROCESS的值,可以動態地增加或降低歸檔進程的個數:

ALTER SYSTEM SET LOG_ARCHIVE_MAX_PROCESSES=3;

 

配置歸檔位置和文件格式

當數據庫處於ARCHIVELOG模式時,如果進行日志切換,后台進程將自動生成歸檔日志,歸檔日志的默認位置為%oracle_home%rdbms,在oracle database 10g中,歸檔日志的默認文件格式為ARC%S_%R.%T.為了改變歸檔日志的位置和名稱格式,必須改變相應的初始化參數,


1,初始化參數LOG_ARCHIVE_FORMAT用於指定歸檔日志的文件名格式,設置該初始化參數時,可以指定以下匹配符:

%s: 日志序列號:

%S: 日志序列號(帶有前導0)

%t: 重做線程編號.

%T: 重做線程編號(帶有前導0)

%a: 活動ID號

%d: 數據庫ID號

%r RESETLOGS的ID值.

從10g開始,配置歸檔日志文件格式時,必須帶有%s,%t和%r匹配符,配置了歸檔文件格式后,必須重啟數據庫.


2,使用LOG_ARCHIVE_DEST配置歸檔位置

如果不使用備用數據庫,只需要將歸檔日志存放到本地目錄.配置本地歸檔位置可以使用初始化參數LOG_ARCHIVE_DEST和LOG_ARCHIVE_DUPLEX_DEST,其中,第一個參數用於設置第一個歸檔位置,第二個參數用於指定第二個歸檔位置.

ALTER SYSTEM SET log_archive_dest='d:demoarchive1';

ALTER SYSTEM SET log_archive_duplex_dest='d:demoarchive2';


3,使用LOG_ARCHIVE_DEST_n配置多個歸檔位置.

初始化參數LOG_ARCHIVE_DEST_n用於指定多個歸檔位置,該參數最多可以指定10個歸檔位置.通過使用初始化參數LOG_ARCHIVE_DEST_n,不僅可以配置本地歸檔位置,還可以配置遠程歸檔位置.

如果既要在主節點上生成歸檔日志,又要將歸檔日志傳遞到備用節點,那么必須使用參數LOG_ARCHIVE_DEST_n.該參數與LOG_ARCHIVE_DEST具有如下區別;

初始化參數LOG_ARCHIVE_DEST_n可以配置本地歸檔位置和遠程歸檔位置,而初始化參數LOG_ARCHIVE_DEST和LOG_ARCHIVE_DUPLEX_DEST只能配置本地歸檔位置.

初始化參數LOG_ARCHIVE_DEST_n可以配置多達10個歸檔位置,而初始化參數LOG_ARCHIVE_DEST和LOG_ARCHIVE_DUPLEX_DEST最多只能配置兩個歸檔位置.

初始化參數LOG_ARCHIVE_DEST_n 不能與初始化參數LOG_ARCHIVE_DEST和LOG_ARCHIVE_DUPLEX_DEST同時使用.

因為初始化參數LOG_ARCHIVE_DEST_n不能與初始化參數LOG_ARCHIVE_DEST和LOG_ARCHIVE_DUPLEX_DEST同時使用,所以必須禁用初始化參數LOG_ARCHVE_DEST和LOG_ARCHIVE_DUPLEX_DEST.當使用初始化參數LOG_ARCHIVE_DEST_n配置本地歸檔位置時,需要指定LOCALTION選項.當配置遠程歸檔位置時,需要指定SERVICE選項.


示例如下:

ALTER SYSTEM SET log_archive_duplex_dest='';

ALTER SYSTEM SET log_archive_dest='';

ALTER SYSTEM SET log_archive_dest_1='location=d:demoarchive1';

ALTER SYSTEM SET log_archive_dest_2='location=d:demoarchive2';

ALTER SYSTEM SET log_archive_dest_3='location=d:demoarchive3';

ALTER SYSTEM SET log_archive_dest_4='service=standby';


配置遠程歸檔位置時,SERVICE選項需要指定遠程數據庫的網絡服務名(在tnsnames.ora文件中配置)


4,使用LOG_ARCHIVE_DEST_n選項

使用初始化參數LOG_ARCHIVE_DEST_n配置歸檔位置時,可以在歸檔位置上指定OPTIONAL或MANDATORY選項.指定MANDATORY選項時,可以設置REOPEN屬性.

OPTIONAL:該選項是默認選項.使用該選項時,無論歸檔是否成功,都可以覆蓋重做日志.

MANDATORY:強制歸檔.使用該選項時,只有在歸檔成功之后,重做日志才能被覆蓋.

REOPEN:該屬性用於指定重新歸檔的時間間隔,默認值為300秒,必須跟在MANDATORY后.

例:

Alter system set log_archive_dest_1=’location=d:demoarchive1 mandatory’;
Alter system set log_archive_dest_2=’location=d:demoarchive2 mandatory reopen=500’;
Alter system set log_archive_dest_3=’location=d:demoarchive3 optional’;


5,控制本地歸檔成功的最小個數.

使用初始化參數LOG_ARCHIVE_MIN_SUCCEED_DEST控制本地歸檔的最小成功個數

Alter system set log_archive_min_succeed_dest=2;


6,使用初始化參數LOG_ARCHIVE_DEST_STATE_n控制歸檔位置的可用性.設置該參數為ENABLE(默認值),表示會激活相應的歸檔位置;設置該參數為DEFER,表示禁用相應歸檔位置.當歸檔日志所在磁盤損壞或填滿時,DBA需要暫時禁用該歸檔位置.

Alter system set log_archive_dest_state_3=defer;(禁用)
Alter system set log_archive_dest_state_3=enable;(啟用)


顯示歸檔日志信息

1,使用ARCHIVE LOG LIST命令可以顯示日志操作模式,歸檔位置,自動歸檔機器要歸檔的日志序列號等信息.


2顯示日志操作模式

SELECT name,log_mode FROM v$database;


3,顯示歸檔日志信息.

Col name format a46
Select name, swquence#, first_change# FROM v$archived_log;

Name用於表示歸檔日志文件名,sequence#用於表示歸檔日志對應的日志序列號,firs_change#用於標識歸檔日志的起始SCN值.


4、執行介質恢復時,需要使用歸檔日志文件,此四必須准確定位歸檔日志的存放位置.通過查詢動態性能視圖v$archive_dest可以取得歸檔日志所在目錄.

SELECT destination FROM v$archive dest;


5,顯示日志歷史信息

SELECT * FROM v$loghist;

THREAD#用於標識重做線程號,SEQUNCE#用於標識日志序列號,FIRST_CHANGE#用於標識日志序列號對應的起始SCN值,FIRST_TIME用於標識起始SCN的發生時間.SWICTH_CHANGE#用於標識日志切換的SCN值.


6.顯示歸檔進程信息.

進行日志切換時,ARCH進程會自動將重做日志內容復制到歸檔日志中,為了加快歸檔速度,應該啟用多個ARCH進程.通過查詢動態性能視圖V$ARCHIVE_PROCESSES可以顯示所有歸檔進程的信息!

SELECT * FROM v$archive_processes;

Porcess用於標識ARCH進程的編號,status用於標識ARCH進程的狀態(ACTIVE:活動,STOPPED:未啟動),log_sequence用於標識正在進行歸檔的日志序列號,state用於標識ARCH進程的工作狀態


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM