一次一波三折的DB2数据库重定向恢复

作为一个IT人士,写小说之余还是要干点本职工作。接下来跟大家分享一个曾经遇到过的DB2数据库重定向恢复的问题。

以前做过好几次用到redirected restore的数据库迁移,都很顺利,可是这一次却栽了个跟头。不能说“大意了”,只能怪自己“懂得太少”。

环境:9.7 fp9 + zlinux

从prod环境上将备份文件transfer到DEV环境,由于DEV上已经有了同名的数据库SMMNF,所以需要用到redirected restore,将备份文件restore到一个新建的SMMNFP数据库里。

自己懒得写脚本,就直接生成了:

db2 restore database smmnf into smmnfp redirect generate script ./rr.sql

看了下,因为db_path是一样的,所以没改脚本,直接就开炮了!

前边一切顺利,到最后db2 rollforward db smmnfp query status查看处于rollforward pending,突然发现原来备份文件是online的,还是从TSM上取下来的。

跑一下rollfoward db to end of log and complete,出错:

SQL1268N Roll-forward recovery stopped due to error "SQL2033" while

retrieving log file "S0055756.LOG" for database "SMMNFP" on node "0".

原因是restore的时候没有指定LOGTARGET,导致rollforward需要的日志文件没能extract出来。

于是修改生成的rr.sql文件,指定logtarget:

RESTORE DATABASE SMMNF FROM '/db/backups/prod_backup' TAKEN AT 20140425114322 INTO SMMNFP  LOGTARGET /db2/apply/logtarget REDIRECT

前期一切顺利,可是到rollforward的时候又出错了:

baccdsdata:/db2/apply$ db2 rollforward database smmnfp query status

Rollforward Status

Input database alias                   = smmnfp

Number of nodes have returned status   = 1

Node number                            = 0

Rollforward status                     = DB  pending

Next log file to be read               = S0055756.LOG

Log files processed                    =  -

Last committed transaction             = 2014-04-25-12.23.22.000000 UTC

baccdsdata:/db2/apply$ db2 "rollforward db smmnfp to end of logs and complete overflow log path (/db2/apply/logtarget)"

SQL1268N  Roll-forward recovery stopped due to error "SQL2033" while

retrieving log file "S0055757.LOG" for database "SMMNFP" on node "0".


这次肿么又冒出一个S0055757.LOG(⊙o⊙)?

看db2diag.log(记住,日志是你解决问题第一个要看的东西):

2014-05-01-06.38.26.838436+000 E90419A432        LEVEL: Error

PID     : 21430                TID  : 4392547772688PROC : db2sysc 0

INSTANCE: smartmfg             NODE : 000

EDUID   : 38651                EDUNAME: db2lfr (SMMNFP) 0

FUNCTION: DB2 UDB, data protection services, sqlpSearchForLogArchiveOnDisk, probe:4000

MESSAGE : ZRC=0x860F000A=-2045837302=SQLO_FNEX "File not found."

DIA8411C A file "" could not be found.

2014-05-01-06.38.26.897621+000 E90852A361         LEVEL: Error

PID     : 34158                TID  : 4397873211152PROC : db2vend (db2logmgr.meth1 - 38648

INSTANCE: smartmfg             NODE : 000

FUNCTION: DB2 UDB, database utilities, sqluvint, probe:292

DATA #1 : TSM RC, PD_DB2_TYPE_TSM_RC, 4 bytes

TSM RC=0x00000196=406 -- see TSM API Reference for meaning.

2014-05-01-06.38.26.898602+000 E91214A865         LEVEL: Error

PID     : 21430                TID  : 4392681990416PROC : db2sysc 0

INSTANCE: smartmfg             NODE : 000

EDUID   : 38648                EDUNAME: db2logmgr (SMMNFP) 0

FUNCTION: DB2 UDB, data protection services, sqlpInitVendorDevice, probe:1030

MESSAGE : ZRC=0x86100025=-2045771739=SQLP_MEDIA_VENDOR_DEV_ERR

"A vendor device reported a media error."

DATA #1 : String, 29 bytes

Init failed!  Vendor rc info:

DATA #2 : Vendor RC, PD_DB2_TYPE_VENDOR_RC, 4 bytes

Vendor RC=0x0000000B=11 -- see DB2 API Guide for meaning.

DATA #3 : Hexdump, 48 bytes

0x000003FED157F090 : 0000 0196 3239 3220 3430 3600 0000 0000    ....292 406.....

0x000003FED157F0A0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................

0x000003FED157F0B0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................

2014-05-01-06.38.26.898998+000 I92080A438         LEVEL: Error

PID     : 21430                TID  : 4392681990416PROC : db2sysc 0

INSTANCE: smartmfg             NODE : 000

EDUID   : 38648                EDUNAME: db2logmgr (SMMNFP) 0

FUNCTION: DB2 UDB, data protection services, sqlpSearchForLogArchiveOnVendor, probe:8200

RETCODE : ZRC=0x86100025=-2045771739=SQLP_MEDIA_VENDOR_DEV_ERR

"A vendor device reported a media error."

TSM的问题。原来prod上用的是TSM online bakcup,archive log mode。而本地根本就没有配置TSM bakcup。

刚开始想直接将logarchmeth1改成off,发现不行:

baccdsdata:/db/backups/prod_backup$ db2 update db cfg for smmnfp using logarchmeth1 off

SQL5099N  The value "OFF" indicated by the database configuration parameter

"LOGARCHMETH1" is not valid, reason code "17".  SQLSTATE=08004

Cannot switch to circular logging when database is rollforward pending.

那就改成本地archive:

baccdsdata:/db/backups$ mkdir arch_log

baccdsdata:/db/backups$ db2 update db cfg for smmnfp using logarchmeth1 DISK:/db/backups/arch_log

DB20000I  The UPDATE DATABASE CONFIGURATION command completed successfully.

baccdsdata:/db/backups$ rollforward db smmnfp to end of logs and complete overflow log path (/db2/apply/logtarget)

-bash: syntax error near unexpected token `('

baccdsdata:/db/backups$ db2 "rollforward db smmnfp to end of logs and complete overflow log path (/db2/apply/logtarget)"

Rollforward Status

Input database alias                   = smmnfp

Number of nodes have returned status   = 1

Node number                            = 0

Rollforward status                     = not pending

Next log file to be read               =

Log files processed                    = S0055756.LOG - S0055757.LOG

Last committed transaction             = 2014-04-25-12.23.22.000000 UTC

DB20000I  The ROLLFORWARD command completed successfully.

至此终于问题终于解决了。原来bakcup/restore也没有想象中那么简单啊!

只是还有一个问题没能弄清楚:

backup中的logpath和target db的logpath是不一样的,如果做restore的时候没有指定NEWLOGPATH会怎么样呢?

PS: 在windows上用offline的DB做过简单的试验,没有什么发现,指不指定似乎都一样。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,179评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,229评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,032评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,533评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,531评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,539评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,916评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,813评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,568评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,654评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,354评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,937评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,918评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,152评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,852评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,378评论 2 342

推荐阅读更多精彩内容