您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > DB2数据库迁移详细操作步骤
DB2服务器迁移(V8.2--DB2V9.1)Linux/Unix===========================一:预迁移任务===========================1、建立迁移备份目录mkdir/tmp/migrant/2、备份数据库(全量、脱机)1)db2inst1登录2)断开所有连接db2forceapplicationall3)检查数据库目录,根据实际迁移数据库名称代替后续代码中的dbNamedb2listdbdirectory4)备份所有数据库mkdir/tmp/migrant/dbbackupdb2backupdbdbNameto/tmp/migrant/dbbackup5)检查结果ls/tmp/migrant/dbbackup/3、备份配置信息1)db2inst1登录2)备份所有数据库配置信息(如果db2dump目录下文件比较多本过程会比较长)mkdir/tmp/migrant/db2support/db2support/tmp/migrant/db2support/-ddbName-odbName.zipls/tmp/migrant/db2support/3)备份与每个数据库相关联的应用程序的所有程序包的信息mkdir/tmp/migrant/db2package/db2connecttodbNamedb2listpackagesforschemadb2inst1showdetail/tmp/migrant/db2package/dbName.pkg.txtls/tmp/migrant/db2package/4)备份数据库ddlmkdir/tmp/migrant/db_ddl/db2look-ddbName-e-o/tmp/migrant/db_ddl/dbName.ddlls/tmp/migrant/db_ddl/5)备份所有外部例程cdcp-Rsqllib/function/tmp/migrant/function_backup4、增大表空间和日志文件大小(本部分可提前完成)1)db2inst1登录db2connecttodbName2)查看表空间使用情况db2listtablespacesshowdetail3)增大系统目录表空间的大小(SYSCATSPACE)SMS:确保可用磁盘空间=已使用的表空间大小(总页数×页大小),不够则需增加磁盘DMS:确保可用页数=已使用页数,不够则增大表空间db2ALTERTABLESPACESYSCATSPACEEXTEND(ALLnumber_of_pages)4)增大临时目录表空间的大小(TEMPSPACE1)SMS:确保可用磁盘空间=系统目录表空间大小×2DMS:确保总页数=系统目录表空间大小×2,不够则增大表空间db2ALTERTABLESPACETEMPSPACE1EXTEND(ALLnumber_of_pages)5)增大日志空间大小(注意日志所在磁盘确实有这么多空闲空间)查看db2getdbcfgfordbName|grep'(LOG[FPS]'增大db2updatedbcfgfordbNameusingLOGSECONDLOGSECOND+LOGPRIMARY或者无限日志db2updatedbcfgfordbNameusingLOGSECOND-15、提高诊断级别1)归档原先的诊断日志db2diag-A2)提高诊断级别db2updatedbmcfgusingdiaglevel46、使DB2服务器脱机1)停止DB2许可证服务db2licd-enddb2terminatedb2forceapplicationalldb2stop===========================二:迁移任务===========================1、安装数据库V91)root登录2)插入db2V9.1光盘,运行db2setup命令,选择“安装新产品”选项3)基本使用默认值,不创建新实例4)安装完成2、验证数据库是否已准备好进行迁移1)实例所有者db2inst1登录2)停止实例db2stop3)验证所有数据库mkdir/tmp/migrant/db2ckmig/opt/ibm/db2/V9.1/bin/db2ckmigdbName-l/tmp/migrant/db2ckmig/db2ckmig.dbName.log如果失败,则检查log文件,确定错误并修改,然后重复验证操作4)检查任意log文件catdb2ckmig.DBName.log确保日志文件包含下列文本:VersionofDB2CKMIGbeingrun:VERSION95)启动实例db2start*****************************************************注意:如果无法通过(经测试,在V8.1FixPak7下,db2ckmig会报无法连接数据库错误),则1)方法一:将V8实例下的所有数据库先删除(必须先全量备份),再升级实例,最后通过备份恢复数据库2)方法二:打上V8.1的补丁FixPak14,或者显式指定DB2CODEPAGE。(未做测试)db2setdb2codepage=1383-idb2inst1db2terminate3、迁移实例1)root登录2)执行升级/opt/ibm/db2/V9.1/instance/db2imigr-udb2fenc1db2inst13)检查结果db2inst1登录db2startdb2level4、迁移DAS1)dasusr1登录db2adminstop2)执行升级/opt/ibm/db2/V9.1/instance/dasmigr3)检查结果dasusr1登录db2adminstartdb2dasleveldb2inst1登录db2getadmincfg5、安装v9fp10补丁(主要是为了不重建procedure,从FixPack6以上就修复了这个问题。安装补丁总该没错)1)db2inst1登录db2stopforcedb2terminate2)root登录3)FTP使用binary方式上传补丁到/tmp目录4)解压缩文件,安装升级包cd/tmptarzxvf/tmp/v9fp10_linux_ese.tar.gzcd/tmp/ese/disk1./installFixPack根据提示输入安装目录:/opt/ibm/db2/V9.1如果一切顺利,提示安装成功5)更新实例和DAScd/opt/ibm/db2/V9.1/instance/更新实例./db2iupdtdb2inst1更新DAS./dasupdt6)检查结果db2inst1登录db2startdb2level6、恢复/迁移数据库1)db2inst1登录db2start2)两种方法(任选其一)2.1、迁移数据库(简单做法,在某些情况下可能会出现Triggers/Views/Procedures没有成功迁移)db2migratedbdbName2.2、恢复所有数据库可选,某些环境下必须db2dropdbdbNamedb2restoredbdbNamefrom/tmp/migrant/dbbackup/完整范例:可能的报错信息(代码页不匹配)[db2inst1@belle-node1~]$db2dropdbtoolsdbDB20000ITheDROPDATABASEcommandcompletedsuccessfully.[db2inst1@server]$[db2inst1@server]$db2restoredbtoolsdbtakenat20111129002652SQL1205NThecodepage1381and/orterritorycode1thathasbeenspecifiedisnotvalid.[db2inst1@server]$[db2inst1@server]$db2setdb2codepage=819[db2inst1@server]$db2terminateDB20000ITheTERMINATEcommandcompletedsuccessfully.[db2inst1@server]$[db2inst1@server]$db2restoredbtoolsdbtakenat20111129002652SQL2519NThedatabasewasrestoredbuttherestoreddatabasewasnotmigratedtothecurrentrelease.Error-1006withtokens3jisreturned.[db2inst1@server]$[db2inst1@server]$db2migratedbtoolsdbSQL1006NThecodepage22509734Ioftheapplicationdoesnotmatchthecodepage22509737Iofthedatabase.[db2inst1@server]$[db2inst1@server]$db2setdb2codepage=1386[db2inst1@server]$db2terminateDB20000ITheTERMINATEcommandcompletedsuccessfully.[db2inst1@server]$3)检查结果db2listdbdirectory验证表可正常查询db2connecttodbNamedb2selecttableid,tabnamefromsyscat.tablesfetchfirstrowonly7、重新绑定packages1)使用db2inst1登录db2start2)重新绑定所有数据库mkdir/tmp/migrant/db2rbinddb2rbinddbName-l/tmp/migrant/db2rbind/dbName.db2rbind.logall绑定过程中如果有无法重新绑定的,不用理会3)检查结果验证存储过程能正常调用db2connecttodbNamedb2callTL_GETNEWSHEETID(1,?)8、删除Triggers/Views/Procedures(根据db2look生成的脚本)catdbName.ddl|grep-itrigger|awk'{printf(db2DROPTRIGGER$3\n)}'|shcatdbName.ddl|grep-itrigger|awk'{printf(db2DROPVIEW$3\n)}'|shcatdbName.ddl|grep-itrigger|awk'{printf(db2DROPPROCEDURE$3\n)}'|sh9、重建Triggers/Views/Procedures(根据db2look生成的脚本)从dbName.ddl拷贝出脚本,再执行===========================三:迁移后任务===========================1、启动数据库1)db2inst1登录db2start2、恢复诊断级别db2updatedbmcfgusingdiaglevel33、恢复日志空间大小1)查看db2getdbcfgfordbName|grep'(LOG[FPS]'2)恢复db2updatedbcfgfordbNameusingLOGSECONDLOGSECOND-LOGPRIMARY4、激活所有数据库db2activatedbdbName5、可选检查配置参数和DB2注册变量值1)查看dbmcfgdb2getdbmcfg2)查看dbcfgdb2getdbcfgfordbName3)查看db2注册变量db2set-all6、可选索引类型的转换(type1--type2)(应该是没有的)方法一:1)验证是否存在1类索引cdcdsqllib/db2dump/db2connecttodbNamedb2inspectcheckdatabaser
本文标题:DB2数据库迁移详细操作步骤
链接地址:https://www.777doc.com/doc-4772392 .html