DB2数据库从AIX迁移到Linux平台

db2 数据迁移 aix linux it

最近做了一次DB2数据库从AIX到Linux的迁移,发现在网上查到的步骤都比较简单。我就根据自己这次导数据的经验,大概写了下步骤,供大家参考。有一些细节问题没有提到,比如enforce.sql/not_enforce.sql是从db2look生成的ddl文件中通过批量替换生成的sql脚本。还有一些db2可能会用到的命令,我都放在了后面作为参考。希望能对需要的人有所帮助。

AIX版本: 7100-01-04-1216
Linux版本: Redhat Enterprise Linux 6.3
DB2版本: 9.7.0.7


SOURCE(AIX)
db2look -d testdb -e -a -l -xd -f -td @ > db2look_testdb.ddl 
//export object ddls. @ is needed to make sure that store procs will work


db2look -d testdb -l //export tbs ddl;actually we have extracted tbs ddl from last step, so this step could be ignored
db2move testdb export -aw //-aw should not be eliminated. or some tables will not be exported

DEST(LINUX)
transfer all the generated files to dest,make sure no error occurs.

Since we're transfering from AIX to Linux, for federated  database on different platform, the new platform uses different wrapper library names.For example libdb2drda.a(/usr/opt/INSTALL_PATH/lib32/ or /usr/opt/INSTALL_PATH/lib64/) on AIX and libdb2drda.so(/opt/IBM/db2/INSTALL_PATH/lib32 or /opt/IBM/db2/INSTALL_PATH/lib64) on Linux and Solaris.
So we need to modify all libdb2drda.a to libdb2drda.so in db2look_testdb.ddl.

db2 -tvf createdb.sql  //create db
db2 activate db testdb
db2 -tvf db2look_tbs.sql  //create tablespace. You might want to delete " from the scripts.
db2 -td@ -vf db2look_testdb.sql

for SQL0567N:
GRANT EXECUTE ON FUNCTION "SYSPROC "."ENV_GET_SYS_RESOURCES"() TO ROLE "SYSROLE_AUTH_SQLADM" 
DB21034E  The command was processed as an SQL statement because it was not a 
valid Command Line Processor command.  During SQL processing it returned:
SQL0567N  The operation failed because the specified authorization name does 
not meet the identifier naming rules. Authorization name: 
"SYSROLE_AUTH_SQLADM".  SQLSTATE=42602

SQL0567N was raised because grantee starts with "SYS" 
SYSROLE_AUTH_SQLADM
SYSROLE_AUTH_DBADM
SYSROLE_AUTH_EXPLAIN
SYSROLE_AUTH_WLMADM
SYSROLE_AUTH_SECADM
SYSROLE_PRIV_AUDIT_ARCHIVE
They are built-in roles ,we chose to ignore these errors.


db2 -tvf not_enforce_fk.sql //alter not enforce foreign key

db2move testdb import -io INSERT //we cannot use the default import option REPLACE_CREATE because there are reference constraints on tables 

If there are some 3306 errors, check the corresponding error message. We found:
SQL0964C  The transaction log for the database is full.  SQLSTATE=57011
SQL3110N  The utility has completed processing.  "2628222" rows were read from
the input file.
So we need to import the tables manually
These tables are extremly large(more than 4.5G) so import generates lots of redo.
So we chose load to generate minimum redo.

db2 "alter tablespace userspace1 autoresize yes"

db2 "load from tab106.ixf of ixf insert into TESTUSER.L_YIELDQTTN"
db2 commit;


After load, we need to backup tablespace immediately,or the tablespace will be in state 0x00000020(backup pending)
db2 "backup db testdb tablespace USERSPACE1 online compress"


Also , we need to check IMPORT.out if there are rejected tables, for example:
* IMPORT:  table "TESTUSER     "."T_TESTUSER_BATCH_MONTH"  
  -Rows read:      17015
  -Inserted:           0
  -Rejected:       17015

3550 warning was raised for those tables because they use GENERATED ALWAYS identity columns.So we have to use load to import:
(pay attention to the "modified by identityoverride" option)
db2 "load from ./export_2/tab170.ixf of ixf modified by identityoverride insert into   TESTUSER.T_TESTUSER_BATCH_MONTH  "

db2 -tvf enforce_fk.sql //alter enforce foreign key

db2 "backup db testdb tablespace USERSPACE1 online compress"
db2 "alter tablespace userspace1 autoresize yes"
db2 "select distinct status from syscat.tables"
db2 "select constname,tabschema,tabname,owner,enforced from syscat.tabconst order by owner,enforced"
db2 "select constname,tabschema,tabname,enforced from syscat.tabconst order by owner,enforced" | grep T_WF_COMMONRE
db2 "select constname,tabschema,tabname,owner,enforced from syscat.tabconst  where enforced<>'Y'" 
db2 "select constname,tabschema,tabname,enforced from syscat.tabconst order by owner,enforced" | grep T_WF_COMMONR |sed 's/ \+/\t/g' //check constraint status
db2 "select npages,tabspace from syscat.tables where tabname='L_YIELDQTTN'" //check table size



相关推荐

  • 基于DB2及PHP的应用系统跨平台迁移具体步骤(一) 本文主要介绍如何完成基于DB2的PHP应用系统从AIX平台到Linux平台的移植过程。文中包含了底层的DB2数据库移植、上层的PHP应用系统移植的详细步骤以及移植过程中可能遇到的问题和解决方法。任务概述系统迁移的工作主要分为以下几个方面:1
  • HIS转移到Linux遇到的问题 HIS转移到Linux遇到的问题为了更加平稳高效地运行医院HIS,近日服务器系统平台由Windows转移到了Linux。在转移的过程中遇到一些问题,记录下来以备参考:www.m918.cnwww.54meimei.comHIS是用Perl编
  • Linux平台下基于Libpcap的网络数据包捕获(一) Linux平台下基于Libpcap的网络数据包捕获(一)数据包捕获开发包Libpcap是一个平台独立的网络数据包捕获开发包。他是一个高层的编程接口,隐藏了操作系统的细节,可以捕获网络上的所有数据包,包括到达其他主机的数据包。Libpcap中
  • 基于ARM-LINUX平台的物联网服务器设计   基于XSCALEPXA270处理器平台和开源Linux系统搭建ARM-Linux物联网服务器。使用51单片机连接温湿度传感模块、LED灯等外围设备,使用基于XSCALEPXA270处理器的Up-Tech嵌入式实验箱为核心服务器运行平台。
  • Linux平台凸现存储优势 Linux平台凸现存储优势稳定、可靠、低成本郭涛  据统计,仅2002年第三季度,中国Linux市场已经达到5000万元;Linux在服务器领域的市场份额已经达到了近三分之一;北京软件产业促进中心实施的“1+1+1”工程,其目标是在三年内培
  • Linux平台下Java调用C函数 Linux平台下Java调用C函数(转)JavaLinuxC#C++C项目需要java调用C函数,网上查了一些资料,调试成功,现将资料和过程记录下来。平台介绍系统:ubuntu10.04jdk:Java(TM)SERuntimeEnviro
  • Linux平台下手工卸载Oracle数据库 Linux平台下手工卸载Oracle数据库可以使用DBCA图形化方式删除,这也是Oracle推荐的,特殊情况下,也可以手工删除,以下来源于网络,在此基础上我补加了一些。Linux操作系统下完全删除Oracle数据库详述:1.关掉oracle
  • Linux平台ZFS-FUSE与EXT4、Btrfs大比拼 Linux平台ZFS-FUSE与EXT4、Btrfs大比拼原生支持Linux的ZFS将很快发布,它是由劳伦斯利弗莫尔国家实验室(LawrenceLivermoreNationalLaboratory)研制的将Sun的ZFS文件系统以CDDL
  • 周德恒发表基于嵌入式LINUX平台的车载网络系统研究与实现 基于嵌入式LINUX平台的车载网络系统研究与实现由周德恒与20060501进行发表,文章作者周德恒专业:通信与信息系统、导师姓名:黄涛、授权单位:武汉理工大学,文章关键词:车载网络;总线;网关;嵌入式系统;汽车电子技术;操作系统,共有1-6
  • 舍弃Windows 转移到Linux的十条原因——深圳培训linux 这个时候抛弃windows转投Linux的时间好吗?放弃Windows并切换到Linux容易做好吗?实现Windows转换为Linux困难吗?麻烦吗?这是一个艰难的决定吗?放弃Windows转投Linux的十个理由,讲你会为你解释你的一切疑
  • Linux平台网络管理控制模块功能的设计(Netfilter)(C语言) Linux平台网络管理控制模块功能的设计(Netfilter)(C语言)3A学习网-九年学习资料成功运营,汇聚97.1W套论文资料实力与承诺1、售前查询、售后登记。保证唯一!(全省保证唯一!)2、九年论文服务成功运营信誉保证(2003年—2
  • Linux平台块设备到字符设备(裸设备)的三种映射方式 在Linux平台oraclerac的组建过程中,如果使用ASM+RAW的存储方式的话,由于asm不支持块设备,支持持字符访问设备,所以需要配置将BlockDeviceDrive转变成CharacterDeviceDrive的访问方式。但是在

你的评论

就没有什么想说的吗?

最新博客

关于我们 免责声明 移动版

©2017传客网    琼ICP备15003173号-2    

本站部分文章来源于互联网,版权归属于原作者。
本站所有转载文章言论不代表本站观点,如是侵犯了原作者的权利请发邮件联系站长(weishubao@126.com),我们收到后立即删除。
站内所有资源仅供学习与参考,请勿用于商业用途,否则产生的一切后果将由您自己承担!

X