前言:
此时朋友们对“db2表数据迁移到另一张表”大概比较关怀,各位老铁们都想要分析一些“db2表数据迁移到另一张表”的相关知识。那么小编在网络上网罗了一些对于“db2表数据迁移到另一张表””的相关资讯,希望同学们能喜欢,咱们一起来学习一下吧!最近,数据库所在的机器即将过维保或者要坏了,我们不得不进行数据库迁移,下面简单介绍下如何迁移数据库,源和目标都是DB2: 一、旧环境的数据库环境
1. 在迁移之前,你需要将迁移前的数据库IP、端口、数据库名称、用户名和密码都搞清楚,做好规划,需要迁移哪些表。
2. 登陆数据库IP查看数据库相关信息
db2 list db directory
db2 connect to DBNAME user dbuser using dbpwd
db2 list TABLESPACES show detail
db2 LIST TABLESPACE CONTAINERS FOR 1 show detail
查看各个表空间是否用到裸设备
通过上述命令调查源数据库的数据库表空间放置位置,给新数据库创建提供参考。
二、新数据库创建和数据迁移
1、新环境创建数据库
登录用户 db2i**** db2i****
db2start
db2 "create db ****db using codeset UTF-8 territory CN pagesize 16 K"
2、新机器本地配置老数据库IP的 数据库
db2 get dbm cfg |grep SVC
****user
密码
3、制作导出的sql
select distinct a.CARD, 'export to '|| a.TABNAME ||'.ixf of ixf select * from '|| a.TABNAME ||' with ur;' from syscat.tables a where a.OWNER ='****USER' and( a.TABNAME not like '****_%' and a.TABNAME not like 'AP_%')
order by a.CARD desc
with ur;
将上述SQL语句取出的内容放到.sql文件中。
4、编目源数据库
在新机器上catalog老IP数据库,执行如下2个命令:
操作用户必须是实例用户(db2i**** db2i****)
db2 catalog TCPIP node n_68msa remote 老数据库IP server 60001
db2 catalog db ****db as msa68db2 at node n_68msa
db2 connect to msa68db2 user ****user
将export.sql上传到新的数据库IP,并执行导出:
3、制作导入语句
select distinct 'import from '|| a.TABNAME ||'.ixf of ixf create into '|| a.TABNAME ||';' from syscat.tables a where a.OWNER ='****USER' and( a.TABNAME not like '****_%' and a.TABNAME not like 'AP_%')
with ur;
4、授权及环境处理
需要编辑****user的.profile文件
if [ -f /home/db2i****/sqllib/db2profile ]; then
. /home/db2i****/sqllib/db2profile
Fi
退出****user.重新执行db2命令成功
5、开始上传文件并进行导入
将export.sql和import.sql上传到新的机器
注意用户是****user,新建文件夹importdata(mkdir importdata)
三、错误解决
1、drop 不掉表
drop table CHECK_OPR_LOG-2018-11-14bak;
只能用 drop table “CHECK_OPR_LOG-2018-11-14bak”;
2、日志空间满
解决办法:
db2 update db cfg using LOGPRIMARY 50
db2 update db cfg using LOGSECOND 30
标签: #db2表数据迁移到另一张表