linxu下DB2数据库迁移命令.doc_第1页
linxu下DB2数据库迁移命令.doc_第2页
linxu下DB2数据库迁移命令.doc_第3页
linxu下DB2数据库迁移命令.doc_第4页
linxu下DB2数据库迁移命令.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Linux 下的 DB2数据库的迁移前言:DB2 Universal Database(DB2 UDB) 有一对非常有用的工具,可以帮助您实现这种跨平台的备份与恢复功能。 db2move 工具利用了 DB2 的数据移动工具(export 和 import 或 load)来移动数据库表。然而,由于数据库的内容远远不止于用户表,因此您需要使用其他方法在不同的数据库之间迁移其他数据库对象,例如约束、触发器、索引、序列、表空间、缓冲池等。这就是 db2look工具出现的原因。使用这个工具,您可以在源数据库中捕获到定义这些对象使用的数据定义语言(DDL),并在目标数据库中使用这些数据定义语言重新创建这些对象。1、 环境说明:迁移的DB2 数据库的名字叫 sample , SCHEMA也是oatest ,用户名是 oatest 2、 导出步骤:1) 建立新目录,如果是在 linux 下要注意目录的权限问题,目录应该可以被 db2inst1 用户写访问 db2inst1devsvr2 db2inst1$ pwd/home/db2inst1db2inst1devsvr2 db2inst1$ mkdir oatest0303db2inst1devsvr2 db2inst1$ lsdb2inst1 db2test Desktop oatest0303 sqllib2) 进入该目录db2inst1devsvr2 db2inst1$ cd oatest0303/db2inst1devsvr2 oatest0303$3) 用数据库抽取工具 db2look 导出数据库结构主要命令db2look -d sample -e -z oatest -l -o oatest.sqldb2inst1devsvr2 oatest0303$ db2look -d sample -e -z oatest -l -o oatest.sql- 未指定用户标识,db2look 试图使用环境变量 USER- USER 是: DB2INST1- 指定的模式为: OATEST- 创建表的 DDL- 联合部分的模式名被忽略- 输出被发送到文件: oatest.sql脚本中包括建立 bufferpool 以及tablespace的 DDL 语句4) 用 db2move 工具导出数据库数据主要命令db2move sample exportdb2inst1devsvr2 oatest0303$ db2move sample export* DB2MOVE *Action: EXPORTStart time: Sun Mar 5 11:00:52 2006Connecting to database SAMPLE . successful! Server: DB2 Common Server V8.2.0EXPORT: 0 rows from table OATEST .ATTACHFILEEXPORT: 0 rows from table OATEST .BASE5) 打包压缩该目录 oatest0303/主要命令:tar zcvf oatest0303.tar.gz oatest0303/db2inst1devsvr2 oatest0303$ cd .db2inst1devsvr2 db2inst1$ tar zcvf oatest0303.tar.gz oatest0303/oatest0303/oatest0303/oatest.sqloatest0303/EXPORT.outoatest0303/db2move.lstoatest0303/tab1.msgoatest0303/tab1.ixf3、 导入步骤1) 解压主要命令:tar zxfv oatest0303.tar.gz db2inst1devsvr2 db2inst1$ tar zxfv oatest0303.tar.gz oatest0303/oatest0303/oatest.sqloatest0303/EXPORT.outoatest0303/db2move.lst2) 建立新数据库 db2 create db sample主要命令:db2 create db sampledb2inst1devsvr2 db2inst1$ db2 create db sampleDB20000I CREATE DATABASE 命令成功完成。3) 执行 oatest.sql 脚本建立数据库 主要命令:db2 -tvf oatest.sql db2inst1devsvr2 db2inst1$ cd oatest0303db2inst1devsvr2 oatest0303$ db2 -tvf oatest.sql4) 执行 db2move 导入数据主要命令:db2move sample load db2inst1devsvr2 oatest0303$ db2move sample load* LOAD: table OATEST .UM_USER -Rows read: 1529-Loaded: 1529-Rejected: 0-Deleted: 0-Committed: 1529Disconnecting from database . successful!End time: Sun Mar 5 10:24:22 20065) 检查一致性主要命令:db2 set integrity for oatest.UM_USER immediate checkeddb2inst1devsvr2 oatest0303$ db2 connect to sample数据库连接信息数据库服务器 = DB2/LINUX 8.2.0SQL 授权标识 = DB2INST1本地数据库别名 = SAMPLEdb2inst1devsvr2 oatest0303$ db2 select count(*) from oatest.um_user 1 -SQL0668N 由于表 OATEST.UM_USER 上的原因码 1,所以不允许操作。 SQLSTATE=57016db2inst1devsvr2 oatest0303$ db2 set integrity for oatest.UM_USER immediate checkedDB20000I SQL 命令成功完成。db2inst1devsvr2 oatest0303$ db2 select count(*) from oatest.um_user1 -15291 条记录已选择。利用 sql 语句得到要检查的表的执行语句主要命令:db2 select db2 set integrity for oatest.|TABNAME| immediate checked from syscat.tables where TABSCHEMA=OATEST and STATUS=Cdb2inst1devsvr2 oatest0303$ db2 select db2 set integrity for oatest.|TABNAME| immediate checked from syscat.tables where TABSCHEMA=OATEST and STATUS=C1 -db2 set integrity for oatest.CAL_AUTH immediate checked db2 set integrity for oatest.UM_USER immediate checked 81 条记录已选择。执行这 81 条语句,语句有可能报错主要命令:db2 set integrity for oatest. CAL_AUTH immediate checked db2inst1devsvr2 oatest0303$ db2 set integrity for oatest.CAL_AUTH immediate checked DB20000I SQL 命令成功完成。db2inst1devsvr2 oatest0303$ db2 set integrity for oatest.UM_USER immediate checked DB20000I SQL 命令成功完成。如果报错,再反复执行这些语句直到下面的语句结果返回 0 条记录db2inst1devsvr2 oatest0303$ db2 select db2 set integrity or oatest.|TABNAME| immediate checked from syscat.tables where TABSCHEMA=OATEST and STATUS=C1 -0 条记录已选择。6) 在操作系统中建立用户rootdevsvr2 root# useradd oatestrootdevsvr2 root# passwd oatestChanging password for user oatest.New password: BAD PASSWORD: it is too shortRetype new password: passwd: all authentication tokens updated successfully.7) 给 oatest 用户授权主要命令:db2 GRANT DBADM,CREATETAB,BINDADD,CONNECT,CREATE_NOT_FENCED_ROUTINE,IMPLICIT_SCHEMA,LOAD,CREATE_EXTERNAL_ROUTINE,QUIESCE_CONNECT ON DATABASE TO USER OATESTdb2 GRANT CREATEIN,DROPIN,ALTERIN ON SCHEMA OATEST TO USER OATESTdb2inst1devsvr2 db2inst1$ db2 connect to sample数据库连接信息数据库服务器 = DB2/LINUX 8.2.0SQL 授权标识 = DB2INST1本地数据库别名 = SAMPLEdb2inst1devsvr2 db2inst1$ db2 GRANT DBADM,CREATETAB,BINDADD,CONNECT,CREATE_NOT_FENCED_ROUTINE,IMPLICIT_SCHEMA,LOAD,CREATE_EXTERNAL_ROUTINE,QUIESCE_CONNECT ON DATABASE TO USER OATEST;DB20000I SQL 命令成功完成。db2inst1devsvr2 db2inst1$ db2 GRANT CREATEIN,DROPIN,ALTERIN ON SCHEMA OATEST TO USER OATESTDB20000I SQL 命令成功完成。db2inst1devsvr2 db2inst1$ db2 connect to sample user oatest using oatest数据库连接信息数据库服务器 = DB2/LINUX 8.2.0SQL 授权标识 =OATSET本地数据库别名 = SAMPLEdb2inst1devsvr2 db2inst1$ db2 select count(*) from um_user1 -15291 条记录已选择。4、 重要说明1)在 db2 中的 bufferpool 是和内存有关系的,所以你应该根据你的机器内存情况来建立 bufferpool 2) tablespace 的路径也是和你的应用有关,如果是双机环境应该把表空间建立在共享存储中,你可以根据实际情况来修改上文所说到的 oatest.sql 中的建立 bufferpool 以及 tablespace 的语句。作者 macrozeng ( IBM ) : 最新回复(4) :静态链接网址 :引用 (0)注意事项4 回复在检查一致性的时候,如果遇到某张表由于外键的关系无法通过一致性检查,可以采用下面的步骤来解决1、删除外键ALTER TABLE MV_DATA_HISTORY DROP CONSTRAINT FK_MV_DATA_ADV242、检查一致性set integrity for MV_DATA_HISTORY immediate checked3、重新创建 NOT ENFORCED 外键ALTER TABLE MV_DATA_HISTORYADD CONSTRAINT FK_MV_DATA_ADV24 FOREIGN KEY(FORM_DATA_INST_ID)REFERENCES MV_FORMSET_INST(FORMSET_INST_ID)ON DELETE NO ACTIONON UPDATE NO ACTIONNOT ENFORCEDComment by macrozeng (09/12/2008 14:54)注意事项3 回复如果在导出的时候出现类似下面的提示SQL3132W The character data in column PRIORITY will be truncated to size 64.是因为 codepage 的问题,通过 db2set 设置 db2codepage 和数据库一致,然后重启 instance 就可以了导出了Comment by macrozeng

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论