DB2資料庫備份恢復

2021-09-30 13:17:02 字數 3850 閱讀 8092

db2資料庫恢復:

一次意外的儲存故障,導致表空間損壞。然而最近一次成功的完全備份是在8天前,最近8天內只有歸檔日誌的備份。

檢視表空間狀態:有兩個表空間無法回滾。

tablespace id = 7

name = replicas

type = database managed space

contents = all permanent data. large table space.

state = 0x0080

detailed explanation:

roll forward pending

total pages = 959104

useable pages = 959072

used pages = 0

free pages = 0

high water mark (pages) = 0

page size (bytes) = 32768

extent size (pages) = 32

prefetch size (pages) = 32

number of containers = 1

minimum recovery time = 2012-08-29-06.28

.54.000000

tablespace id = 8

name = tracking

type = database managed space

contents = all permanent data. large table space.

state = 0x0080

detailed explanation:

roll forward pending

total pages = 731648

useable pages = 731616

used pages = 0

free pages = 0

high water mark (pages) = 0

page size (bytes) = 4096

extent size (pages) = 32

prefetch size (pages) = 32

number of containers = 1

minimum recovery time = 2012-09-29-08.33

.08.000000

然而,筆者是個手賤的菜鳥!沒做過資料庫恢復,想也沒想,就直接敲了 「db2 restore db rmdb11」,並沒有加」use tsm」,高高興興的等待著資料恢復。結果當命令執行完之後發現悲劇了,df -g看到資料盤使用率變成0%了!!!

好吧,原本只需要恢復歸檔日誌,然後rollforward就能解決。現在真的要全庫恢復了!

列出所有成功的備份

$ db2adutl query      

query for database rmdb11

retrieving full database backup information.

1time: 20150419205821 oldest log: s0029102.log db partition number: 0 sessions: 2

2time: 20150418205817 oldest log: s0029098.log db partition number: 0 sessions: 2

3time: 20150311205822 oldest log: s0027842.log db partition number: 0 sessions: 2

4time: 20150307205821 oldest log: s0027705.log db partition number: 0 sessions: 2

5time: 20150306213640 oldest log: s0027645.log db partition number: 0 sessions: 2

6time: 20150215215435 oldest log: s0027134.log db partition number: 0 sessions: 2

7time: 20150213205848 oldest log: s0027077.log db partition number: 0 sessions: 2

恢復資料到最近的時間點

db2 restore db rmdb11 use tsm taken at 20150419205821
前滾資料庫到最近的歸檔日誌

db2 rollforward db rmdb11 to

endof logs and

stop

假如找不到歸檔日誌,首先要恢復需要的歸檔日誌:

並檢查表空間狀態,確認表空間狀態正常。備份

指令碼

$ cat db_backup.sh

#!/bin/ksh

. $home/.profile > /dev/null 2>&1

dbnm=$1

db2adutl delete full keep 7 without prompting

db2 "backup db $dbnm online use tsm open 1 sessions without prompting"

備份命令

db2 backup db rmdb11 online use tsm open

1 sessions without prompting

DB2資料庫備份恢復

song 說 在你本機上有沒有乙個叫huaxing的資料庫?小饒 說 沒有小饒 說 是否要建立個例項?song 說 你想把它恢復到本機上,但是現在在wjs的機器上有個叫huaxing的資料庫,你可以在你的機器上訪問wjs上的huaxing資料庫,是這樣嗎?小饒 說 是的小饒 說 現在想做個測試,看備...

備份恢復DB2資料庫步驟

備份 增量意味著,不需要每次備份乙個超大的資料庫.同時意味著你可以將資料庫恢復到崩潰前的狀態,而不是你最後一次備份時的狀態,最大可能的減少資料損失.更改logretain為recovery或者on,改改userexit為on 這樣db2的日誌將不會迴圈使用,而是不斷增多,這樣才有可能進行增量備份,並...

db2資料庫備份與恢復

先停掉tomcat,然後在機器a上執行以下語句 其中pos db為要備份的db,home backup為備份的路徑,生成的備份檔案為pos db.0.db2ipms.dbpart000.20180609185344.001 在機器b上執行以下語句 db2 restore database pos d...