db2日誌模式 備份歸檔 恢復解析

2022-07-10 17:57:08 字數 3237 閱讀 7022

db2的日誌分為兩種模式,日誌迴圈與歸檔日誌,也就是非歸檔和歸檔模式。下面就具體介紹一下這兩種方式以及和備份歸檔設定的關係。

一、日誌迴圈

這是預設方式,也就是非歸檔模式,這種模式只支援(backup offline)離線備份,在備份過程中需要db2停止服務。

在db2中檢視資料庫設定,如發現如下資訊

$db2 get db cfg for db_name |grep -i log

結果如下:

log retain for recovery enabled ( logretain) = off

user exit for logging enabled (userexit) = off

hadr log write synchronization mode (hadr_syncmode) = nearsync

first log archive method (logarchmeth1) = off

則說明為非歸檔模式, 預設情況下為迴圈日誌

在這種模式下進行離線備份需要注意:

2、通過db2 backup db 資料庫名 命令來對資料庫進行備份。

二、歸檔日誌

配置db2歸檔日誌模式主要是要修改log retain for recovery enabled和first log archive method這兩個引數。

修改引數(update更新引數)後,檢視資料庫是如下設定

$db2 get db cfg for db_name |grep -i log

log retain for recovery enabled (logretain) = recovery

user exit for logging enabled (userexit) = off

hadr log write synchronization mode (hadr_syncmode) = nearsync

first log archive method (logarchmeth1) = logretain

注意這裡first log archive method的引數logretain只表明你開啟了歸檔,還需進一步設定才能正常備份

下面需要進一步指定歸檔目錄的路徑

更改歸檔目錄:

$db2 update db cfg for db_name using logarchmeth1 "disk:/archive/db_name_db_log"

使用歸檔日誌,當日誌檔案滿時,會自動對它進行歸檔,歸檔的目的地就是logarchmeth1設定的位置。歸檔日誌檔案之後,必須人工將無用的歸檔日誌刪除,以便新的日誌檔案可以復用磁碟空間。每當日誌檔案已滿,db2 就開始將記錄寫至另乙個日誌檔案,並且不斷建立新日誌檔案。

如果在歸檔日誌檔案時發生錯誤,歸檔將暫掛一段時間,此時間由「log archive retry delay (secs)」 archretrydelay資料庫配置引數指定,還可以使用「 number of log archive retries on error 」numarchretry 資料庫配置引數來指定 db2 嘗試將日誌檔案歸檔到主要或輔助歸檔目錄的次數,然後它再嘗試將日誌檔案歸檔到故障轉移目錄(由「 failover log archive path」 failarchpath 資料庫配置引數指定)。

還有就是容易遇見資料庫事務日誌已滿導致備份出錯的問題,這是可以檢視這三個引數

log file size (4kb) (logfilsiz) = 8192

number of primary log files (logprimary) = 10

number of secondary log files (logsecond) = 4

並適當調整日誌檔案大小和主輔日誌的檔案個數。

最後就是要注意這兩個引數的設定

options for logarchmeth1 (logarchopt1) =

second log archive method (logarchmeth2) =

有以下幾種情況:

1、logarchmeth1設定為logretain,logarchmeth2設定為off

這時歸檔日誌位置就是db2資料庫日誌的位置,需要人工干預歸檔日誌的轉移和空間維護工作

2、logarchmeth1設定為userexit,logarchmeth2設定為off

這時歸檔日誌的管理交由userexit來處理,通過設定編譯userexit可以實現相對複雜一些的歸檔管理方式

3、logarchmeth1設定為指定目錄,logarchmeth2設定為off

歸檔日誌的工作將會自動進行,需要歸檔日誌將會被自動歸檔到指定的位置,由於歸檔是自動進行,db2的日誌目錄中只有正常logprimary+logsecond個數的資料庫日誌。

4、logarchmeth1設定為,logarchmeth2設定為歸檔日誌的工作將會自動進行,需要歸檔日誌將會被自動歸檔到和指定的位置,也就是會產生兩份歸檔日誌。由於歸檔是自動進行,db2的日誌目錄中只有正常logprimary+logsecond個數的資料庫日誌。對效能有一定的影響。

注意:設定logarchmeth1和logarchmeth2後,資料庫會進入backup pending狀態,必須進行一次離線備份,資料才會進入recovery模式並且正常工作。

三、備份與恢復

1、簡單的冷備與恢復

$ db2 backup db [dbname] to 路徑

$ db2 restore db [dbname] from 路徑 taken at 時間戳

$ db2 backup db dbname online to 路徑 include logs

$ db2 restore db dbname from 路徑 taken at 時間戳

$ db2 "rollforward db dbname to 2013-02-31-20.00.00.000000 using local time and complete overflow log path (/backup/logs)" 前滾日誌恢復至指定時間點

3、檢視備份記錄

$ db2 list history backup all for dbname 可以看到備份的紀錄

db2的日誌模式和備份歸檔 恢復解析

db2的日誌分為兩種模式,日誌迴圈與歸檔日誌,也就是非歸檔和歸檔模式。下面就具體介紹一下這兩種方式以及和備份歸檔設定的關係。一 日誌迴圈 這是預設方式,也就是非歸檔模式,這種模式只支援 backup offline 離線備份,在備份過程中需要db2停止服務。在db2中檢視資料庫設定,如發現如下資訊 ...

db2的日誌模式和備份歸檔 恢復解析

db2的日誌分為兩種模式,日誌迴圈與歸檔日誌,也就是非歸檔和歸檔模式。下面就具體介紹一下這兩種方式以及和備份歸檔設定的關係。一 日誌迴圈 這是預設方式,也就是非歸檔模式,這種模式只支援 backup offline 離線備份,在備份過程中需要db2停止服務。在db2中檢視資料庫設定,如發現如下資訊 ...

db2歸檔日誌

1.找到歸檔日誌的路徑 1 db2 get db cfg 可以看到path to log files,類似 各種路徑 db2ad node0000 sql00001 2 cd到 各種路徑 db2ad node0000 sql00001 sqlogdir 該目錄下可以看到各種類似 s0001752.l...