当前位置: 传客网 > DB2数据库从AIX迁移到Linux平台

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

2016-10-12 作者:andrewyu

最近做了一次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的访问方式。但是在

  • 在Linux平台上运用RTP协议进行实时流媒体编程 JRTPLIB

    RTP是目前解决流媒体实时传输问题的最好办法,如果需要在Linux平台上进行实时流媒体编程,可以考虑使用一些开放源代码的RTP库,如LIBRTP、JRTPLIB等。JRTPLIB是一个面向对象的RTP库,它完全遵循RFC1889设计,在很多

  • 流氓软件的猖獗,使linux平台进入最佳市场推广期

    直的linux进程实正在已有10年多了,没有中linux仍旧仅仅正在止业处理希图战办事器范围中占跣一席之天。也曾有出无数公司念纺设法念让浅显网仄易远“弃文投李”,没有中皆出有做到。峭垢天我机器中了天痞硬件3448,那是我操做

  • 从“输出方”到“协作者” 上海打造跨区域产业转移协作平台

      长江经济支撑带战略成为中上游地区承接产业转移的新契机,上海在产业转移中不只是扮演“输出方”的角色,而是与沿线地区共同协作,破解产业转移中的转承、蜕变与联动三个关键词。  由商务部、上海市商务委员会、上海市漕河泾开发区以及中西部17个省市

  • linux平台下server运维问题分析与定位.

    联合我工作中碰到的运维问题,归纳一下linux下server常见的运维问题以及定位措施。这里的server重要指自主开发的逻辑server,websrv因为等闲批准通用的架构因而问题比拟少。逻辑server等闲的处理力气在3k/s-1w/s

  • 归档Redis在Windows,linux平台下的安装配置

    为了方便查阅资料,特将网上搜索到的Redis相关安装配置进行归档整理:=============================================================window平台Redis安装下载地址:http

  • 如何在Linux平台下载和安装的32位Java?學習筆記

    InstallJavaforLinuxPlatforms(http://www.java.com/en/download/help/linux_install.xml#JavaforLinuxPlatforms)JavaforRPMbase

  • 移植BusyBox到Android平台(Honeycomb) Porting Busybox to Android Platform

    Reference:http://lazyhack.net/cross-compile-busybox-for-android/1.prerequiteCrosscompiler:prebuilt/linux-x86/toolchain/a

  • ipython[notebook]安装(Linux平台)

    1.环境操作系统:ubuntukylin2.操作步骤a)安装pip工具终端输入以下命令:sudoapt-getinstallpython-pipb)安装ipython终端输入以下命令:sudoapt-getinstallipythonc)安

返回
顶部