oracle 归档日志
一、查看數據庫運行模式?
可以用超級用戶(INTERNAL)在SQLPLUS中使用命令ARCHIVE LOG LIST查看?
SQL> archive log list?
Database log mode No Archive Mode?
Automatic archival Disabled?
Archive destination /export/home/oracle/product//dbs/arch?
Oldest online log sequence 28613?
Current log sequence 28615?
或者用:?
SQL> SELECT NAME,LOG_MODE FROM V$DATABASE;?
?
NAME LOG_MODE?
-------- ------------?
BIGSUN NOARCHIVELOG?
如看到如上情況,則證明是非歸檔(NOARCHIVELOG)模式。?
二、關閉數據庫?
通知相關人員后,發布如下命令關閉數據庫:?
SQL> shutdown immediate?
三、設置相應的初始化參數?
參數文件一般存放在$ORACLE_HOME/dbs目錄下,格式為:initSID.ora,其中SID為數據庫名。可以使用VI命令進行編輯。
feedom.net
1、設置歸檔路徑?
a)LOG_ARCHIVE_DEST和LOG_ARCHIVE_DUPLEX_DEST參數?
這兩個參數指明了歸檔日志存放的兩個路徑,如果只設置第一個,則歸檔日志只存放到一個路徑。?
例:?
log_archive_dest=/disk1/archive?
log_archive_duplex_dest=/disk2/archive?
b)LOG_ARCHIVE_DEST_n參數?
其中n為1-5的整數,必需從低到高設置,下面舉例說明:?
log_archive_dest_1="LOCATION=/archive MANDATORY REOPEN"?
log_archive_dest_2="SERVICE=standby_db1 MANDATORY REOPEN=600"?
log_archive_dest_3="LOCATION=/archive2 OPTIONAL"?
LOCATION關鍵字說明是本機的一個目錄,而SERVICE關鍵字說明是已經在Net8中進行了配置的其他數據庫主機的別名。?
MANDATORY關鍵字說明聯機日志文件必須要成功歸檔到這個目錄后才能被覆寫(聯機日志文件是重復使用的文件)。缺省為可選(OPTIONAL),即即使歸檔不成功也可以覆寫。在設置時應該至少有一個本地(LOCATION)強制(MANDATORY)歸檔目錄。?
REOPEN關鍵字說明如果歸檔不成功時系統要重新嘗試歸檔,缺省每300秒嘗試一次直到成功。可以通過=n來指定嘗試的時間間隔,如log_archive_dest_2中的時間間隔為600秒,而log_archive_dest_1中的時間間隔為300秒。 網管聯盟www.bitsCN.com?
a)和b)兩種方式是排斥的,即只能設置其中的一種,a)和b)的不同之處在于:?
a)最多只能設置2個歸檔路徑,而b)最多可設置5個。?
a)中只能指定本地目錄,b)中可指定遠程服務目錄。?
如果使用a)方式,則log_archive_dest是強制(MANDATORY)歸檔目錄,而log_archive_duplex_dest為可選(OPTIONAL)目錄。?
a)中不能使用REOPEN關鍵字。?
所以推薦使用b)方式。?
2、設置歸檔日志文件名格式?
例:?
log_archive_format=arch%S.arc?
其中%S為日志序列號,則生成的歸檔日志文件名為arch001.arc、arch002.arc等。
3、設置最小歸檔成功數?
例:?
log_archive_min_succeed_dest=2
此參數說明至少有2個歸檔路徑歸檔成功后才能覆寫聯機日志文件,此參數和歸檔路徑參數聯用。?
如歸檔路徑參數設置為:?
log_archive_dest_1="LOCATION=/archive MANDATORY REOPEN"?
log_archive_dest_2="SERVICE=standby_db1 OPTIONAL"?
log_archive_dest_3="LOCATION=/archive2 OPTIONAL"?
則log_archive_dest_1必須歸檔成功(MANDATORY),log_archive_dest_2、log_archive_dest_3中必須有一個歸檔成功(log_archive_min_succeed_dest=2)后才能覆寫聯機日志文件。同樣,如果log_archive_dest_n中的MANDATORY關鍵字個數大于log_archive_min_succeed_dest,則log_archive_min_succeed_dest的設置不起作用。
中國網管聯盟www_bitscn_com
4、控制歸檔路徑是否可用?
例:?
log_archive_dest_state_1=DEFER?
log_archive_dest_state_2=ENABLE?
此參數和log_archive_dest_n參數配對使用,缺省值為ENABLE,如果想停止使用一個歸檔目錄,只需將其對應的log_archive_dest_state_n參數值設置為DEFER。?
5、實現自動歸檔(可選)?
log_archive_start=true?
log_archive_max_processes=2?
在ORACLE中,自動歸檔的進程名為ARC0、ARC1等,log_archive_start參數說明是否采用自動歸檔,值為true表示采用,為false時必須采用命令來手工備份。log_archive_max_processes表示在log_archive_start為true時運行幾個歸檔進程來完成歸檔工作,取值范圍為1-10。?
四、更改數據庫運行模式?
在SQLPLUS中執行命令:?
SQL> startup mount?
SQL> alter database archivelog;?
SQL> alter database open;?
至此,模式轉化工作已經大功告成。但需要注意的是,由于更改了數據庫結構,如有數據庫安全方面的需要,必須關閉數據庫并完全備份。
轉載自:http://www.cnblogs.com/jacktu/archive/2007/08/01/710113.html
一。查看oracle數據庫是否為歸檔模式:
1.select name,log_mode from v$database;
NAME?????????????? LOG_MODE
------------------ ------------------------
QUERY?????????? NOARCHIVELOG
2.使用ARCHIVE LOG LIST?命令
Database log mode????????????? No Archive Mode
Automatic archival???????????? Disabled
Archive destination??????????? /data/oracle/product//db_1//dbs/arch
Oldest online log sequence???? 739
Current log sequence????????? 741
二。什么是Oracle歸檔模式?
Oracle數據庫有聯機重做日志,這個日志是記錄對數據庫所做的修改,比如插入,刪除,更新數據等,對這些操作都會記錄在聯機重做日志里。一般數據庫 至少要有2個聯機重做日志組。當一個聯機重做日志組被寫滿的時候,就會發生日志切換,這時聯機重做日志組2成為當前使用的日志,當聯機重做日志組2寫滿的 時候,又會發生日志切換,去寫聯機重做日志組1,就這樣反復進行。
如果數據庫處于非歸檔模式,聯機日志在切換時就會丟棄. 而在歸檔模式下,當發生日志切換的時候,被切換的日志會進行歸檔。比如,當前在使用聯機重做日志1,當1寫滿的時候,發生日志切換,開始寫聯機重做日志 2,這時聯機重做日志1的內容會被拷貝到另外一個指定的目錄下。這個目錄叫做歸檔目錄,拷貝的文件叫歸檔重做日志。
數據庫使用歸檔方式運行時才可以進行災難性恢復。
1.歸檔日志模式和非歸檔日志模式的區別
非歸檔模式只能做冷備份,并且恢復時只能做完全備份.最近一次完全備份到系統出錯期間的數據不能恢復.
歸檔模式可以做熱備份,并且可以做增量備份,可以做部分恢復.
用ARCHIVE LOG LIST 可以查看期模式狀態時歸檔模式還是非歸檔模式.
三。配置數據庫的歸檔模式
改變非歸檔模式到歸檔模式:
1)SQL>SHUTDOWN NORMAL/IMMEDIATE;
2)SQL>START MOUNT;
3)SQL>ALTER DATABASE ARCHIVELOG;
4)SQL>ALTER DATABASE OPEN;
5)SQL>做一次完全備份,因為非歸檔日志模式下產生的備份日志對于歸檔模式已經不可用了.這一步非非常重要!
改變歸檔模式到非歸檔模式:
1)SQL>SHUTDOWN NORMAL/IMMEDIATE;
2)SQL>START MOUNT;
3)SQL>ALTER DATABASE NOARCHIVELOG;
4)SQL>ALTER DATABASE OPEN;
3.啟用自動歸檔: LOG_ARCHIVE_START=TRUE
歸檔模式下,日志文件組不允許被覆蓋(重寫),當日志文件寫滿之后,如果沒有進行手動歸檔,那么系統將掛起,知道歸檔完成為止.
這時只能讀而不能寫.
運行過程中關閉和重啟歸檔日志進程
SQL>ARCHIVE LOG STOP
SQL>ARCHIVE LOG START
4.手動歸檔: LOG_ARCHIVE_START=FALSE
歸檔當前日志文件
SQL>ALTER SYSTEM ARCHIVE LOG CURRENT;
歸檔序號為052的日志文件
SQL>ALTER SYSTEM ARCHIVE LOG SEQUENCE 052;
歸檔所有日志文件
SQL>ALTER SYSTEM ARCHIVE LOG ALL;
改變歸檔日志目標
SQL>ALTER SYSTEM ARCHIVE LOG CURRENT TO '&PATH';
5.歸檔模式和非歸檔模式的轉換
第4步的逆過程.
6.配置多個歸檔進程
Q:什么時候需要使用多個歸檔進程?
A:如果歸檔過程會消耗大量的時間,那么可以啟動多個歸檔進程,這是個動態參數,可以用ALTER SYSTEM動態修改.
SQL>ALTER SYSTEM SET LOG_ARCHIVE_MAX_PROCESSES=10;
Oracle9i中最多可以指定10個歸檔進程
與歸檔進程有關的動態性能視圖
v$bgprocess,v$archive_processes
7.配置歸檔目標,多歸檔目標,遠程歸檔目標,歸檔日志格式
歸檔目標 LOG_ARCHIVE_DEST_n
本地歸檔目標:
SQL>LOG_ARCHIVE_DEST_1 = "LOCATION=D:\ORACLE\ARCHIVEDLOG";
遠程歸檔目標:
SQL>LOG_ARCHIVE_DEST_2 = "SERVICE=STANDBY_DB1";
強制的歸檔目標,如果出錯,600秒后重試:
SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_4 = "LOCATION=E:\ORACLE\ARCHIVEDLOG MANDATORY REOPEN=600";
可選的歸檔目標,如果出錯,放棄歸檔:
SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_3 = "LOCATION=E:\ORACLE\ARCHIVEDLOG OPTIONAL";
歸檔目標狀態:關閉歸檔目標和打開歸檔目標
關閉歸檔目標1
SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_1 = DEFER?
打開歸檔目標2
SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2 = ENABLE?
歸檔日志格式
LOG_ARCHIVE_FORMAT
8.獲取歸檔日志信息
V$ARCHVIED_LOG
V$ARCHVIE_DEST
V$LOG_HISTORY
V$DATABASE
V$ARCHIVE_PROCESSES
ARCHIVE LOG LIST;
總結
以上是生活随笔為你收集整理的oracle 归档日志的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Oracle 中control_file
- 下一篇: 如何删除以横线“-”开头的文件