Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2783208
  • 博文数量: 423
  • 博客积分: 7770
  • 博客等级: 少将
  • 技术积分: 4766
  • 用 户 组: 普通用户
  • 注册时间: 2006-11-09 11:58
个人简介

Oracle/DB2/Postgresql/Mysql/Hadoop/Greenplum/Postgres-xl/Mongodb

文章分类

全部博文(423)

文章存档

2019年(3)

2018年(6)

2017年(27)

2016年(23)

2015年(30)

2014年(16)

2013年(31)

2012年(73)

2011年(45)

2010年(14)

2009年(30)

2008年(30)

2007年(63)

2006年(32)

分类: DB2/Informix

2016-12-14 17:59:12


一、看源数据库编码:

[db2inst2@db2 bak]$ db2 get db cfg


       数据库  的数据库配置

 数据库配置发行版级别                                    = 0x0d00
 数据库发行版级别                                        = 0x0d00

 数据库地域                                              = CN
 数据库代码页                                            = 1386
 数据库代码集                                            = GBK
 数据库国家/地区代码                                     = 86
 数据库整理顺序                                          = UNIQUE
 备用整理顺序                              (ALT_COLLATE) = 
 数字兼容性                                              = OFF
 Varchar2 兼容性                                         = OFF
 日期兼容性                                              = OFF
 数据库页大小                                            = 4096


二、导出建表DDL语句:

[db2inst2@db2 bak]$ db2look -d  DHEPSDB1 -e -l -o db.sql
-- 未指定用户标识,db2look 试图使用环境变量 USER
-- USER 是: DB2INST2
-- 正在创建表的 DDL
-- 输出被发送到文件: db.sql
[db2inst2@db2 bak]$ vi db.sql 


删除去已建表空间,修改连接数据库名(略)


三、导出数据库数据文件


[db2inst2@db2 bak]$ export LANG=zh_CN.GBK 

[db2inst2@db2 bak]$ db2move DHEPSDB1 export


四、新建目标数据库 DHBAK

[db2inst2@db2 bak]$ db2 create database DHBAK using codeset GBK territory CN 


五、导入数据库建表语句:

[db2inst2@db2 bak]$ db2 -tsvf db.sql 


六、Load快速载入数据库文件

[db2inst2@db2 bak]$ db2move DHBAK load  


七、检查数据完整性的表的执行语句

[db2inst2@db2 bak]$ db2 "select tabname,status from syscat.tables where TABSCHEMA='GHACEPS1'"

如果表状态为“C“,刚需要检查数据完整性

如下:生成单个执行完整性检查SQL(注意此方法存在有多表交叉依赖的情况,具体解决方法在后面
[db2inst2@db2 bak]$ db2 "select 'db2 set integrity for ghaceps1.'||TABNAME||' immediate checked' from syscat.tables where TABSCHEMA='GHACEPS1' and STATUS='C'"


八、生成检查完整性语句批处理:


[db2inst2@db2 bak]$ more 123.sql 
 EXPORT TO 345.sql OF DEL MODIFIED BY nochardel
with gen(tabname, seq) as( select rtrim(tabschema) || '.' || rtrim(tabname) 
as tabname, row_number() over (partition by status) as seq 
from  syscat.tables 
WHERE status='C' ),r(a, seq1) as (select CAST(tabname as VARCHAR(3900)), seq 
from  gen where seq=1 union all select r.a || ','|| rtrim(gen.tabname), gen.seq 
from gen , r where (r.seq1+1)=gen.seq ), r1 as (select a, seq1 from r) 
select 'SET INTEGRITY FOR ' || a || ' IMMEDIATE CHECKED;' from r1 
where seq1=(select max(seq1) from r1);


[db2inst2@db2 bak]$ db2 -tsvf 123.sql


九、执行 345.sql批处理完成表检查


#db2 -tsvf 345.sql


十、检查所表表状态的执行语句

[db2inst2@db2 bak]$ db2 "select tabname,status from syscat.tables where TABSCHEMA='GHACEPS1'"


阅读(2442) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~