首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > IBM DB2 >

db2 数据库 表同步,该如何处理

2013-06-19 
db2 数据库 表同步我们要对db2数据库中 一些表进行同步处理有什么好的方案请赐教?[解决办法]用数据库联邦,

db2 数据库 表同步
我们要对db2数据库中 一些表进行同步处理
有什么好的方案  请赐教?
[解决办法]
用数据库联邦,写存储过程,定时执行存储过程就可以搞定
[解决办法]
db2 CONNECT TO JXDWDB2 USER administrator using ffcs1234
db2 DELETE FROM MK_FACT.D_RPT_JTJH_DETAIL
db2 DECLARE C1 CURSOR DATABASE JXDWDB USER ffcsdb2 using ffcsdb2ffcs FOR SELECT * FROM MK_FACT.D_RPT_JTJH_DETAIL
db2 LOAD FROM C1 OF CURSOR MESSAGES C:\load_sales_2.msg INSERT INTO MK_FACT.D_RPT_JTJH_DETAIL NONRECOVERABLE
db2 TERMINATE;
[解决办法]
新建一个表,保存你要同步的表的名称

写批处理文件

根据表名称拼写export语句和load语句

完成。
[解决办法]
同一个目录下,建立两个bat比如A.BAT B.BAT,
A.BAT:
db2cw call B.bat

B.BAT
只写主要的
1.先连接源数据库:
::拼写'EXPORT'语句'%PATH%'是你自己定义的路径
DB2 "SELECT 'EXPORT TO ''%PATH%\' 
[解决办法]
 tbname 
[解决办法]
 '.DEL'' OF DEL SELECT * FROM '
[解决办法]
 tbname 
[解决办法]
 ';' AS exp_tb FROM 临时表" 
[解决办法]
 findstr "EXPORT" >.\Code\EXP.sql

上面意思是放到sql文件里面,然后通过db2cmd来执行:
db2 -td; -f .\Code\EXPORTTBS.sql


完了后连接目标数据库,同样是使用这样的方式,load进
DB2 "SELECT 'LOAD CLIENT FROM ''%PATH%\'
[解决办法]
 TBNAME 
[解决办法]
'.DEL'' OF DEL REPLACE INTO '
[解决办法]
 TBNAME 
[解决办法]
' NONRECOVERABLE;' FROM 临时表" 
[解决办法]
 findstr "LOAD" >.\Code\LOADTBS.sql
db2 -td; -f .\Code\EXPORTTBS.sql

简单写了一下,不太清晰,私聊再大家研究下
[解决办法]
方法太多了,要是你的情况和同步的频率,以及同步的数据量这些东西来综合考虑,方法很多,我们要选择最优的
[解决办法]
用nickname是不是可以实现。

热点排行