免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: ff51
打印 上一主题 下一主题

一次数据库迁移的过程记录,并请高人指教 [复制链接]

论坛徽章:
0
1 [报告]
发表于 2005-07-05 00:08 |显示全部楼层

一次数据库迁移的过程记录,并请高人指教

不同管理方式的container不能做重定向!

白天做测试,刚刚做了个重定向,是DMS之间的:

源平台 :AIX4.3.3+DB2 7.2
目标平台:AIX5.2 +DB2 8.2

源库的SYSCATSPACE和TEMPSPACE都是SMS管理,USERSPACE1是DMS管理的LV,重定向库的SYSCATSPACE和TEMPSPACE都是SMS管理,USERSPACE1是DMS管理的FILE!

以下是源库情况及重定向脚本!

  1. CU.mymm >; db2 list tablespaces show detail

  2.            Tablespaces for Current Database

  3. Tablespace ID                        = 0
  4. Name                                 = SYSCATSPACE
  5. Type                                 = System managed space
  6. Contents                             = Any data
  7. State                                = 0x0000
  8.    Detailed explanation:
  9.      Normal
  10. Total pages                          = 3584
  11. Useable pages                        = 3584
  12. Used pages                           = 3584
  13. Free pages                           = Not applicable
  14. High water mark (pages)              = Not applicable
  15. Page size (bytes)                    = 4096
  16. Extent size (pages)                  = 32
  17. Prefetch size (pages)                = 32
  18. Number of containers                 = 1

  19. Tablespace ID                        = 1
  20. Name                                 = TEMPSPACE1
  21. Type                                 = System managed space
  22. Contents                             = System Temporary data
  23. State                                = 0x0000
  24.    Detailed explanation:
  25.      Normal
  26. Total pages                          = 1
  27. Useable pages                        = 1
  28. Used pages                           = 1
  29. Free pages                           = Not applicable
  30. High water mark (pages)              = Not applicable
  31. Page size (bytes)                    = 4096
  32. Extent size (pages)                  = 8
  33. Prefetch size (pages)                = 32
  34. Number of containers                 = 1

  35. Tablespace ID                        = 2
  36. Name                                 = USERSPACE1
  37. Type                                 = Database managed space
  38. Contents                             = Any data
  39. State                                = 0x0000
  40.    Detailed explanation:
  41.      Normal
  42. Total pages                          = 524288
  43. Useable pages                        = 524256
  44. Used pages                           = 482304
  45. Free pages                           = 41952
  46. High water mark (pages)              = 482304
  47. Page size (bytes)                    = 4096
  48. Extent size (pages)                  = 32
  49. Prefetch size (pages)                = 32
  50. Number of containers                 = 1

  51. CU.mymm >; db2 list tablespace containers for 2 show detail

  52.             Tablespace Containers for Tablespace 2

  53. Container ID                         = 0
  54. Name                                 = /dev/rmycont00lv
  55. Type                                 = Disk
  56. Total pages                          = 524288
  57. Useable pages                        = 524256
  58. Accessible                           = Yes

  59. CU.mymm >;
复制代码


Script:

  1. restore db mydbs
  2. newlogpath /tstdbs/myDB/log/ buffer 2048  replace existing redirect parallelism 6 without rolling forward;
  3. set tablespace containers for 0 using (path '/tstdbs/myDB/catalog/');
  4. set tablespace containers for 1 using (path '/tstdbs/myDB/tmp/');
  5. set tablespace containers for 2 using (file '/tstdbs/myDB/con/mycont001' 250000 , file  '/tstdbs/myDB/con/mycont002' 250000 );
  6. restore db mydbs continue;
  7. terminate;
复制代码


参考一下吧!

论坛徽章:
0
2 [报告]
发表于 2005-07-05 00:30 |显示全部楼层

一次数据库迁移的过程记录,并请高人指教

原帖由 "lizhuo"]肯定能重定向,因为我以前做过,你的容器路径写错了。我以前的源数据库的容器是在裸设备上,目标是在文件系统上。只要磁盘空间够,我觉得应该没有问题吧[/quote 发表:


[quote]
SQL0298N错误的容器路径。

解释:

容器路径违反下列要求之一:

o   容器路径必须是有效的全限定绝对路径或有效的相对路径。后者理解为
    相对于数据库目录。

o   对于 EXTEND、REDUCE、RESIZE 和 DROP
    操作,指定容器路径必须存在。

o   路径对于实例标识必须是可读写的(检查基于 UNIX
    的系统上的文件许可权)。

o   容器的类型必须是命令中指定的类型(目录,文件或者设备)。

o   系统管理的表空间中的容器(目录)在指定为容器时必须是空的,
    并且一定不能嵌套在其它容器以下。

o   一个数据库的容器一定不能定位在另一数据库的目录之下,
    并且不可以在看起来是其它数据库的任何目录之下。这将任何
    SQLnnnnn 格式的目录排除在外,这里 'n' 是任何数字。

o   容器必须在操作系统的文件大小限制以内。

o   在所有代理进程终止后,已删除的数据库管理的表空间的容器(文件)
    仅能重新用作系统管理的表空间的容器(目录),反之亦然。

o   重定向复原期间,对 DMS 表空间指定了 SMS 容器,或对 SMS
    表空间指定了 DMS 容器。


o   用于 EXTEND、REDUCE、RESIZE 或 DROP
    操作的容器的指定类型与创建容器时指定的容器(FILE 或
    DEVICE)的类型不匹配。



若发生阻止 DB2 存取容器的任何其它意外错误,则也将返回此消息。

用户响应:

指定另一个容器位置或更改容器以使其可被 DB2
接受(如更改文件许可权)并重试。

sqlcode :   -298

sqlstate :  428B2

论坛徽章:
0
3 [报告]
发表于 2005-07-06 17:16 |显示全部楼层

一次数据库迁移的过程记录,并请高人指教

[quote]原帖由 "ff51"]MYMM的两个帖子很有意义,证实了我的推断:不同管理方式的表空间是不能重定向的。我做的过程和MYMM的脚本差不多,不过再问一下你的例子是不是能定向成功,如果能成的话那应该这样下结论:重定向只能用于在同样的管理..........[/quote 发表:


当然可以成功!


”不同管理方式的表空间是不能重定向的“是这样的!

在DB2的备份文件中包含tablespaces的定义,如果重定向的是SMS,PATH自动产生,FILE DMS也会自动产生,RAW DMS则需要提前建好!

论坛徽章:
0
4 [报告]
发表于 2005-07-06 17:29 |显示全部楼层

一次数据库迁移的过程记录,并请高人指教

在生产机上建库的DDL,用db2move import恢复数据,想着累点就累点吧,这一搞就应该差不多了。嘿嘿,结果是跳出一堆错误,说一些表依赖于另外的表!确实是这样的,有很多表是有外键约束的,但db2竟然不分析这些关系,直接就跳过所有父表子表也太过分了。请教高人是不是这样的:db2move不能处理有约束的数据
7.看了一下db2move导出的数据,是ixf文件,没办法了,只能用import试试。真正的苦力活开始了:列出了所有的父子表,一个个按顺序导入。经过不知多少秒后,好象数据都进去了。请教:如果有100000个父子表,那不是要死人了,应该怎么处理?


你用db2move TableName load就不会出现SQL0530了,但load完成后,表会处于”check pending“状态,可以用"set integrity ..."来解除!

论坛徽章:
0
5 [报告]
发表于 2005-07-06 17:31 |显示全部楼层

一次数据库迁移的过程记录,并请高人指教

[quote]原帖由 "ff51" 发表:
娲⒐?蹋?媒疟敬?怼?
  大致就是这些,其实还有以后的问题,比如:在开发机上新增的数据怎么导到生产机上,用什么方法效率最高。不要告诉我一个个表手动导,遣凰狄舶铡?/quote]

“开发机上新增的数据”是什么意思?

是数据还是对象?

任何开发机上的数据都不可能直接导到生产机上吧!

如果新增的是对象那在生产机上新建不就是了!

如果表不多的话,还是一个个LOAD方便!

在你的环境下,如果实现效率较高的数据库整库复制方式,个人觉得最好把开发环境和生产环境的tablespace管理方式改为一致,打开logretain和trackmod参数,然后用重定向增量恢复的方式比较方便!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP