mysql 自動歸檔 Oracle啟用自動歸檔模式

2021-10-20 22:35:13 字數 2814 閱讀 4730

oracle資料庫有聯機重做日誌,這個日誌是記錄對資料庫所做的修改,比如插入,刪除,更新資料等,對這些操作都會記錄在聯機重做日

oracle的歸檔模式

一 檢視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/10.2.0/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:oraclearchivedlog"; 遠端歸檔目標: sql>log_archive_dest_2 = "service=standby_db1"; 強制的歸檔目標,如果出錯,600秒後重試: sql>alter system set log_archive_dest_4 = "location=e:oraclearchivedlog mandatory reopen=600"; 可選的歸檔目標,如果出錯,放棄歸檔: sql>alter system set log_archive_dest_3 = "location=e:oraclearchivedlog 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 安裝配置為使用 pfile 請向 oracle home dbs 目錄中的 init sid ora 檔案中新增以下日誌引數行 log archive start true log archive dest 存檔日誌目錄 log archive form...

mysql 歸檔日誌 Oracle歸檔日誌總結

1.開啟歸檔日誌 sqlplus as sysdba sql shutdown immediate sql startup mount 開啟控制檔案,不開啟資料檔案 sql alter database archivelog 將資料庫切換為歸檔模式 sql alter database open 將...

mysql 清理歸檔日誌 oracle歸檔日誌清理

在開啟歸檔並沒有截斷日誌的情況下,歸檔日誌會越來越大,在此情況下,我們該如何去清理!兩種方法 1 配置rman自動管理archivelog。也可在rman中將資料備份到磁帶上,然後將過期的archivelog刪除 2 可以手工來處理,步驟如下 1 將 oracle下的相關archivelog日誌檔案...