oracle 歸檔日志
10年積累的成都網(wǎng)站建設(shè)、做網(wǎng)站經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認識你,你也不認識我。但先建設(shè)網(wǎng)站后付款的網(wǎng)站建設(shè)流程,更有比如免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
歸檔日志(Archive Log)是非活動的重做日志備份.通過使用歸檔日志,可以保留所有重做歷史記錄,當數(shù)據(jù)庫處于ARCHIVELOG模式并進行日志切換式,后臺進程ARCH會將重做日志的內(nèi)容保存到歸檔日志中.當數(shù)據(jù)庫出現(xiàn)介質(zhì)失敗時,使用數(shù)據(jù)文件備份,歸檔日志和重做日志可以完全恢復(fù)數(shù)據(jù)庫.
日志操作模式:ARCHIVELOG NOARCHIVELOG
1,改變?nèi)罩静僮髂J?
檢查當前日志操作模式
SELECT log_mode from v$database;
關(guān)閉數(shù)據(jù)庫,然后裝載數(shù)據(jù)庫
SHUTDOWN IMMEDIATE
STARTUP MOUNT
改變?nèi)罩静僮髂J?然后打開數(shù)據(jù)庫
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;
2,執(zhí)行手工歸檔
從oracle database 10g開始,當將日志操作模式轉(zhuǎn)變未ARCHIVELOG模式時,oracle會自動啟動ARCH進程.如果要使用手工歸檔.那么在改變?nèi)罩静僮髂J綍r必須使用命令A(yù)LTER DATABASE ARCHIVELOG MANUAL.
需要注意,使用手工歸檔方式,數(shù)據(jù)庫管理員必須手工執(zhí)行歸檔命令.如果沒有執(zhí)行手工歸檔命令,日志組的原有內(nèi)容將不能被覆蓋.ALTER DATABASE ARCHIVELOG MANUAL 命令是為了與先前的版本兼容而保留的,.將來的oracle版本會淘汰該命令,使用手工歸檔方式是,數(shù)據(jù)庫管理員可以執(zhí)行以下命令歸檔重做日志:
ALTER SYSTEM ARCHIVELOG ALL;
3,配置歸檔進程
初始化參數(shù)LOG_ARCHIVE_MAX_PROCESSES用于指定例程初始啟動的最大歸檔進程個數(shù),當將數(shù)據(jù)庫轉(zhuǎn)變?yōu)锳RCHIVELOG模式時,默認情況下oracle會自動啟動兩個歸檔進程.通過改變初始化參數(shù)LOG_ARCHIVE_MAX_PROCESS的值,可以動態(tài)地增加或降低歸檔進程的個數(shù):
ALTER SYSTEM SET LOG_ARCHIVE_MAX_PROCESSES=3;配置歸檔位置和文件格式
當數(shù)據(jù)庫處于ARCHIVELOG模式時,如果進行日志切換,后臺進程將自動生成歸檔日志,歸檔日志的默認位置為%oracle_home%rdbms,在oracle database 10g中,歸檔日志的默認文件格式為ARC%S_%R.%T.為了改變歸檔日志的位置和名稱格式,必須改變相應(yīng)的初始化參數(shù),1,初始化參數(shù)LOG_ARCHIVE_FORMAT用于指定歸檔日志的文件名格式,設(shè)置該初始化參數(shù)時,可以指定以下匹配符:
%s: 日志序列號:
%S: 日志序列號(帶有前導(dǎo)0)
%t: 重做線程編號.
%T: 重做線程編號(帶有前導(dǎo)0)
%a: 活動ID號
%d: 數(shù)據(jù)庫ID號
%r RESETLOGS的ID值.
從10g開始,配置歸檔日志文件格式時,必須帶有%s,%t和%r匹配符,配置了歸檔文件格式后,必須重啟數(shù)據(jù)庫.
2,使用LOG_ARCHIVE_DEST配置歸檔位置
如果不使用備用數(shù)據(jù)庫,只需要將歸檔日志存放到本地目錄.配置本地歸檔位置可以使用初始化參數(shù)LOG_ARCHIVE_DEST和LOG_ARCHIVE_DUPLEX_DEST,其中,第一個參數(shù)用于設(shè)置第一個歸檔位置,第二個參數(shù)用于指定第二個歸檔位置.
ALTER SYSTEM SET log_archive_dest='d:demoarchive1';ALTER SYSTEM SET log_archive_duplex_dest='d:demoarchive2';3,使用LOG_ARCHIVE_DEST_n配置多個歸檔位置.
初始化參數(shù)LOG_ARCHIVE_DEST_n用于指定多個歸檔位置,該參數(shù)最多可以指定10個歸檔位置.通過使用初始化參數(shù)LOG_ARCHIVE_DEST_n,不僅可以配置本地歸檔位置,還可以配置遠程歸檔位置.
如果既要在主節(jié)點上生成歸檔日志,又要將歸檔日志傳遞到備用節(jié)點,那么必須使用參數(shù)LOG_ARCHIVE_DEST_n.該參數(shù)與LOG_ARCHIVE_DEST具有如下區(qū)別;初始化參數(shù)LOG_ARCHIVE_DEST_n可以配置本地歸檔位置和遠程歸檔位置,而初始化參數(shù)LOG_ARCHIVE_DEST和LOG_ARCHIVE_DUPLEX_DEST只能配置本地歸檔位置.
初始化參數(shù)LOG_ARCHIVE_DEST_n可以配置多達10個歸檔位置,而初始化參數(shù)LOG_ARCHIVE_DEST和LOG_ARCHIVE_DUPLEX_DEST最多只能配置兩個歸檔位置.
初始化參數(shù)LOG_ARCHIVE_DEST_n 不能與初始化參數(shù)LOG_ARCHIVE_DEST和LOG_ARCHIVE_DUPLEX_DEST同時使用.
因為初始化參數(shù)LOG_ARCHIVE_DEST_n不能與初始化參數(shù)LOG_ARCHIVE_DEST和LOG_ARCHIVE_DUPLEX_DEST同時使用,所以必須禁用初始化參數(shù)LOG_ARCHVE_DEST和LOG_ARCHIVE_DUPLEX_DEST.當使用初始化參數(shù)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選項需要指定遠程數(shù)據(jù)庫的網(wǎng)絡(luò)服務(wù)名(在tnsnames.ora文件中配置)4,使用LOG_ARCHIVE_DEST_n選項
使用初始化參數(shù)LOG_ARCHIVE_DEST_n配置歸檔位置時,可以在歸檔位置上指定OPTIONAL或MANDATORY選項.指定MANDATORY選項時,可以設(shè)置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,控制本地歸檔成功的最小個數(shù).
使用初始化參數(shù)LOG_ARCHIVE_MIN_SUCCEED_DEST控制本地歸檔的最小成功個數(shù)Alter system set log_archive_min_succeed_dest=2;6,使用初始化參數(shù)LOG_ARCHIVE_DEST_STATE_n控制歸檔位置的可用性.設(shè)置該參數(shù)為ENABLE(默認值),表示會激活相應(yīng)的歸檔位置;設(shè)置該參數(shù)為DEFER,表示禁用相應(yīng)歸檔位置.當歸檔日志所在磁盤損壞或填滿時,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#用于表示歸檔日志對應(yīng)的日志序列號,firs_change#用于標識歸檔日志的起始SCN值.
4、執(zhí)行介質(zhì)恢復(fù)時,需要使用歸檔日志文件,此四必須準確定位歸檔日志的存放位置.通過查詢動態(tài)性能視圖v$archive_dest可以取得歸檔日志所在目錄.
SELECT destination FROM v$archive dest;
5,顯示日志歷史信息
SELECT * FROM v$loghist;
THREAD#用于標識重做線程號,SEQUNCE#用于標識日志序列號,FIRST_CHANGE#用于標識日志序列號對應(yīng)的起始SCN值,FIRST_TIME用于標識起始SCN的發(fā)生時間.SWICTH_CHANGE#用于標識日志切換的SCN值.
6.顯示歸檔進程信息.
進行日志切換時,ARCH進程會自動將重做日志內(nèi)容復(fù)制到歸檔日志中,為了加快歸檔速度,應(yīng)該啟用多個ARCH進程.通過查詢動態(tài)性能視圖V$ARCHIVE_PROCESSES可以顯示所有歸檔進程的信息!
SELECT * FROM v$archive_processes;
Porcess用于標識ARCH進程的編號,status用于標識ARCH進程的狀態(tài)(ACTIVE:活動,STOPPED:未啟動),log_sequence用于標識正在進行歸檔的日志序列號,state用于標識ARCH進程的工作狀態(tài)==========================================用Oracle歸檔日志進行恢復(fù)的方法
用Oracle歸檔日志進行恢復(fù)的方法
聯(lián)機重演日志沒有丟失應(yīng)使用完成恢復(fù),如聯(lián)機重演日志損壞,而又沒有備份,就只能進行不完全恢復(fù)。
一、完全恢復(fù):
1.使用命令“svrmgrl”調(diào)用行方式服務(wù)器管理;2.輸入命令“connect internal”,然后輸入命令“startup mount’;3.輸入命令“recover database;”
4.按下ENTER,接受默認值。
5.然后輸入命令“alter database open;”完成數(shù)據(jù)庫恢復(fù)。
二、不完全恢復(fù)
警告:
應(yīng)用不完成恢復(fù)前,必須將數(shù)據(jù)庫做一次完全冷備份,因為應(yīng)用不完全恢復(fù)后,聯(lián)機重演日志將重置,以前的所有日志不可用。
如果恢復(fù)不成功,數(shù)據(jù)庫就不能使用了。再次強調(diào),做完全冷備份后再應(yīng)用不完全恢復(fù)。
1).基于變化的恢復(fù)(change-based recovery)要執(zhí)行基于變化的恢復(fù),需要知道丟失日志之前的系統(tǒng)寫入歸檔重演日志的最大的變化號(SCN),然后可以啟動恢復(fù)語句恢復(fù)數(shù)據(jù)庫直到改變scn_number,其中比scn_number是寫到已歸檔重演日志文件順序號386的SCN(即,小于丟失日志順序號387的SCN)??梢詮腣$log_history視圖中得到SCN信息。
select first_change# from v$log_history where sequence#=387;其中387為最后一個有效的日志文件號加1,該例是查找386.
知道了SCN后,使用下述步驟完成恢復(fù)
1.使用命令“svrmgrl”調(diào)用行方式服務(wù)器管理;2.輸入命令“connect internal”,然后輸入命令“startup mount’;3.輸入命令“recover database until change 9999;”
4.在回答Oracle第一個歸檔重演日志建議信息時,輸入“auto”,Oracle在找到第387號重演日志之前停止恢復(fù)。
5.用命令“alter database open resetlogs;”打開數(shù)據(jù)庫。(應(yīng)用該命令前請確認數(shù)據(jù)庫已備份,如打開失敗,日志將不可用)2).基于停止的恢復(fù)(cancel-based recovery)
1.使用命令“svrmgrl”調(diào)用行方式服務(wù)器管理;2.輸入命令“connect internal”,然后輸入命令“startup mount’;3.輸入命令“recover database until cancel;”,Oracle提示需要的第一個歸檔重演日志文件名.按下ENTER鍵接受缺省文件名,并且—路ENTER直到詢問順序號387的日志。輸入“cancel”,停止恢復(fù)操作。
4.用命令“alter database open resetlogs;”打開數(shù)據(jù)庫。(應(yīng)用該命令前請確認數(shù)據(jù)庫已備份,如打開失敗,日志將不可用)3).基于時間的恢復(fù)(time-based recovery)
為使用基于時間的恢復(fù),必須知道記錄在V$log_history歸檔重演日志序號387(丟失重演日志)的時間,通過執(zhí)行查詢語句“select time from v$log_history where sequence#=387;”得到。本例得到的時間是:2002-06-23 14:42:04現(xiàn)在開始實施恢復(fù)。
1.使用命令“svrmgrl”調(diào)用行方式服務(wù)器管理;2.輸入命令“connect internal”,然后輸入命令“startup mount’;3.輸入命令“recover database until time '2002/06/23 14:42:04';”,Oracle提示需要的第一個歸檔重演日志文件名,輸入“auto”,Oracle恢復(fù)歸檔重演日志直到序號為387的日志,停止恢復(fù)操作。
4.用命令“alter database open resetlogs;”打開數(shù)據(jù)庫。(應(yīng)用該命令前請確認已數(shù)據(jù)庫已備份,如打開失敗,日志將不可用)提示: 使用基于時間的恢復(fù),時間的格式是YYYY/MM/DD HH24:MI:SS,并且用單引號括起。
附:如何啟用Oracle的歸檔方式
1.參照以下內(nèi)容編輯init.ora文件:
log_archive_start = true
log_archive_dest_1 = " LOCATION=D:\Oracle\oradata\ORCL\archive "og_archive_format = %%ORACLE_SID%%T%TS%S.ARC2.關(guān)閉數(shù)據(jù)庫
svrmgrl connect internal
svrmgrl shutdown normal
3.然后啟動實例并安裝該數(shù)據(jù)庫,但不打開數(shù)據(jù)庫。
svrmgrl startup mount
4.接著,發(fā)布下列更改數(shù)據(jù)庫的命令。
Svrmgrl alter database archivelog;
5.現(xiàn)在,數(shù)據(jù)庫已經(jīng)更改為歸檔方式,您可以打開數(shù)據(jù)庫。
svrmgrl alter database open;
提示:也可以使用DBA studio工具啟用數(shù)據(jù)庫的歸檔方式,操作很簡單=============================================================ORACLE歸檔模式的設(shè)置
在ORACLE 數(shù)據(jù)庫的開發(fā)環(huán)境和測試環(huán)境中,數(shù)據(jù)庫的日志模式和自動歸檔模式一般都是不設(shè)置的,這樣有利于系統(tǒng)應(yīng)用的調(diào)整,也免的生成大量的歸檔日志文件將磁盤空間大量的消耗。但在系統(tǒng)上線,成為生產(chǎn)環(huán)境時,將其設(shè)置為日志模式并自動歸檔就相當重要了,因為,這是保證系統(tǒng)的安全性,有效預(yù)防災(zāi)難的重要措施。這樣,通過定時備份數(shù)據(jù)庫和在兩次備份間隔之間的日志文件,可以有效的恢復(fù)這段時間的任何時間點的數(shù)據(jù),可以在很多時候挽回或最大可能的減少數(shù)據(jù)丟失。
一、 要使OARCLE 數(shù)據(jù)庫進行日志的自動歸檔,需要做兩方面的事情;1.是數(shù)據(jù)庫日志模式的設(shè)置(可為Archive Mode 和No Archive Mode);2.就是自動歸檔模式設(shè)置(Automatic archival,可為Enabled 和Disabled)。
二、 如何查看數(shù)據(jù)庫的現(xiàn)行日志和自動歸檔模式的設(shè)置可用archive log list 命令來查看。
運行在日志自動歸檔模式下的數(shù)據(jù)庫系統(tǒng)查看結(jié)果如下(一般是生產(chǎn)環(huán)境):
SQL archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /backup/archivelog
Oldest online log sequence 2131
Next log sequence to archive 2133
Current log sequence 2133
沒有啟動數(shù)據(jù)庫日志模式和自動歸檔的數(shù)據(jù)庫系統(tǒng)查看結(jié)果如下(一般是測試環(huán)境):
SQL archive log list
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination /u01/app/oracle/product/8.1.7/dbs/archOldest online log sequence 194
Current log sequence 196
三. 數(shù)據(jù)庫日志模式的設(shè)置
在創(chuàng)建數(shù)據(jù)庫時,可以在CREATE DATABASE 語句中指定數(shù)據(jù)庫的日志模式。假如沒有指明,則缺省為NOARCHIVELOG 模式。由于如果在創(chuàng)建數(shù)據(jù)庫時指明是Archive Mode的話,會增加約20%的創(chuàng)建時間,而在以后啟動INSTANCE 時再設(shè)置的話,一般只用去幾秒的時間,所以一般在創(chuàng)建數(shù)據(jù)庫時是不設(shè)置為ARCHIVE MODE 的。
將數(shù)據(jù)庫的日志模式設(shè)置切換(Archive Mode 和No Archive Mode 之間的切換)的步驟和操作如下:
1. 關(guān)閉運行的數(shù)據(jù)庫實例
SQL shutdown
在進行日志模式切換之前,必須將運行的數(shù)據(jù)庫正常關(guān)閉。
2. 備份數(shù)據(jù)庫
該備份跟以后產(chǎn)生的日志一起用于將來的災(zāi)難恢復(fù)(很重要,如要改為歸檔日志模式,沒有這個數(shù)據(jù)庫備份,僅有日志文件是無法從該時間點恢復(fù)的)。
3. 啟動數(shù)據(jù)庫實例到mount 狀態(tài),但不要打開。
SQL startup mount
4. 切換數(shù)據(jù)庫日志模式。
SQL alter database archivelog;(設(shè)置數(shù)據(jù)庫為歸檔日志模式)或SQL alter database noarchivelog;(設(shè)置數(shù)據(jù)庫為非歸檔日志模式)5. 打開數(shù)據(jù)庫
SQL alter database open;
6. 確認數(shù)據(jù)庫現(xiàn)在處于歸檔日志模式。
SQL archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination for example: $ORACLE_HOME/dbs/archOldest on-line log sequence 275
Next log sequence 277
Current log sequence 278
7. 將這個時間點的redo logs 歸檔
SQL archive log all;
8. 確認新產(chǎn)生的日志文件已在相應(yīng)的歸檔目錄下面。
四. 自動歸檔模式設(shè)置(Automatic archival,可為Enabled 和Disabled)。
在該模式下,數(shù)據(jù)庫啟動一個arch 進程,專門負責將redo logs 寫到系統(tǒng)歸檔設(shè)備的相應(yīng)目錄下。在數(shù)據(jù)庫的參數(shù)文件中設(shè)置參數(shù)(一般是在$ORACLE_HOME/dbs/init*.ora 文件中):
LOG_ARCHIVE_START=
LOG_ARCHIVE_DEST=
LOG_ARCHIVE_FORMAT=
LOG_ARCHIVE_START:
歸檔日志(ArchiveLog)是非活動的重做日志備份.通過使用歸檔日志,可以保留所有重做歷史記錄,當數(shù)據(jù)庫處于ARCHIVELOG模式并進行日志切換式,后臺進程ARCH會將重做日志的內(nèi)容保存到歸檔日志中.當數(shù)據(jù)庫出現(xiàn)介質(zhì)失敗時,使用數(shù)據(jù)文件備份,歸檔日志和重做日志可以完全恢復(fù)數(shù)據(jù)庫.
日志操作模式:ARCHIVELOGNOARCHIVELOG
1,改變?nèi)罩静僮髂J?
檢查當前日志操作模式
SELECTlog_modefromv$database;
關(guān)閉數(shù)據(jù)庫,然后裝載數(shù)據(jù)庫
SHUTDOWNIMMEDIATE
STARTUPMOUNT
改變?nèi)罩静僮髂J?然后打開數(shù)據(jù)庫
ALTERDATABASEARCHIVELOG;
ALTERDATABASEOPEN;
2,執(zhí)行手工歸檔
從oracledatabase10g開始,當將日志操作模式轉(zhuǎn)變未ARCHIVELOG模式時,oracle會自動啟動ARCH進程.如果要使用手工歸檔.那么在改變?nèi)罩静僮髂J綍r必須使用命令A(yù)LTERDATABASEARCHIVELOGMANUAL.
需要注意,使用手工歸檔方式,數(shù)據(jù)庫管理員必須手工執(zhí)行歸檔命令.如果沒有執(zhí)行手工歸檔命令,日志組的原有內(nèi)容將不能被覆蓋.ALTERDATABASEARCHIVELOGMANUAL命令是為了與先前的版本兼容而保留的,.將來的oracle版本會淘汰該命令,使用手工歸檔方式是,數(shù)據(jù)庫管理員可以執(zhí)行以下命令歸檔重做日志:
SLTERSYSTEMARCHIVELOGALL;
3,配置歸檔進程
初始化參數(shù)LOG_ARCHIVE_MAX_PROCESSES用于指定例程初始啟動的最大歸檔進程個數(shù),當將數(shù)據(jù)庫轉(zhuǎn)變?yōu)锳RCHIVELOG模式時,默認情況下oracle會自動啟動兩個歸檔進程.通過改變初始化參數(shù)LOG_ARCHIVE_MAX_PROCESS的值,可以動態(tài)地增加或降低歸檔進程的個數(shù):
ALTERSYSTEMSETLOG_ARCHIVE_MAX_PROCESSES=3;
配置歸檔位置和文件格式
當數(shù)據(jù)庫處于ARCHIVELOG模式時,如果進行日志切換,后臺進程將自動生成歸檔日志,歸檔日志的默認位置為%oracle_home%rdbms,在oracledatabase10g中,歸檔日志的默認文件格式為ARC%S_%R.%T.為了改變歸檔日志的位置和名稱格式,必須改變相應(yīng)的初始化參數(shù),
1,初始化參數(shù)LOG_ARCHIVE_FORMAT用于指定歸檔日志的文件名格式,設(shè)置該初始化參數(shù)時,可以指定以下匹配符:
%s:日志序列號:
%S:日志序列號(帶有前導(dǎo)0)
%t:重做線程編號.
%T:重做線程編號(帶有前導(dǎo)0)
%a:活動ID號
%d:數(shù)據(jù)庫ID號
%rRESETLOGS的ID值.
從10g開始,配置歸檔日志文件格式時,必須帶有%s,%t和%r匹配符,配置了歸檔文件格式后,必須重啟數(shù)據(jù)庫.
2,使用LOG_ARCHIVE_DEST配置歸檔位置
如果不使用備用數(shù)據(jù)庫,只需要將歸檔日志存放到本地目錄.配置本地歸檔位置可以使用初始化參數(shù)LOG_ARCHIVE_DEST和LOG_ARCHIVE_DUPLEX_DEST,其中,第一個參數(shù)用于設(shè)置第一個歸檔位置,第二個參數(shù)用于指定第二個歸檔位置.
ALTERSYSTEMSETlog_archive_dest=’d:demoarchive1’;
ALTERSYSTEMSETlog_archive_duplex_dest=’d:demoarchive2’;
3,使用LOG_ARCHIVE_DEST_n配置多個歸檔位置.
初始化參數(shù)LOG_ARCHIVE_DEST_n用于指定多個歸檔位置,該參數(shù)最多可以指定10個歸檔位置.通過使用初始化參數(shù)LOG_ARCHIVE_DEST_n,不僅可以配置本地歸檔位置,還可以配置遠程歸檔位置.
如果既要在主節(jié)點上生成歸檔日志,又要將歸檔日志傳遞到備用節(jié)點,那么必須使用參數(shù)LOG_ARCHIVE_DEST_n.該參數(shù)與LOG_ARCHIVE_DEST具有如下區(qū)別;
初始化參數(shù)LOG_ARCHIVE_DEST_n可以配置本地歸檔位置和遠程歸檔位置,而初始化參數(shù)LOG_ARCHIVE_DEST和LOG_ARCHIVE_DUPLEX_DEST只能配置本地歸檔位置.
初始化參數(shù)LOG_ARCHIVE_DEST_n可以配置多達10個歸檔位置,而初始化參數(shù)LOG_ARCHIVE_DEST和LOG_ARCHIVE_DUPLEX_DEST最多只能配置兩個歸檔位置.
初始化參數(shù)LOG_ARCHIVE_DEST_n不能與初始化參數(shù)LOG_ARCHIVE_DEST和LOG_ARCHIVE_DUPLEX_DEST同時使用.
因為初始化參數(shù)LOG_ARCHIVE_DEST_n不能與初始化參數(shù)LOG_ARCHIVE_DEST和LOG_ARCHIVE_DUPLEX_DEST同時使用,所以必須禁用初始化參數(shù)LOG_ARCHVE_DEST和LOG_ARCHIVE_DUPLEX_DEST.當使用初始化參數(shù)LOG_ARCHIVE_DEST_n配置本地歸檔位置時,需要指定LOCALTION選項.當配置遠程歸檔位置時,需要指定SERVICE選項.
示例如下:
ALTERSYSTEMSETlog_archive_duplex_dest=’’;
ALTERSYSTEMSETlog_archive_dest=’’;
ALTERSYSTEMSETlog_archive_dest_1=’location=d:demoarchive1’;
ALTERSYSTEMSETlog_archive_dest_2=’location=d:demoarchive2’;
ALTERSYSTEMSETlog_archive_dest_3=’location=d:demoarchive3’;
ALTERSYSTEMSETlog_archive_dest_4=’service=standby’;
配置遠程歸檔位置時,SERVICE選項需要指定遠程數(shù)據(jù)庫的網(wǎng)絡(luò)服務(wù)名(在tnsnames.ora文件中配置)
4,使用LOG_ARCHIVE_DEST_n選項
使用初始化參數(shù)LOG_ARCHIVE_DEST_n配置歸檔位置時,可以在歸檔位置上指定OPTIONAL或MANDATORY選項.指定MANDATORY選項時,可以設(shè)置REOPEN屬性.
OPTIONAL:該選項是默認選項.使用該選項時,無論歸檔是否成功,都可以覆蓋重做日志.
MANDATORY:強制歸檔.使用該選項時,只有在歸檔成功之后,重做日志才能被覆蓋.
REOPEN:該屬性用于指定重新歸檔的時間間隔,默認值為300秒,必須跟在MANDATORY后.
例:
Altersystemsetlog_archive_dest_1=’location=d:demoarchive1mandatory’;
Altersystemsetlog_archive_dest_2=’location=d:demoarchive2mandatoryreopen=500’;
Altersystemsetlog_archive_dest_3=’location=d:demoarchive3optional’;
5,控制本地歸檔成功的最小個數(shù).
使用初始化參數(shù)LOG_ARCHIVE_MIN_SUCCEED_DEST控制本地歸檔的最小成功個數(shù)
Altersystemsetlog_archive_min_succeed_dest=2;
6,使用初始化參數(shù)LOG_ARCHIVE_DEST_STATE_n控制歸檔位置的可用性.設(shè)置該參數(shù)為ENABLE(默認值),表示會激活相應(yīng)的歸檔位置;設(shè)置該參數(shù)為DEFER,表示禁用相應(yīng)歸檔位置.當歸檔日志所在磁盤損壞或填滿時,DBA需要暫時禁用該歸檔位置.
Altersystemsetlog_archive_dest_state_3=defer;(禁用)
Altersystemsetlog_archive_dest_state_3=enable;(啟用)
顯示歸檔日志信息
1,使用ARCHIVELOGLIST命令可以顯示日志操作模式,歸檔位置,自動歸檔機器要歸檔的日志序列號等信息.
2顯示日志操作模式
SELECTname,log_modeFROMv$database;
3,顯示歸檔日志信息.
Colnameformata40
Selectname,swquence#,first_change#FROMv$archived_log;
Name用于表示歸檔日志文件名,sequence#用于表示歸檔日志對應(yīng)的日志序列號,firs_change#用于標識歸檔日志的起始SCN值.
4執(zhí)行介質(zhì)恢復(fù)時,需要使用歸檔日志文件,此四必須準確定位歸檔日志的存放位置.通過查詢動態(tài)性能視圖v$archive_dest可以取得歸檔日志所在目錄.
SELECTdestinationFROMv$archivedest;
5,顯示日志歷史信息
SELECT*FROMv$loghist;
THREAD#用于標識重做線程號,SEQUNCE#用于標識日志序列號,FIRST_CHANGE#用于標識日志序列號對應(yīng)的起始SCN值,FIRST_TIME用于標識起始SCN的發(fā)生時間.SWICTH_CHANGE#用于標識日志切換的SCN值.
6.顯示歸檔進程信息.
進行日志切換時,ARCH進程會自動將重做日志內(nèi)容復(fù)制到歸檔日志中,為了加快歸檔速度,應(yīng)該啟用多個ARCH進程.通過查詢動態(tài)性能視圖V$ARCHIVE_PROCESSES可以顯示所有歸檔進程的信息!
SELECT*FROMv$archive_processes;
Porcess用于標識ARCH進程的編號,status用于標識ARCH進程的狀態(tài)(ACTIVE:活動,STOPPED:未啟動),log_sequence用于標識正在進行歸檔的日志序列號,state用于標識ARCH進程的工作狀態(tài)
Oracle Enterprise Manager Console——某一個數(shù)據(jù)庫——例程——配置——恢復(fù)——“歸檔日志模式”(自動歸檔); 例程——配置——一般信息——所有初始化參數(shù)——log_archive_start=true 歸檔信息可以通過如下語句查看 SQL archive log list Oracle數(shù)據(jù)庫可以運行在兩種模式下:歸檔模式(archivelog)和非歸檔模式(noarchivelog)。 檢查歸檔模式命令 SQL archive log list 設(shè)置歸檔模式 SQL shutdown immediate; SQL startup mount SQL alter database archivelog; SQL alter database open; SQL archive log list; 如果需要停止歸檔模式,使用:alter database noarchivelog 命令。Oracle10g之前,你還需要修改初始化參數(shù)使數(shù)據(jù)庫處于自動歸檔模式。在pfile/spfile中設(shè)置如下參數(shù) log_archive_start = true 重啟數(shù)據(jù)庫此參數(shù)生效,此時數(shù)據(jù)庫處于自動歸檔模式。也可以在數(shù)據(jù)庫啟動過程中,手工執(zhí)行 archive logstart使數(shù)據(jù)庫啟用自動歸檔,但是重啟后數(shù)據(jù)庫仍然處于手工歸檔模式 。10g使用db_recovery_file_dest來作為歸檔日志的存放地。 SQL show parameter db_recovery( 該語句在oracle11g下無效)NAME TYPEVALUEdb_recovery_file_dest string /home/oracle/ora10g/flash_reco very_area/
要確認數(shù)據(jù)庫的運行模式,可以查詢數(shù)據(jù)字典V$database
select name,created,log_mode from V$DATABASE
查詢數(shù)據(jù)庫名,創(chuàng)建時間,及數(shù)據(jù)庫歸檔模式。
要是以sysdba的身份連接數(shù)據(jù)庫,可以使用
archive log list 命令顯示數(shù)據(jù)庫歸檔模式;
shutdown immediate;關(guān)閉卸載數(shù)據(jù)庫,關(guān)閉例程。
startup mount;啟動例程。
alter database archivelog(或者noarchivelog);設(shè)置數(shù)據(jù)庫為歸檔或非歸檔。
alter database open;開啟數(shù)據(jù)庫。
archive log list;查詢是否歸檔/非歸檔成功。