您好,登錄后才能下訂單哦!
小編給大家分享一下DB2中在線增量備份失敗的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
公司有一臺DB2服務器在線增量備份失敗,使用的備份軟件為NETBACKUP 7.5。具體報錯如下:
nbu報4號錯誤,在賽門鐵克的官網上,對4號錯誤的描述是
給出的解決方案是驗證權限,是否可刪除文件。如果你從這個思路去找原因解決問題,就會很困惑。因為即使你把權限設成777,也還是會報這個錯誤。
換一個思路,還是看看DB2的db2diag.log日志吧。日志里有這樣一段描述:
2013-06-19-15.22.29.980017-360 E437909183A905 LEVEL: Severe
PID : 798772 TID : 1 PROC : db2agent (idle) 0
INSTANCE: db2inst2 NODE : 000 DB : PORTALDB
APPHDL : 0-490 APPID: *LOCAL.db2inst2.130619212231
AUTHID : DB2INST2
FUNCTION: DB2 UDB, database utilities, sqlubInitCheck, probe:310
MESSAGE : SQL2426N The database has not been configured to allow the
incremental backup operation. Reason code = "".
這個信息告訴我們數據庫沒有配置允許增量備份的功能,在DB2中需要開啟。在ORACLE中,則可以通過RMAN實現比較方便的增量和差異備份。
接下來我們查一下TRACKMOD參數
$ db2 get db cfg for portaldb|grep -i trackmod
Track modified pages (TRACKMOD) = OFF
發現此參數為OFF,這顯然是導致DB2增量備份失敗的最主要的原因。
因為db2的增量備份需要設置tracemod為on,這樣數據庫將在物理頁上記錄更改的部分頁,做dirty標記。開啟了增量備份意味著,不需要每次備份一個超大的數據庫.同時意味著你可以將數據庫恢復到崩潰前的狀態,而不是你最后一次備份時的狀態,最大可能的減少數據損失.
正確設置增量備份需要注意三個參數:
db2 update db cfg using logretain on(或者recovery); 啟用歸檔日志
db2 update db cfg using trackmod on; 啟用增量備份功能
db2 update db cfg using userexit on; 啟用用戶出口
更改的效果:
$ db2 update db cfg using trackmod on
DB20000I The UPDATE DATABASE CONFIGURATION command completed successfully.
SQL1363W One or more of the parameters submitted for immediate modification
were not changed dynamically. For these configuration parameters, all
applications must disconnect from this database before the changes become
effective.
也就是說,對于這些配置參數,必須在所有應用程序都與此數據庫斷開連接之后(db2 force applications all),更改才會生效。另外在更改參數后,數據庫處于backup pending狀態,在執行增量、在線備份之前必須執行離線全備份一次,以使狀態正常。
補充:如何進行在線備份、增量備份、差異備份?
db2 backup db testdb online to 備份路徑(在線全備份) include logs
db2 backup db testdb online incremental to 備份路徑(增量備份)
db2 backup db testdb online incremental delta to 備份路徑(delta備份)
如何使用備份文件進行恢復?
1.查看備份文件的完整性,并驗證是否可用
db2ckbkp -h /db2logs/PORTALDB.0.db2inst2.NODE0000.CATN0000.20130619001007.001
2.執行db2ckrst命令返回建議的必需的恢復操作命令。
db2ckrst -d portaldb -r database -t 20130619001007
3.執行上個命令給出的命令序列
db2 restore db portaldb incremental from /backup taken at 20130619001007 buffer 100
將會將數據庫還原到備份的時刻,之后應該執行日志前滾(此時數據庫處于前滾暫掛狀態,將無法使用)
db2 rollforward db portaldb to end of logs and complete
當然如果你認為不需要前滾(這樣將丟失最后一次備份之后的更改),也可以
db2 rollforward db portaldb stop
當你了解了這些知識,就能夠正確有序的執行備份恢復,快速高效的解決問題。
以上是“DB2中在線增量備份失敗的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。