查看: 10589|回复: 12

[精华] 不小心删除SMS容器中的SQLTAG.NAM文件怎么办??

[复制链接]
招聘 : c/c++研发
论坛徽章:
45
技术图书徽章
日期:2014-03-10 14:09:192012新春纪念徽章
日期:2012-02-13 15:12:092012新春纪念徽章
日期:2012-02-13 15:12:092012新春纪念徽章
日期:2012-01-04 11:51:22ITPUB十周年纪念徽章
日期:2011-11-01 16:21:15现任管理团队成员
日期:2011-05-07 01:45:082011新春纪念徽章
日期:2011-01-25 15:42:562011新春纪念徽章
日期:2011-01-25 15:42:332011新春纪念徽章
日期:2011-01-25 15:42:152011新春纪念徽章
日期:2011-01-25 15:41:50
跳转到指定楼层
1#
发表于 2010-4-11 01:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这两天碰到一个好玩的case,出于什么原因客户的一个数据库中两个SMS表空间处于offline状态,然后报错说表空间不可访问。
检查了一下,发现他们的两个表空间中SQLTAG.NAM文件不在了,可能是什么人不当心手工删除了吧。
但问题是,这个客户竟然没有backup文件,而且他们想要这两个表空间中的一些咚咚,怎么办啊?

好,让我们来稿定这个case

2010-04-05-09.37.18.431000-300 I1H932             LEVEL: Event
PID     : 3064                 TID  : 4328        PROC : db2syscs.exe
INSTANCE: DB2                  NODE : 000
FUNCTION: DB2 UDB, RAS/PD component, _pdlogInt, probe:120
START   : New db2diag.log file
DATA #1 : Build Level, 124 bytes
Instance "DB2" uses "32" bits and DB2 code release "SQL08027"
with level identifier "03080106".
Informational tokens are "DB2 v8.1.14.292", "s061108", "WR21377", FixPak "14".
DATA #2 : System Info, 1564 bytes
System: WIN32_NT xxxxx  Service Pack 2 5.2 x86 Family 15, model 4, stepping 1
CPU: total:8 online:8 Cores per socket:1 Threading degree per core:2
Physical Memory(MB): total:8191 free:6851 available:1691
Virtual  Memory(MB): total:16174 free:21918
Swap     Memory(MB): total:7983 free:15067
Information in this record is only valid at the time when this file was
created (see this record's time stamp)

厚厚厚,竟然是v8 fp14,还是用瘟到死的,怪不得能出这么愚昧的错误,估计是顾了个实习生照看系统的吧

首先,虾米是SQLTAG.NAM涅?

不管是DMS 还是 SMS,每一个container都要有一些信息来记录这个container是对应哪个数据库哪个instance之类的冬冬,对不对?要不然restore的时候指定一个存在的container,如果这个container属于被覆盖的数据库那么就继续restore,否则报错,而不是不管怎样都覆盖文件,对不?
好,无奖竞猜开始,db2怎么知道一个容器是不是就是对应的数据库的呢?
答案就是tag数据结构

话说这个tag吧,它在DMS中是存在container的第一个extent的,而在SMS里呢?它存在一个单独的文件里面,叫做SQLTAG.NAM(别问我为什么用.NAM后缀,我也不知道)

如果这个文件不见了会出现虾米情况呢?当db2说:我来用一下tablespace 4吧,然后他老人家就跑过来首先检测这个tablespace4所定义的容器(这个信息存放在SQLSPCS文件里面,也就是tablespace的定义文件,当然也是二进制的)是不是合法的。怎么检测合法与否呢?就是看那个tag里面的信息是不是能和控制文件里面的一些信息吻合。(具体哪些信息俺就不细说了)

但是如果文件不再怎么办呢?db2直接说了:俺打不开这个tag,所以这个tablespace就给他offline状态好了。

让我们先来迈出第一步,也就是给db2一个tag文件。
我们随便从其他的容器里面考一个SQLTAG.NAM文件出来(不过要注意,最好从本数据库考,如果本数据库没有其他的SMS,那么也要从一个同样芯片架构和同样db2版本的环境下拷贝,否则数据结构不同),放到SMS容器目录下,然后DB2就能够打开这个文件,然后检测其合法性了。

当检测结果和预期不吻合的时候呢,DB2的检测tag合法与否的函数就开始大喊大叫了:
2010-04-09-16.19.00.930000-300 I47028484H2772     LEVEL: Severe
PID     : 8176                 TID  : 6628        PROC : db2syscs.exe
INSTANCE: DB2                  NODE : 000         DB   : TPCDB
APPHDL  : 0-7                  APPID: NF000001.LC06.100409211859
FUNCTION: DB2 UDB, buffer pool services, sqlbContainerTagIsValid, probe:100
MESSAGE : *pTag(CONTAINER_TAG)
DATA #1 : Hexdump, 512 bytes
0x01E33850 : 4442 3243 4F4E 5400 1302 0000 9039 4247    DB2CONT......9BG
0x01E33860 : 0300 0000 0000 0000 0100 0000 0100 0000    ................
0x01E33870 : 0000 01F4 0B00 5450 4344 4220 2020 0044    ......TPCDB   .D
0x01E33880 : 4232 0000 0000 0000 0000 0000 0000 0000    B2..............
0x01E33890 : 0000 443A 5C44 4232 5C4E 4F44 4530 3030    ..D:\DB2\NODE000
0x01E338A0 : 305C 5351 4C30 3030 3032 5C00 0000 0000    0\SQL00002\.....
0x01E338B0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x01E338C0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x01E338D0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x01E338E0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x01E338F0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x01E33900 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x01E33910 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x01E33920 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x01E33930 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x01E33940 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x01E33950 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x01E33960 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x01E33970 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x01E33980 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x01E33990 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x01E339A0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x01E339B0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x01E339C0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x01E339D0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x01E339E0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x01E339F0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x01E33A00 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x01E33A10 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x01E33A20 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x01E33A30 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x01E33A40 : 0000 0000 0000 0000 0000 0000 A805 75D9    ..............u.

2010-04-09-16.19.00.930000-300 I47031258H2771     LEVEL: Severe
PID     : 8176                 TID  : 6628        PROC : db2syscs.exe
INSTANCE: DB2                  NODE : 000         DB   : TPCDB
APPHDL  : 0-7                  APPID: NF000001.LC06.100409211859
FUNCTION: DB2 UDB, buffer pool services, sqlbContainerTagIsValid, probe:200
MESSAGE : iTag(CONTAINER_TAG)
DATA #1 : Hexdump, 512 bytes
0x01E21B34 : 4442 3243 4F4E 5400 1302 0000 9039 4247    DB2CONT......9BG
0x01E21B44 : 0600 0000 0000 0000 0100 0000 0100 0000    ................
0x01E21B54 : 0000 01F4 1CFE 5450 4344 4220 2020 0044    ......TPCDB   .D
0x01E21B64 : 4232 0000 0000 0000 0000 0000 0000 01F4    B2..............
0x01E21B74 : 1CFE 443A 5C44 4232 5C4E 4F44 4530 3030    ..D:\DB2\NODE000
0x01E21B84 : 305C 5351 4C30 3030 3032 5C00 0000 0000    0\SQL00002\.....
0x01E21B94 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x01E21BA4 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x01E21BB4 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x01E21BC4 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x01E21BD4 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x01E21BE4 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x01E21BF4 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x01E21C04 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x01E21C14 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x01E21C24 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x01E21C34 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x01E21C44 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x01E21C54 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x01E21C64 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x01E21C74 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x01E21C84 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x01E21C94 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x01E21CA4 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x01E21CB4 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x01E21CC4 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x01E21CD4 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x01E21CE4 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x01E21CF4 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x01E21D04 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x01E21D14 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x01E21D24 : 0000 0000 0000 0000 0000 0000 A605 742D    ..............t-

这是虾米咚咚?两个看起来差不多阿~~~
注意看,第一个叫做
*pTag(CONTAINER_TAG)
第二个是
iTag(CONTAINER_TAG)

其中的pTag我们可以理解成present tag,也就是当前文件里有什么
而iTag就是ideal tag,也就是说db2期望看到什么

嘿嘿嘿,也就是说,如果我们能够模拟出db2期望的冬冬,是不是就可以骗过db2,认为这个tag是合法的呢?(别用来干别的事情哦,就算干了也不会成功的,因为还有一些其他的校验呢,俺只是说在tag丢失情况下怎样处理,假设其他的冬冬还是存在的)
答案是肯定的。

好,第二步作战开始。
用你们最最最最喜欢熟悉的16进制编辑器打开你考过来的SQLTAG.NAM文件。

什么?你竟然不知道什么叫16进制?听说北大青鸟的电脑培训班不错 对您强烈推荐,俺先去睡个觉………………

哦,不知道什么是16近制编辑器。好说好说,一般我们用写字板呀记事本什么的看文件,那个叫做text editor,也就是文本编辑器,是把存储成16近制的数据用ASCII码显示出来。
但是如果要看得咚咚不是ASCII的怎么办,我们需要一些东西直接看16近制的数据。

我比较习惯用UltraEdit。不过这个是要钱的,google一下应该能发现不少免费的16近制编辑器的。


好,接着说,当用16近制编辑器打开文件后,大家应该能看到文件看起来类似这个
00000000h: 44 42 32 43 4F 4E 54 00 13 02 00 00 90 39 42 47 ; DB2CONT.....9BG
00000010h: 02 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 ; ................
00000020h: 00 00 00 00 06 94 54 50 43 44 42 20 20 20 00 44 ; .....”TPCDB   .D
00000030h: 42 32 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; B2..............
00000040h: 00 00 44 3A 5C 44 42 32 5C 4E 4F 44 45 30 30 30 ; ..D:\DB2\NODE000
00000050h: 30 5C 53 51 4C 30 30 30 30 32 5C 00 00 00 00 00 ; 0\SQL00002\.....
00000060h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000070h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000080h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000090h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000000a0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000000b0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000000c0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000000d0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000000e0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000000f0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000100h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000110h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000120h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000130h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000140h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000150h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000160h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000170h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000180h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000190h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000001a0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000001b0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000001c0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000001d0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000001e0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000001f0h: 00 00 00 00 00 00 00 00 00 00 00 00 A4 91 74 2D ; ............¤‘t-

理论上这个文件的内容应该原封不动地吻合pTag里面的内容 (在这个例子里面,因为拿到的这个tag文件和拷贝的tag文件不同,所以看到的不一样,不过不要紧,思路第一)

现在我们要做的就是把它修改成iTag里面的冬冬

…………
…………
…………
改呀改呀,大概用60秒的时间,应该就能够都修改过来了(如果不熟练,用5分钟也是可能的 ^_^)
00000000h: 44 42 32 43 4F 4E 54 00 13 02 00 00 90 39 42 47 ; DB2CONT.....9BG
00000010h: 06 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 ; ................
00000020h: 00 00 01 F4 1C FE 54 50 43 44 42 20 20 20 00 44 ; ...ô.þTPCDB   .D
00000030h: 42 32 00 00 00 00 00 00 00 00 00 00 00 00 01 F4 ; B2.............ô
00000040h: 1C FE 44 3A 5C 44 42 32 5C 4E 4F 44 45 30 30 30 ; .þD:\DB2\NODE000
00000050h: 30 5C 53 51 4C 30 30 30 30 32 5C 00 00 00 00 00 ; 0\SQL00002\.....
00000060h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000070h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000080h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000090h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000000a0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000000b0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000000c0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000000d0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000000e0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000000f0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000100h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000110h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000120h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000130h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000140h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000150h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000160h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000170h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000180h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000190h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000001a0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000001b0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000001c0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000001d0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000001e0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000001f0h: 00 00 00 00 00 00 00 00 00 00 00 00 A6 05 74 2D ; ............¦.t-
现在的这个文件应该完全包含iTag里面的信息。

好,让我们存盘退出,然后alter tablespace switch online一把 :)
搞定鸟


来个简单的实验:
=================创建tbspace+table
D:\TEMP>mkdir test

D:\TEMP>cd test

D:\TEMP\test>db2 connect to sample

   Database Connection Information

Database server        = DB2/NT 9.7.2
SQL authorization ID   = TAOEWANG
Local database alias   = SAMPLE


D:\TEMP\test>db2 "create tablespace test managed by system using ('d:\temp\test\')
DB20000I  The SQL command completed successfully.

D:\TEMP\test>db2 "create table tt1 (c1 int) in test"
DB20000I  The SQL command completed successfully.

D:\TEMP\test>dir
Volume in drive D has no label.
Volume Serial Number is 2408-C570

Directory of D:\TEMP\test

04/10/2010  01:18 PM    <DIR>          .
04/10/2010  01:18 PM    <DIR>          ..
04/10/2010  01:18 PM             8,192 SQL00002.DAT
04/10/2010  01:17 PM               512 SQLTAG.NAM
               2 File(s)          8,704 bytes
               2 Dir(s)  73,546,485,760 bytes free

D:\TEMP\test>db2 "insert into tt1 values (1)"
DB20000I  The SQL command completed successfully.

D:\TEMP\test>db2 "insert into tt1 values (2)"
DB20000I  The SQL command completed successfully.

D:\TEMP\test>db2 "insert into tt1 values (3)"
DB20000I  The SQL command completed successfully.

D:\TEMP\test>db2 "select * from tt1"

C1
-----------
          1
          2
          3

  3 record(s) selected.


D:\TEMP\test>

==================然后删除tag文件
D:\TEMP\test>del SQLTAG.NAM

D:\TEMP\test>db2stop force
04/10/2010 13:20:14     0   0   SQL1064N  DB2STOP processing was successful.
SQL1064N  DB2STOP processing was successful.

D:\TEMP\test>db2start
04/10/2010 13:20:19     0   0   SQL1063N  DB2START processing was successful.
SQL1063N  DB2START processing was successful.

D:\TEMP\test>db2 connect to sample

   Database Connection Information

Database server        = DB2/NT 9.7.2
SQL authorization ID   = TAOEWANG
Local database alias   = SAMPLE


D:\TEMP\test>db2 "select * from tt1"

C1
-----------
SQL0290N  Table space access is not allowed.  SQLSTATE=55039

D:\TEMP\test>db2 list tablespaces show detail
。。。。
Tablespace ID                        = 7
Name                                 = TEST
Type                                 = System managed space
Contents                             = All permanent data. Regular table space.

State                                = 0x4000
   Detailed explanation:
     Offline

====================然后随便考一个TAG文件过去
D:\TEMP\test>copy d:\temp\SQLTAG.NAM .
        1 file(s) copied.

D:\TEMP\test>dir
Volume in drive D has no label.
Volume Serial Number is 2408-C570

Directory of D:\TEMP\test

04/10/2010  01:21 PM    <DIR>          .
04/10/2010  01:21 PM    <DIR>          ..
04/10/2010  01:20 PM             8,192 SQL00002.DAT
04/09/2010  12:17 PM               512 SQLTAG.NAM
               2 File(s)          8,704 bytes
               2 Dir(s)  73,546,485,760 bytes free

D:\TEMP\test>db2 "alter tablespace test switch online"
DB21034E  The command was processed as an SQL statement because it was not a
valid Command Line Processor command.  During SQL processing it returned:
SQL0293N  Error accessing a table space container.  SQLSTATE=57048

====================我们看看db2diag.log

2010-04-10-13.25.55.093000-240 I1108H3477         LEVEL: Severe
PID     : 3856                 TID  : 8116        PROC : db2syscs.exe
INSTANCE: DB2_02               NODE : 000         DB   : SAMPLE
APPHDL  : 0-7                  APPID: *LOCAL.DB2_02.100410172020
AUTHID  : TAOEWANG
EDUID   : 8116                 EDUNAME: db2agent (SAMPLE) 0
FUNCTION: DB2 UDB, buffer pool services, sqlbContainerTagIsValid, probe:100
DATA #1 : String, 20 bytes
*pTag(CONTAINER_TAG)
DATA #2 : Hexdump, 512 bytes
0x7FE0CD10 : 4442 3243 4F4E 5400 1402 0000 0000 0000    DB2CONT.........
0x7FE0CD20 : 0600 0000 0000 0000 0100 0000 0100 0000    ................
0x7FE0CD30 : 0000 0000 0000 5341 4D50 4C45 2020 0044    ......SAMPLE  .D
0x7FE0CD40 : 4232 5F30 3200 0000 0000 0000 0000 0000    B2_02...........
0x7FE0CD50 : 0000 443A 5C44 4232 5F30 325C 4E4F 4445    ..D:\DB2_02\NODE
0x7FE0CD60 : 3030 3030 5C53 514C 3030 3030 315C 0000    0000\SQL00001\..
0x7FE0CD70 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x7FE0CD80 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x7FE0CD90 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x7FE0CDA0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x7FE0CDB0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x7FE0CDC0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x7FE0CDD0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x7FE0CDE0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x7FE0CDF0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x7FE0CE00 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x7FE0CE10 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x7FE0CE20 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x7FE0CE30 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x7FE0CE40 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x7FE0CE50 : 0000 0000 0000 0000 9542 F701 0000 0000    .........B......
0x7FE0CE60 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x7FE0CE70 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x7FE0CE80 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x7FE0CE90 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x7FE0CEA0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x7FE0CEB0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x7FE0CEC0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x7FE0CED0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x7FE0CEE0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x7FE0CEF0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x7FE0CF00 : 0000 0000 0000 0000 0000 0000 B13A F06F    .............:.o
CALLSTCK:
  [0] 0x6CCB75D1 pdLog + 0x2E3
  [1] 0x6ED8DB19 _VInfreq_?sqlbContainerTagIsValidYA_NPAUCONTAINER_TAGHPBTSQLP_LSN8HPAUSQLB_GLOBALS_N3IZ + 0xA1
  [2] 0x6D50F29C sqlbSMSDoContainerOp + 0x8D4
  [3] 0x6D50EAD6 sqlbSMSDoContainerOp + 0x10E
  [4] 0x6D50E6A4 sqlbSMSStartPool + 0x2DC
  [5] 0x6D4FC731 sqlbSwitchTablespaceOnline + 0xA1
  [6] 0x6E46C7FB ?sqlrldpalt.@@YAHPAUsqlrr_cb@@PAEFPADHHPAUsqlr_tid@@I11PAUsqlrl_tbspace_parms@@@Z + 0xA12
  [7] 0x6E46D71F sqlrlAlterTbspace + 0x5B5
  [8] 0x6DCDEAF8 sqlnq_alter_tablespace_end + 0x1E4
  [9] 0x6DCE0671 sqlnq_alter_tablespace_stmt + 0xBF

2010-04-10-13.25.55.156000-240 I4587H2923         LEVEL: Severe
PID     : 3856                 TID  : 8116        PROC : db2syscs.exe
INSTANCE: DB2_02               NODE : 000         DB   : SAMPLE
APPHDL  : 0-7                  APPID: *LOCAL.DB2_02.100410172020
AUTHID  : TAOEWANG
EDUID   : 8116                 EDUNAME: db2agent (SAMPLE) 0
FUNCTION: DB2 UDB, buffer pool services, sqlbContainerTagIsValid, probe:200
DATA #1 : Codepath, 8 bytes
2:4:9:11:12:14:15:16
DATA #2 : String, 19 bytes
iTag(CONTAINER_TAG)
DATA #3 : Hexdump, 512 bytes
0x07BB2590 : 4442 3243 4F4E 5400 1402 0000 0000 0000    DB2CONT.........
0x07BB25A0 : 0700 0000 0000 0000 0100 0000 0100 0000    ................
0x07BB25B0 : 0000 0000 0000 5341 4D50 4C45 2020 0044    ......SAMPLE  .D
0x07BB25C0 : 4232 5F30 3200 0000 0000 0000 0000 0000    B2_02...........
0x07BB25D0 : 0000 443A 5C44 4232 5F30 325C 4E4F 4445    ..D:\DB2_02\NODE
0x07BB25E0 : 3030 3030 5C53 514C 3030 3030 315C 0000    0000\SQL00001\..
0x07BB25F0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x07BB2600 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x07BB2610 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x07BB2620 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x07BB2630 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x07BB2640 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x07BB2650 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x07BB2660 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x07BB2670 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x07BB2680 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x07BB2690 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x07BB26A0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x07BB26B0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x07BB26C0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x07BB26D0 : 0000 0000 0000 0000 9003 CA08 0000 0000    ................
0x07BB26E0 : 9003 CA08 0000 0000 0000 0000 0000 0000    ................
0x07BB26F0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x07BB2700 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x07BB2710 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x07BB2720 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x07BB2730 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x07BB2740 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x07BB2750 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x07BB2760 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x07BB2770 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x07BB2780 : 0000 0000 0000 0000 0000 0000 2578 076E    ............%x.n

==================那个考过来的tag是
00000000h: 44 42 32 43 4F 4E 54 00 14 02 00 00 00 00 00 00 ; DB2CONT.........
00000010h: 06 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 ; ................
00000020h: 00 00 00 00 00 00 53 41 4D 50 4C 45 20 20 00 44 ; ......SAMPLE  .D
00000030h: 42 32 5F 30 32 00 00 00 00 00 00 00 00 00 00 00 ; B2_02...........
00000040h: 00 00 44 3A 5C 44 42 32 5F 30 32 5C 4E 4F 44 45 ; ..D:\DB2_02\NODE
00000050h: 30 30 30 30 5C 53 51 4C 30 30 30 30 31 5C 00 00 ; 0000\SQL00001\..
00000060h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000070h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000080h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000090h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000000a0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000000b0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000000c0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000000d0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000000e0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000000f0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000100h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000110h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000120h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000130h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000140h: 00 00 00 00 00 00 00 00 95 42 F7 01 00 00 00 00 ; ........•B÷.....
00000150h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000160h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000170h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000180h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000190h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000001a0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000001b0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000001c0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000001d0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000001e0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000001f0h: 00 00 00 00 00 00 00 00 00 00 00 00 B1 3A F0 6F ; ............±:ðo


===========================我们来修改成
00000000h: 44 42 32 43 4F 4E 54 00 14 02 00 00 00 00 00 00 ; DB2CONT.........
00000010h: 07 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 ; ................
00000020h: 00 00 00 00 00 00 53 41 4D 50 4C 45 20 20 00 44 ; ......SAMPLE  .D
00000030h: 42 32 5F 30 32 00 00 00 00 00 00 00 00 00 00 00 ; B2_02...........
00000040h: 00 00 44 3A 5C 44 42 32 5F 30 32 5C 4E 4F 44 45 ; ..D:\DB2_02\NODE
00000050h: 30 30 30 30 5C 53 51 4C 30 30 30 30 31 5C 00 00 ; 0000\SQL00001\..
00000060h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000070h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000080h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000090h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000000a0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000000b0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000000c0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000000d0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000000e0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000000f0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000100h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000110h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000120h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000130h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000140h: 00 00 00 00 00 00 00 00 90 03 CA 08 00 00 00 00 ; .........Ê.....
00000150h: 90 03 CA 08 00 00 00 00 00 00 00 00 00 00 00 00 ; .Ê.............
00000160h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000170h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000180h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
00000190h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000001a0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000001b0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000001c0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000001d0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000001e0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
000001f0h: 00 00 00 00 00 00 00 00 00 00 00 00 25 78 07 6E ; ............%x.n

====================然后启动tablespace  

D:\TEMP\test>db2 "alter tablespace test switch online"
DB20000I  The SQL command completed successfully.

D:\TEMP\test>db2 "select * from tt1"

C1
-----------
          1
          2
          3

  3 record(s) selected.



[ 本帖最后由 wangzhonnew 于 2010-4-11 02:38 编辑 ]
论坛徽章:
176
现任管理团队成员
日期:2011-05-07 01:45:08版主7段
日期:2012-07-05 02:21:03ITPUB长老会成员
日期:2015-05-07 15:11:10ITPUB年度最佳版主
日期:2011-04-08 18:37:09ITPUB年度最佳版主
日期:2011-12-28 15:24:18ITPUB牛人
日期:2010-10-25 12:41:322010数据库技术大会纪念徽章
日期:2015-04-23 10:33:192011数据库大会纪念章
日期:2015-04-23 10:33:192012数据库大会纪念章
日期:2015-04-23 10:33:192013数据库大会纪念章
日期:2015-04-23 10:33:19
2#
发表于 2010-4-11 10:49 | 只看该作者
  写的好详细,很少群里见到你了,忙虾米呢,有空了出来唠唠、指导下国民

使用道具 举报

回复
论坛徽章:
512
2012新春纪念徽章
日期:2012-01-04 11:53:54ITPUB十周年纪念徽章
日期:2011-11-01 16:23:26股神
日期:2012-01-05 10:29:02天枰座
日期:2015-09-16 09:05:30指数菠菜纪念章
日期:2015-07-01 16:40:43喜羊羊
日期:2015-06-30 09:06:18指数菠菜纪念章
日期:2015-04-02 09:22:462015年新春福章
日期:2015-03-06 11:58:18懒羊羊
日期:2015-03-04 14:52:11指数菠菜纪念章
日期:2015-01-04 11:09:18
3#
发表于 2010-4-11 23:39 | 只看该作者
明白为什么要选同一个库其他SMS表空间的SQLTAG.NAM了,这样文件里面有关数据库、实例、数据库目录这些长度可变的部分都不用修改,提高成功的机会

使用道具 举报

回复
论坛徽章:
42
ITPUB元老
日期:2005-09-09 13:45:35马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14优秀写手
日期:2013-12-18 09:29:09ITPUB 11周年纪念徽章
日期:2012-10-09 18:03:32版主3段
日期:2012-05-15 15:24:112012新春纪念徽章
日期:2012-02-13 15:13:362012新春纪念徽章
日期:2012-02-13 15:13:36
4#
发表于 2010-4-13 09:04 | 只看该作者
db2 还真憨厚,把要什么样的 tag 在 db2diag.log 写得清清楚楚

使用道具 举报

回复
论坛徽章:
512
2012新春纪念徽章
日期:2012-01-04 11:53:54ITPUB十周年纪念徽章
日期:2011-11-01 16:23:26股神
日期:2012-01-05 10:29:02天枰座
日期:2015-09-16 09:05:30指数菠菜纪念章
日期:2015-07-01 16:40:43喜羊羊
日期:2015-06-30 09:06:18指数菠菜纪念章
日期:2015-04-02 09:22:462015年新春福章
日期:2015-03-06 11:58:18懒羊羊
日期:2015-03-04 14:52:11指数菠菜纪念章
日期:2015-01-04 11:09:18
5#
发表于 2010-4-13 13:37 | 只看该作者
反过来想,既然DB2自己都能给出它希望得到的TAG,那为什么好要在磁盘上多保存一个文件来做对比呢?

使用道具 举报

回复
招聘 : c/c++研发
论坛徽章:
45
技术图书徽章
日期:2014-03-10 14:09:192012新春纪念徽章
日期:2012-02-13 15:12:092012新春纪念徽章
日期:2012-02-13 15:12:092012新春纪念徽章
日期:2012-01-04 11:51:22ITPUB十周年纪念徽章
日期:2011-11-01 16:21:15现任管理团队成员
日期:2011-05-07 01:45:082011新春纪念徽章
日期:2011-01-25 15:42:562011新春纪念徽章
日期:2011-01-25 15:42:332011新春纪念徽章
日期:2011-01-25 15:42:152011新春纪念徽章
日期:2011-01-25 15:41:50
6#
 楼主| 发表于 2010-4-13 19:06 | 只看该作者
这个只是帮助问题诊断的冬冬……tag的目的不是防贼,而是确保正在用的container是合法的,而且不是被其他数据库所用的……

使用道具 举报

回复
论坛徽章:
512
2012新春纪念徽章
日期:2012-01-04 11:53:54ITPUB十周年纪念徽章
日期:2011-11-01 16:23:26股神
日期:2012-01-05 10:29:02天枰座
日期:2015-09-16 09:05:30指数菠菜纪念章
日期:2015-07-01 16:40:43喜羊羊
日期:2015-06-30 09:06:18指数菠菜纪念章
日期:2015-04-02 09:22:462015年新春福章
日期:2015-03-06 11:58:18懒羊羊
日期:2015-03-04 14:52:11指数菠菜纪念章
日期:2015-01-04 11:09:18
7#
发表于 2010-4-14 09:09 | 只看该作者
原来如此,由此想起一个重定向还原数据库的问题,回头开新贴请教

使用道具 举报

回复
论坛徽章:
2
祖国60周年纪念徽章
日期:2009-10-09 08:28:00ITPUB十周年纪念徽章
日期:2011-11-01 16:23:26
8#
发表于 2010-4-14 14:32 | 只看该作者
这么好的东东,谢谢LZ

使用道具 举报

回复
论坛徽章:
9
2009日食纪念
日期:2009-07-22 09:30:00ITPUB8周年纪念徽章
日期:2009-09-27 10:21:21祖国60周年纪念徽章
日期:2009-10-09 08:28:002010新春纪念徽章
日期:2010-03-01 11:19:10ITPUB9周年纪念徽章
日期:2010-10-08 09:31:22ITPUB十周年纪念徽章
日期:2011-11-01 16:23:262012新春纪念徽章
日期:2012-01-04 11:53:54ITPUB 11周年纪念徽章
日期:2012-10-09 18:08:152013年新春福章
日期:2013-02-25 14:51:24
9#
发表于 2010-4-14 16:25 | 只看该作者
好文一定要顶。
wangzhonnew做了一个sms的例子,
受此启发,我在AIX平台下做了一个dms的例子。
过程如下:
db2 list tablespaces
Tablespace ID                        = 6
Name                                 = TEST
Type                                 = Database managed space
Contents                             = All permanent data. Large table space.
State                                = 0x0000
   Detailed explanation:
     Normal

db2 list tablespace containers for 6

            Tablespace Containers for Tablespace 6

Container ID                         = 0
Name                                 = /dev/rtestlv
Type                                 = Disk

db2stop;
db2untag -f /dev/rtestlv;
db2start;

db2 list tablespaces

Tablespace ID                        = 6
Name                                 = TEST
Type                                 = Database managed space
Contents                             = All permanent data. Large table space.
State                                = 0x4000
   Detailed explanation:
     Offline


db2diag.log

2010-04-14-16.11.01.879397+480 I2038894A3942      LEVEL: Severe
PID     : 2589020              TID  : 1           PROC : db2agent (SAMPLE) 0
INSTANCE: db2inst1             NODE : 000
APPHDL  : 0-7                  APPID: *LOCAL.db2inst1.100414081101
AUTHID  : DB2INST1
FUNCTION: DB2 UDB, buffer pool services, sqlbContainerTagIsValid, probe:100
DATA #1 : String, 20 bytes
*pTag(CONTAINER_TAG)
DATA #2 : Hexdump, 512 bytes
0x00000001116AE600 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x00000001116AE610 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x00000001116AE620 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x00000001116AE630 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x00000001116AE640 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x00000001116AE650 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x00000001116AE660 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x00000001116AE670 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x00000001116AE680 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x00000001116AE690 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x00000001116AE6A0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x00000001116AE6B0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x00000001116AE6C0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x00000001116AE6D0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x00000001116AE6E0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x00000001116AE6F0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x00000001116AE700 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x00000001116AE710 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x00000001116AE720 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x00000001116AE730 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x00000001116AE740 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x00000001116AE750 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x00000001116AE760 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x00000001116AE770 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x00000001116AE780 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x00000001116AE790 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x00000001116AE7A0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x00000001116AE7B0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x00000001116AE7C0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x00000001116AE7D0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x00000001116AE7E0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x00000001116AE7F0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
CALLSTCK:
  [0] 0x090000000632A344 sqlbContainerTagIsValid__FP13CONTAINER_TAGiP8SQLP_LSNT2UiP12SQLB_GLOBALSbT7 + 0x37C
  [1] 0x09000000069D4CE0 sqlbDMSDoContainerOp__FiP8SQLP_LSNT1P16SQLB_POOLCONT_CB12SQLB_CONT_OPUiT2P12SQLB_GLOBALS + 0x244
  [2] 0x09000000069D4A14 sqlbDMSDoContainerOp__FiP8SQLP_LSNT1P16SQLB_POOLCONT_CB12SQLB_CONT_OPUiP12SQLB_GLOBALS + 0x38
  [3] 0x0900000006B1C350 sqlbDMSStartPool__FP12SQLB_GLOBALSP12SQLB_POOL_CB + 0x104
  [4] 0x0900000005A53358 sqlbStartPools__FP12SQLB_GLOBALS + 0x878
  [5] 0x0900000006984C3C sqlbinit + 0x3A8
  [6] 0x0900000006BCF544 sqledint__FP20sqle_agent_privatecbP8sqledbcbP5sqlcacPci + 0x150
  [7] 0x0900000006BC1D0C sqleFirstConnect__FP7sqlebwaRcP20sqle_agent_privatecbP8sqlo_gmtP12SQLB_GLOBALSPiP8sqledbcb + 0xC4
  [8] 0x0900000006B9AB60 sqleserl__FP7sqlebwaP13sqle_agent_cbRccP8sqlo_gmt + 0xF4
  [9] 0x0900000006B82180 sqlesrsu__FP7sqlebwaP13sqle_agent_cbcT3P5sqlcaPc + 0x2A0

2010-04-14-16.11.01.880360+480 I2042837A3013      LEVEL: Severe
PID     : 2589020              TID  : 1           PROC : db2agent (SAMPLE) 0
INSTANCE: db2inst1             NODE : 000
APPHDL  : 0-7                  APPID: *LOCAL.db2inst1.100414081101
AUTHID  : DB2INST1
FUNCTION: DB2 UDB, buffer pool services, sqlbContainerTagIsValid, probe:200
DATA #1 : String, 19 bytes
iTag(CONTAINER_TAG)
DATA #2 : Hexdump, 512 bytes
0x0FFFFFFFFFFE9BD0 : 4442 3243 4F4E 5400 0000 0000 8C1F B9A9    DB2CONT.........
0x0FFFFFFFFFFE9BE0 : 0000 0006 0000 0000 0000 0000 0000 0001    ................
0x0FFFFFFFFFFE9BF0 : 0000 0426 81B0 5341 4D50 4C45 2020 0064    ...&..SAMPLE  .d
0x0FFFFFFFFFFE9C00 : 6232 696E 7374 3100 0000 0000 0000 0426    b2inst1........&
0x0FFFFFFFFFFE9C10 : 81B0 0000 0000 0000 0000 0000 0000 0000    ................
0x0FFFFFFFFFFE9C20 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0FFFFFFFFFFE9C30 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0FFFFFFFFFFE9C40 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0FFFFFFFFFFE9C50 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0FFFFFFFFFFE9C60 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0FFFFFFFFFFE9C70 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0FFFFFFFFFFE9C80 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0FFFFFFFFFFE9C90 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0FFFFFFFFFFE9CA0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0FFFFFFFFFFE9CB0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0FFFFFFFFFFE9CC0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0FFFFFFFFFFE9CD0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0FFFFFFFFFFE9CE0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0FFFFFFFFFFE9CF0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0FFFFFFFFFFE9D00 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0FFFFFFFFFFE9D10 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0FFFFFFFFFFE9D20 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0FFFFFFFFFFE9D30 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0FFFFFFFFFFE9D40 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0FFFFFFFFFFE9D50 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0FFFFFFFFFFE9D60 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0FFFFFFFFFFE9D70 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0FFFFFFFFFFE9D80 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0FFFFFFFFFFE9D90 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0FFFFFFFFFFE9DA0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0FFFFFFFFFFE9DB0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0FFFFFFFFFFE9DC0 : 0000 0000 0000 0000 0000 0000 7A95 9CC5    ............z...


开始恢复。
对于AIX 来讲lv的前512字节是LVCB,因此db2的cont tag应该从512字节开始。
随便找一个看一下:
od -A d -x /home/db2inst1/db2inst1/NODE0000/SAMPLE/T0000002/C0000000.LRG|more                              
0000000  0000 0000 0000 0000 0000 0000 0000 0000
*
0000512  4442 3243 4f4e 5400 0000 0213 8c1f b9a9
0000528  0000 0002 0000 0000 0000 0001 0000 0001
0000544  0000 0000 0590 5341 4d50 4c45 2020 0064
0000560  6232 696e 7374 3100 0000 0000 0000 0000
0000576  0590 2f68 6f6d 652f 6462 3269 6e73 7431
0000592  2f64 6232 696e 7374 312f 4e4f 4445 3030
0000608  3030 2f53 514c 3030 3030 322f 0000 0000
0000624  0000 0000 0000 0000 0000 0000 0000 0000

导出信息:
dd if=/home/db2inst1/db2inst1/NODE0000/SAMPLE/T0000002/C0000000.LRG bs=1 count=512 skip=512 of=/tmp/tag.dat

然后用ultra edit按iTag修改/tmp/tag.dat(这个LZ写的很清楚,不再啰嗦了)
修改后再写回来
dd if=/tmp/tag.dat bs=1 count=512 seek=512  of=/dev/testlv

然后
db2 alter tablespace test switch online
DB21034E  The command was processed as an SQL statement because it was not a
valid Command Line Processor command.  During SQL processing it returned:
SQL0293N  Error accessing a table space container.  SQLSTATE=57048
晕倒,还是报错,
再去看db2diag.log,发现信息变了
2010-04-14-15.57.54.385440+480 I2010735A3954      LEVEL: Severe
PID     : 2519362              TID  : 1           PROC : db2agent (SAMPLE) 0
INSTANCE: db2inst1             NODE : 000         DB   : SAMPLE
APPHDL  : 0-65                 APPID: *LOCAL.db2inst1.100414075727
AUTHID  : DB2INST1
FUNCTION: DB2 UDB, buffer pool services, sqlbContainerTagIsValid, probe:100
DATA #1 : String, 20 bytes
*pTag(CONTAINER_TAG)
DATA #2 : Hexdump, 512 bytes
0x0000000110CB6800 : 4442 3243 4F4E 5400 0000 0213 8C1F B9A9    DB2CONT.........
0x0000000110CB6810 : 0000 0006 0000 0000 0000 0000 0000 0001    ................
0x0000000110CB6820 : 0000 0426 81B0 5341 4D50 4C45 2020 0064    ...&..SAMPLE  .d
0x0000000110CB6830 : 6232 696E 7374 3100 0000 0000 0000 0426    b2inst1........&
0x0000000110CB6840 : 81B0 0000 0000 0000 0000 0000 0000 0000    ................
0x0000000110CB6850 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0000000110CB6860 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0000000110CB6870 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0000000110CB6880 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0000000110CB6890 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0000000110CB68A0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0000000110CB68B0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0000000110CB68C0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0000000110CB68D0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0000000110CB68E0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0000000110CB68F0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0000000110CB6900 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0000000110CB6910 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0000000110CB6920 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0000000110CB6930 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0000000110CB6940 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0000000110CB6950 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0000000110CB6960 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0000000110CB6970 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0000000110CB6980 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0000000110CB6990 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0000000110CB69A0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0000000110CB69B0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0000000110CB69C0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0000000110CB69D0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0000000110CB69E0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0000000110CB69F0 : 0000 0000 0000 0000 0000 0000 7A95 9CC5    ............z...
CALLSTCK:
  [0] 0x090000000632A344 sqlbContainerTagIsValid__FP13CONTAINER_TAGiP8SQLP_LSNT2UiP12SQLB_GLOBALSbT7 + 0x37C
  [1] 0x09000000069D4CE0 sqlbDMSDoContainerOp__FiP8SQLP_LSNT1P16SQLB_POOLCONT_CB12SQLB_CONT_OPUiT2P12SQLB_GLOBALS + 0x244
  [2] 0x09000000069D4A14 sqlbDMSDoContainerOp__FiP8SQLP_LSNT1P16SQLB_POOLCONT_CB12SQLB_CONT_OPUiP12SQLB_GLOBALS + 0x38
  [3] 0x0900000006B1C350 sqlbDMSStartPool__FP12SQLB_GLOBALSP12SQLB_POOL_CB + 0x104
  [4] 0x0900000005D412B4 sqlbSwitchTablespaceOnline__FUsP12SQLB_GLOBALS + 0x3C8
  [5] 0x0900000005ED50A4 sqlrldpalt__FP8sqlrr_cbPUcsPciT5P8sqlr_tidUlN22P19sqlrl_tbspace_parms + 0xCE0
  [6] 0x0900000006E0B7C8 sqlrlats__FPUcsP19sqlrl_tbspace_parms + 0xF50
  [7] 0x0900000006E08F80 sqlnq_alter_tablespace_end__Fv + 0x1D0
  [8] 0x0900000006E085EC sqlnq_alter_tablespace_stmt__FPP8stknode_i10actiontypePUcP3loc + 0x124
  [9] 0x0900000006A1942C sqlnp_smactn__FP8sqlnp_cbi + 0x374

2010-04-14-15.57.54.386196+480 I2014690A3035      LEVEL: Severe
PID     : 2519362              TID  : 1           PROC : db2agent (SAMPLE) 0
INSTANCE: db2inst1             NODE : 000         DB   : SAMPLE
APPHDL  : 0-65                 APPID: *LOCAL.db2inst1.100414075727
AUTHID  : DB2INST1
FUNCTION: DB2 UDB, buffer pool services, sqlbContainerTagIsValid, probe:200
DATA #1 : String, 19 bytes
iTag(CONTAINER_TAG)
DATA #2 : Hexdump, 512 bytes
0x0FFFFFFFFFFEA300 : 4442 3243 4F4E 5400 0000 0213 8C1F B9A9    DB2CONT.........
0x0FFFFFFFFFFEA310 : 0000 0006 0000 0000 0000 0000 0000 0001    ................
0x0FFFFFFFFFFEA320 : 0000 0426 81B0 5341 4D50 4C45 2020 0064    ...&..SAMPLE  .d
0x0FFFFFFFFFFEA330 : 6232 696E 7374 3100 0000 0000 0000 0426    b2inst1........&
0x0FFFFFFFFFFEA340 : 81B0 2F68 6F6D 652F 6462 3269 6E73 7431    ../home/db2inst1
0x0FFFFFFFFFFEA350 : 2F64 6232 696E 7374 312F 4E4F 4445 3030    /db2inst1/NODE00
0x0FFFFFFFFFFEA360 : 3030 2F53 514C 3030 3030 322F 0000 0000    00/SQL00002/....
0x0FFFFFFFFFFEA370 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0FFFFFFFFFFEA380 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0FFFFFFFFFFEA390 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0FFFFFFFFFFEA3A0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0FFFFFFFFFFEA3B0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0FFFFFFFFFFEA3C0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0FFFFFFFFFFEA3D0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0FFFFFFFFFFEA3E0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0FFFFFFFFFFEA3F0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0FFFFFFFFFFEA400 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0FFFFFFFFFFEA410 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0FFFFFFFFFFEA420 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0FFFFFFFFFFEA430 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0FFFFFFFFFFEA440 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0FFFFFFFFFFEA450 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0FFFFFFFFFFEA460 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0FFFFFFFFFFEA470 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0FFFFFFFFFFEA480 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0FFFFFFFFFFEA490 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0FFFFFFFFFFEA4A0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0FFFFFFFFFFEA4B0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0FFFFFFFFFFEA4C0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0FFFFFFFFFFEA4D0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0FFFFFFFFFFEA4E0 : 0000 0000 0000 0000 0000 0000 0000 0000    ................
0x0FFFFFFFFFFEA4F0 : 0000 0000 0000 0000 0000 0000 FC75 D49A    .............u..

重复上面的步骤,dd out,改文件,dd in。。。。

db2 alter tablespace test switch online
DB20000I  The SQL command completed successfully.

Tablespace ID                        = 6
Name                                 = TEST
Type                                 = Database managed space
Contents                             = All permanent data. Large table space.
State                                = 0x0000
   Detailed explanation:
     Normal

db2 "create table t(c1 char(100),c2 varchar(200)) in test"
DB20000I  The SQL command completed successfully.
db2 "insert into t values ('AAAAAAAAA','BBBBBBBBBBBBB')"
DB20000I  The SQL command completed successfully.
db2 "insert into t values ('AAAAAAAAA','BBBBBBBBBBBBB')"
DB20000I  The SQL command completed successfully.
db2 "insert into t values ('AAAAAAAAA','BBBBBBBBBBBBB')"
DB20000I  The SQL command completed successfully.
db2 "insert into t values ('AAAAAAAAA','BBBBBBBBBBBBB')"
DB20000I  The SQL command completed successfully.
db2 "insert into t values ('AAAAAAAAA','BBBBBBBBBBBBB')"
DB20000I  The SQL command completed successfully.
db2 "Select * from t"

C1                                                                                                   C2                                                                                                                                                                                                      
---------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
AAAAAAAAA                                                                                            BBBBBBBBBBBBB                                                                                                                                                                                          
AAAAAAAAA                                                                                            BBBBBBBBBBBBB                                                                                                                                                                                          
AAAAAAAAA                                                                                            BBBBBBBBBBBBB                                                                                                                                                                                          
AAAAAAAAA                                                                                            BBBBBBBBBBBBB                                                                                                                                                                                          
AAAAAAAAA                                                                                            BBBBBBBBBBBBB                                                                                                                                                                                          

  5 record(s) selected.

使用道具 举报

回复
招聘 : c/c++研发
论坛徽章:
45
技术图书徽章
日期:2014-03-10 14:09:192012新春纪念徽章
日期:2012-02-13 15:12:092012新春纪念徽章
日期:2012-02-13 15:12:092012新春纪念徽章
日期:2012-01-04 11:51:22ITPUB十周年纪念徽章
日期:2011-11-01 16:21:15现任管理团队成员
日期:2011-05-07 01:45:082011新春纪念徽章
日期:2011-01-25 15:42:562011新春纪念徽章
日期:2011-01-25 15:42:332011新春纪念徽章
日期:2011-01-25 15:42:152011新春纪念徽章
日期:2011-01-25 15:41:50
10#
 楼主| 发表于 2010-4-14 21:27 | 只看该作者
if use DMS file, make sure to use "notrunc" option in dd to make sure file will not be truncated

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表