DB2線上備份與恢復
預設情況為迴圈日誌,也就是無法進行日誌歸檔或線上備份,若需要進行線上備份,需修改為歸檔日誌模式。
對於v9.5以後的版本,貌似只需要修改
First log archive method (LOGARCHMETH1) = DISK:/home/db2inst1/db2data/ 這一個引數即可實現線上歸檔。
db2 update db cfg for db2name using logarchmeth1 'disk:/home/db2inst1/db2data'
LOGARCHMETH1這個即設定歸檔的方式,可以指定DISK、TSM等引數。
修改該引數後需要重啟資料庫才可生效。
[db2inst1@localhost backup]$ db2stop force
11/25/2013 22:17:02 0 0 SQL1064N DB2STOP processing was successful.
SQL1064N DB2STOP processing was successful.
[db2inst1@localhost backup]$ db2start
11/25/2013 22:17:07 0 0 SQL1063N DB2START processing was successful.
SQL1063N DB2START processing was successful.
[db2inst1@localhost backup]$ db2 connect to sample
SQL1116N A connection to or activation of database "SAMPLE" cannot be made
because of BACKUP PENDING. SQLSTATE=57019
發現重啟後還是不能連線,這時資料庫狀態為BACKUP PENDING,需要做一個備份,記住是離線備份。
db2 backup db sample to
離線備份完成後,即可連線成功。
db2 archive log for db sample--測試日誌歸檔是否成功,執行完畢後到/home/db2inst1/db2data/db2inst1/EPS目錄檢視是否有歸檔日誌生成。
對於較低版本修改為線上歸檔的方法(此2個引數是必須修改的,對於高版本,也可繼續使用):
1. db2 update db cfg for sample using userexit on;--啟用使用者出口
2. db2 update db cfg using logretain on;--啟用歸檔日誌
3. db2 update db cfg using trackmod on;--啟用增量備份功能
線上備份:
修改為歸檔模式後,資料庫不可連線,為backup pending狀態,需進行一次離線備份後才可繼續使用。
db2 force application all;
db2 backup db sample to
db2 backup db sample online to
db2 backup db sample online to
db2 archive log for db sample--切換歸檔日誌
還原:
包含歸檔日誌的還原,首先需要將log恢復出來
db2 restore db db sample from /home/db2inst1/db2data taken at 20141104092152 logtarget /home/db2inst1/dbsample_log/
db2 "rollforward db sampleto end of logs and stop overflow log path(/home/db2inst1/dbsample_log/)"--日誌回滾
恢復1:
db2 restore db [資料庫名] [taken at 2011**** ]
db2 rollforward db [資料庫名] to end of logs and complete
恢復2:
db2 restore db [資料庫名] [taken at 2011**** ]
db2 rollforward db [資料庫名] to end of logs and complete overflow log path(/dbfiles/logarchive)
恢復3:
db2 restore db [資料庫名] [taken at 2011****] logtarget /dbfile/logarchive
db2 rollforward db [資料庫名] to end of logs and complete overflow log path(/dbfiles/logarchive)
end of logs的作用是讓DB2在執行備份操作後應用所有指定位置的可用的日誌檔案
在前滾處理期間,DB2如果在當前日誌路徑中沒有發現日誌檔案,則搜尋overflow log path選項指定的路徑,並使用這個位置的日誌檔案
執行sample資料庫前滾,可以使用下列語句:
rollforward database sample to end of logs and complete
rollforward database sample to timestamp and complete
rollforward database sample to timestamp using local time and complete
這幾種恢復後的資料有什麼差別嗎?
1和2的區別在於,1使用預設的日誌路徑進行前滾,2指定了/dbfiles/logarchive為日誌的路徑
2和3的區別在於,3多了logtarget /dbfile/logarchive,這個子句只有在備份時(db2 backup db test online to /home/db2inst1/on_back/ include logs)指定了include logs才可以用,把你備份出來的檔案裡包含的日誌檔案釋放到/dbfile/logarchive目錄下
####
db2 歸檔日誌的相關資訊儲存在恢復歷史檔案中,可以透過db2 list history 命令檢視
db2 list history archive log all for eps;
清除這些資訊,需要使用db2 prune history命令。該命令會清楚指定時間戳及以前的所有條目(不只是歸檔日誌)。預設情況下,系統不會清除最近一次資料庫
全備之後的歸檔日誌資訊:db2 prune history 20100103235553
db2 list history backup all for eps
透過使用 and delete 引數,可以在清理條目的同時刪除對應的歸檔日誌檔案。
db2 prune history 20100103235608 and delete
對於全備之後生成的歸檔日誌檔案,不會自動清除,如果想強制清除,可以使用with force option引數。
db2 prune logfile命令可以清除活動目錄下的線上歸檔日誌檔案,但對離線歸檔日誌檔案無效。
#####
從v8.2開始提供recover database,新的recover database命令結合了restore database 和 rollforward database命令的功能,簡單來說recover=restore+rollforward,使用此命令時,根據恢復歷史檔案中的資訊使資料庫恢復到一個指定的時間,它自動選擇最佳適用備份映象來執行恢復操作。
recover db sample
recover db sample to 2015-03-10-11.00.00 using local time
第一行,db2從可用最近備份映象恢復sample資料庫,並將前滾到日誌的最後
第二行,db2將sample資料庫恢復到時間時間點2015-03-10-11.00.00,這是按照當地時間指定的
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28258625/viewspace-1350214/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- DB2備份與恢復DB2
- db2備份恢復(backup restore)DB2REST
- db2 命令列備份和恢復DB2命令列
- RAC備份恢復之Voting備份與恢復
- 備份與恢復:polardb資料庫備份與恢復資料庫
- MySQL備份與恢復——基於Xtrabackup物理備份恢復MySql
- Jenkins備份與恢復Jenkins
- Postgresql 備份與恢復SQL
- MySQL 備份與恢復MySql
- Mysql備份與恢復(1)---物理備份MySql
- MySQL備份與恢復——基於MyDumper/MyLoader 邏輯備份恢復MySql
- Oracle 備份 與 恢復 概述Oracle
- DB的備份與恢復
- GitLab的備份與恢復Gitlab
- MySQL 非常規恢復與物理備份恢復MySql
- Mysql備份與恢復(2)---邏輯備份MySql
- MySQL備份與恢復——基於OUTFILE /LOAD DATA 邏輯備份恢復MySql
- GitLab的自動備份、清理備份與恢復Gitlab
- 備份與恢復oracle_homeOracle
- 《入門MySQL—備份與恢復》MySql
- MySQL備份與恢復——實操MySql
- 入門MySQL——備份與恢復MySql
- RMAN備份與恢復測試
- MySQL備份與恢復操作解析MySql
- Mysql資料備份與恢復MySql
- mydumper備份恢復
- Mysql備份恢復MySql
- 備份和恢復
- Oracle 12c 備份與恢復Oracle
- Mysql的幾種備份與恢復MySql
- Elasticsearch叢集的備份與恢復Elasticsearch
- MySQL入門--備份與恢復(三)MySql
- MySQL入門--備份與恢復(一)MySql
- MySQL入門--備份與恢復(二)MySql
- MySQL 日誌管理、備份與恢復MySql
- RabbitMQ如何備份與恢復資料MQ
- Linux 系統的備份與恢復Linux
- postgresql備份與恢復資料庫SQL資料庫
- 詳解叢集級備份恢復:物理細粒度備份恢復