使用IBM cdc迁移数据(db2->db2)_大数据

以下列表描述了 InfoSphere Data Replication 体系结构的关键组件:
Access Server - 控制所有以非命令行方式对复制环境进行的访问。当您登录到 Management Console 时,就是连接到 Access Server。您可以在客户机工作站上关闭 Access Server,而不会影响源服务器与目标服务器之间正在进行的数据复制活动。
管理 API - 以基于 Java 的可选编程接口形式运行。您可以使用此 API 对操作配置或交互进行脚本编制。
应用代理程序 - 充当目标上的代理程序,用于处理源所发送的更改。
命令行界面 - 允许您使用引擎的命令行工具启动、停止和控制 CDC Replication 引擎。
通信层 (TCP/IP) - 充当源与目标之间的专用网络连接。
源和目标数据存储器 - 表示数据复制所需的数据文件和 CDC Replication 实例。每个数据存储器都表示您要连接到的数据库,并且充当表的容器。被设为可供复制的表包含在数据存储器中。
Management Console - 允许您配置、监视和管理各种服务器上的复制,指定复制参数以及从客户机工作站启动刷新和镜像操作。另外,Management Console 还允许您监视复制操作、等待时间、事件消息以及源或目标数据存储器所支持的其他统计信息。Management Console 中的监视器旨在用于需要持续分析数据移动的时间关键型工作环境。CHCCLP(命令行处理器)和基于 API 的应用程序也可用于通过 Access Server 配置、监视和管理复制。在设置复制之后,您可以在客户机工作站上关闭 Management Console,而不会影响源服务器与目标服务器之间正在进行的数据复制活动。
元数据 - 表示相关表、映射、预订、通知、事件以及您设置的数据复制实例的其他细节的相关信息。
镜像 - 将更改复制到目标表或者积累源表更改并在以后将其复制到目标表。如果在环境中实施了双向复制,那么可以在源表与目标表之间来回进行镜像。
刷新 - 将表从源数据库初始同步到目标。这会由刷新阅读器进行读取。
复制引擎 - 用于发送和接收数据。用于发送所复制数据的进程是源捕获引擎,而用于接收所复制数据的进程是目标引擎。CDC Replication 实例可以同时作为源捕获引擎和目标引擎运行。
单次提取 - 充当仅用于源的日志阅读器和日志解析器组件。它会检查并分析所选数据存储器上所有预订的源数据库日志。
并非所有 CDC Replication 引擎都使用“单次提取”。对于 CDC Replication Engine for Db2® for i,有一个“提取器”作业(充当日志阅读器)和一个“镜像”作业(用于执行镜像功能)。
源变换引擎 - 处理行过滤、关键列、列过滤、编码转换以及要传播到目标数据存储器引擎的其他数据。
源数据库日志 - 由源数据库维护以用于其自身的恢复。CDC Replication 日志阅读器会在镜像过程中检查这些日志,并过滤掉不在复制范围内的表。
目标变换引擎 - 处理数据和值转换、编码转换、用户出口、冲突检测以及目标数据存储器引擎上的其他数据。
有两种仅用于目标的复制目的地(并不是数据库):
JMS 消息 - 充当 JMS 消息目标(队列或主题),用于创建为 XML 文档的行级别操作。
InfoSphere DataStage - 处理从 CDC Replication 传递的更改,这些更改可由 InfoSphere DataStage 作业使用。

1.测试环境准备:
查看所在的服务器

[root@db01 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.2.113 db01
192.168.2.167 db02

查看版本

[root@db01 ~]# cat /etc/redhat-release 
Red Hat Enterprise Linux Server release 6.9 (Santiago)

关闭防火墙

[root@db01 ~]# service iptables stop
[root@db01 ~]# chkconfig iptables off

关闭selinux,重启后生效

[root@db01 mnt] sed -i 's/^SELINUX=.*$/SELINUX=disabled/g' /etc/selinux/config

目标:
将db01的testdb1库中的t1表通过CDC复制到db02的testdb2库的t2表

  1. 在源和目标端分别创建cdcuser用户以及cdcgrp组
[root@db01 home]# groupadd -g 5000 cdcgrp
[root@db01 home]# useradd -g 5000 -u 5000 cdcuser
[root@db01

3.在源和目标端分别授权cdcuser用户

[root@db01 home]# su - db2inst1
[db2inst1@db01 ~]$ db2 connect to testdb1
Database Connection Information
Database server = DB2/LINUXX8664 10.1.0
SQL authorization ID = DB2INST1
Local database alias = TESTDB1

[db2inst1@db01 ~]$ db2 grant dbadm on database to user cdcuser
DB20000I The SQL command completed successfully.

4.将db2inst1的环境变量加入cdcuser中

[db2inst1@db01 ~]$ su - cdcuser
Password:
[cdcuser@db01 ~]$ cat /home/db2inst1/.bashrc
if [ -f /home/db2inst1/sqllib/db2profile ]; then
. /home/db2inst1/sqllib/db2profile
fi

加入后如下​

[cdcuser@db01 ~]$ cat /home/cdcuser/.bashrc 
# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
if [ -f /home/db2inst1/sqllib/db2profile ]; then
. /home/db2inst1/sqllib/db2profile
fi
# User specific aliases and functions

使用IBM cdc迁移数据(db2->db2)_python_02

5.在源端和目标端都使用cdcuser用户登录,查看是否执行db2命令

[cdcuser@db01 ~]$ db2 list db directory

System Database Directory

Number of entries in the directory = 1

Database 1 entry:

Database alias = TESTDB1
Database name = TESTDB1
Local database directory = /db2data/testdb1
Database release level = f.00
Comment =
Directory entry type = Indirect
Catalog database partition number = 0
Alternate server hostname =
Alternate server port number =

6.在源端使用root执行命令​

[root@db01 ~]# mkdir -p /db2ucpscdc/cdc/V11.4
[root@db01 ~]# mkdir -p /db2ucpscdc/cdc/refresh
[root@db01 ~]# chown -R cdcuser.cdcgrp /db2ucpscdc/

7.在目标端执行命令

[root@db02 ~]# mkdir -p /db2ucpscdc/cdc/V11.4
[root@db02 ~]# mkdir -p /db2ucpscdc/cdc/refreshV11.4
[root@db02 ~]# mkdir -p /db2ucpscdc/cdc/AccessServerV11.4
[root@db02 ~]# chown -R cdcuser.cdcgrp /db2ucpscdc/

8.在源和目标端执行命令安装setup-iidr-11.4.0.0-5074-linux-x86.bin

[cdcuser@db01 home]# su - cdcuser
[cdcuser@db01 home]$ sh setup-iidr-11.4.0.0-5074-linux-x86.bin

选择【2】

使用IBM cdc迁移数据(db2->db2)_数据库_03

【回车】

使用IBM cdc迁移数据(db2->db2)_大数据_04

选择【2】

使用IBM cdc迁移数据(db2->db2)_python_05


选择【4】

使用IBM cdc迁移数据(db2->db2)_python_06

输入安装路径【/db2ucpscdc/cdc/V11.4】

使用IBM cdc迁移数据(db2->db2)_java_07


输入【Y】

使用IBM cdc迁移数据(db2->db2)_python_08

输入【1】接收许可

使用IBM cdc迁移数据(db2->db2)_数据库_09


输入【Enter】

使用IBM cdc迁移数据(db2->db2)_java_10


输入【Enter】

使用IBM cdc迁移数据(db2->db2)_java_11


输入【1】

使用IBM cdc迁移数据(db2->db2)_java_12

进入配置界面,输入【Enter】

使用IBM cdc迁移数据(db2->db2)_大数据_13

输入CDC实例名,这里是【cdcinst1】

使用IBM cdc迁移数据(db2->db2)_java_14

输入端口号【10901】

使用IBM cdc迁移数据(db2->db2)_java_15

输入【10】

使用IBM cdc迁移数据(db2->db2)_python_16


输入【4096】

使用IBM cdc迁移数据(db2->db2)_linux_17


输入【n】

使用IBM cdc迁移数据(db2->db2)_linux_18


输入【n】和【db2inst1】

使用IBM cdc迁移数据(db2->db2)_数据库_19

输入【1】和【n】

使用IBM cdc迁移数据(db2->db2)_大数据_20


输入用户和密码,分别是【cdcuser】和【wwwwww】

使用IBM cdc迁移数据(db2->db2)_java_21


输入【/db2ucpscdc/cdc/refresh】

使用IBM cdc迁移数据(db2->db2)_linux_22

使用IBM cdc迁移数据(db2->db2)_大数据_23

使用IBM cdc迁移数据(db2->db2)_java_24

创建schema

[db2inst1@db02 ~]$ db2 "create schema testdb02"
DB20000I The SQL command completed successfully.

9.使用cdcuser用户在目标端安装【iidraccess-11.4-10173-linux-x86-setup.bin】

[cdcuser@db02 home]$ sh iidraccess-11.4-10173-linux-x86-setup.bin

选择【2】

使用IBM cdc迁移数据(db2->db2)_java_25


选择【Enter】

使用IBM cdc迁移数据(db2->db2)_大数据_26


输入安装路径【/db2ucpscdc/cdc/AccessServerV11.4】

使用IBM cdc迁移数据(db2->db2)_大数据_27


输入【Y】

使用IBM cdc迁移数据(db2->db2)_python_28


输入许可【1】

使用IBM cdc迁移数据(db2->db2)_linux_29


输入端口【10101】

使用IBM cdc迁移数据(db2->db2)_python_30

输入【Enter】

使用IBM cdc迁移数据(db2->db2)_数据库_31


输入【Enter】

使用IBM cdc迁移数据(db2->db2)_数据库_32


输入【Enter】

使用IBM cdc迁移数据(db2->db2)_java_33


10.使用cdcuser用户在目标端启动accessserver

[cdcuser@db02 home]$ su - cdcuser
[cdcuser@db02 home]$ cd /db2ucpscdc/cdc/AccessServerV11.4/bin/
[cdcuser@db02 bin]$ nohup ./dmaccessserver &

11.创建Manager console用户以及密码,这个密码后期登录进入修改成:P​​@ssw0rd​

[cdcuser@db02 bin]$ ./dmcreateuser cdcadmin cdcadmin cdcadmin wwwwww SYSADMIN TRUE FALSE TRUE

12.安装Manager Console

双击【iidrmc-11.4-10461-setup.exe】

使用IBM cdc迁移数据(db2->db2)_linux_34

单击【确定】

使用IBM cdc迁移数据(db2->db2)_java_35


单击【下一步】

使用IBM cdc迁移数据(db2->db2)_java_36


选择安装路径并单击【下一步】

使用IBM cdc迁移数据(db2->db2)_大数据_37


选择【我接收许可协议中的全部条款】并单击【下一步】

使用IBM cdc迁移数据(db2->db2)_大数据_38


单击【下一步】

使用IBM cdc迁移数据(db2->db2)_python_39


单击【下一步】

使用IBM cdc迁移数据(db2->db2)_linux_40


单击【安装】并等待安装完成

使用IBM cdc迁移数据(db2->db2)_python_41

13.在源端创建测试表,并插入数据

db2 connect to testdb1
db2 "CREATE TABLE t1(a int, b varchar(20))"
db2 "insert into t1 values(1,'a')"
db2 "insert into t1 values(2,'b')"
db2 "insert into t1 values(3,'c')"
db2 "insert into t1 values(4,'d')"

14.登录Manager Console端

使用IBM cdc迁移数据(db2->db2)_java_42

​https://www.cndba.cn/hbhe0316/article/4812​​添加数据存储器

使用IBM cdc迁移数据(db2->db2)_java_43


输入源端的存储器,单击【Ping】

使用IBM cdc迁移数据(db2->db2)_linux_44


输入目标端的存储器,单击【Ping】

使用IBM cdc迁移数据(db2->db2)_python_45


右击存储器,单击【分配用户】

使用IBM cdc迁移数据(db2->db2)_linux_46


选择【cdcadmin】,输入数据库登录用户【cdcuser】,输入密码【wwwwww】

使用IBM cdc迁移数据(db2->db2)_python_47

​https://www.cndba.cn/hbhe0316/article/4812​​点击【配置】->【预定】->【新建预定】

使用IBM cdc迁移数据(db2->db2)_大数据_48


选择目标端数据库,【testdb2】

使用IBM cdc迁移数据(db2->db2)_linux_49


需要在目标端创建表

[db2inst1@db02 ~]$ db2 connect to testdb2
[db2inst1@db02 ~]$ db2 "CREATE TABLE t1(a int, b varchar(20))"

单击【是】,预定映射表

使用IBM cdc迁移数据(db2->db2)_大数据_50


选择【多个一对一映射】

使用IBM cdc迁移数据(db2->db2)_数据库_51


选择要复制的表

使用IBM cdc迁移数据(db2->db2)_数据库_52


选择要【映射到现有目标表】

使用IBM cdc迁移数据(db2->db2)_数据库_53


选择目标表T1

使用IBM cdc迁移数据(db2->db2)_大数据_54


单击【下一步】

使用IBM cdc迁移数据(db2->db2)_python_55


单击【完成】

使用IBM cdc迁移数据(db2->db2)_数据库_56

单击【标记用于制作镜像的表捕获点】

使用IBM cdc迁移数据(db2->db2)_linux_57

右击该预定,选择【开始制作镜像】

使用IBM cdc迁移数据(db2->db2)_linux_58


在目标端查看表中的数据

15 .启动agent端
[cdcuser​​​@db02​​ bin]$ nohup ./dmts64 -I cdcinst1 &

版权声明:本文为博主原创文章,未经博主允许不得转载。

Linux,oracle