dmhs关于dm到mysql的搭建

1.环境准备

(1)操作系统的用户权限

         启动dmhs服务的操作系统用户最好是数据库的安装用户如果不能用数据库的安装用户,那么创建的dmhs服务用户必须要和数据库的安装用户在同一用户组中。

(2)硬件需求

      内存需求

       DMHS 需要的内存总量取决于分析线程以及执行线程的并发数,最少需要 1G 内存。

       磁盘需求

       DMHS 安装文件占用 277M,包括了管理工具以及管理界面占用的空间,另外需要一些额外的空间存储 DMHS 运行的日志文件。

 (3)操作系统需求

      Linux 系列操作系统

       各种主流的 Linux 操作系统(如 Redhat、 Kylin)。

(4)网络需求

      dm到mysql网络互通,端口可以访问。

(5)设置mysql本地链接

    DMHS在运行时,需要加载本地MYSQL 动态库,linux/unix平台下为libmysqlclient.so。在部署DMHS 之前,需将libmysqlclient.so所在目录添加到共享库路径变量中。libmysqlclient.so通常位于/usr/local/mysql/lib目录中中。在LINUX/UNIX系统中,设置的方法如下:

vi ~/.bahs_profile

操作系统类型

设置命令

IBM AIX

export LIBPATH=$LIBPATH: /usr/local/mysql/lib

HP UX

export SHLIB_PATH=$ SHLIB_PATH: /usr/local/mysql/lib

其他LINUX/UNIX

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH: /usr/local/mysql/lib

source ~/.bash_profile

(6) UNIXODBC安装

Mysql作为目的端,需要通过ODBC将源端数据库的操作同步到目的数据库,所以部署DMHS MYSQL 目的端的服务器,需要安装ODBC驱动及MYSQL ODBC。

推荐安装unixodbc2.3.2版本的odbc,下面介绍如何使用源码安装unixidbc。

下载unixodbc2.3.2源码unixODBC-2.3.2.tar.gz。

解压unixodbc源码

tar -zxvf unixODBC-2.3.2.tar.gz

进入unixodbc源码目录,编译源码

cd unixodbc-2.3.2

export CC=gcc

./configure --enable-drivers=no --with-iconv-char-enc=GB18030 --enable-gui=no --enable-iconv=yes

make

make install

注意:当服务器系统为UNIX/LINUX 64bits时,在./configure之前需执行export CFLAGS="-maix64 -DBUILD_REAL_64_BIT_MODE"export OBJECT_MODE=64

配置UNIXODBC

将操作系统当前目录切换到“/usr/local/etc”目录,修改 odbc.ini 和odbcinst.ini 参数。

odbc.ini 参数内容如下所示:

[mysql]

Driver=MySQL ODBC 5.1 Driver

DATABASE=mysql

DESCRIPTION=MYSQL ODBC 5.1 DRIVER

SERVER=127.0.0.1

UID=dmhs

PASSWORD=dmhs

odbcinst.ini参数内容如下所示:

[MySQL ODBC 5.1 Driver]

Driver=/usr/lib64/libmyodbc5.so

UsageCount=1

验证:isql -v mysql dmhs dmhs

(7)dm数据库环境准备

创建同步用户

需要在Dm库上创建一个用户dmhs需要DBA权限。

开启归档和逻辑日志

设置归档标记和逻辑日志标记。打开 DM7 服务器配置文件“dm.ini”,设置如下值:

ARCH_INI = 1

RLOG_APPEND_LOGIC = 1

注意:dm.ini 配置参数中“FAST_COMMIT”必须为 0,否则会导致逻辑日志不全而影响

同步。

配置dmarch.ini,在数据库目录下例子:

[ARCHIVE_LOCAL1]

ARCH_TYPE = LOCAL

ARCH_DEST = /opt/dmdbms/arch #归档目录

ARCH_FILE_SIZE = 128 #归档文件大小,单位 MB

ARCH_SPACE_LIMIT = 10240#空间大小限制,0 表示不限制

修改参数后需要重启数据库服务

验证设置的正确性

SELECT ARCH_DEST, ARCH_FILE_SIZE FROM SYS.V$DM_ARCH_INI WHERE ARCH_TYPE='LOCAL' AND ARCH_IS_VALID='Y';

SELECT PARA_VALUE FROM SYS.V$DM_INI WHERE PARA_NAME = 'RLOG_APPEND_LOGIC';

检查在线日志,通过如下的查询:

SELECT PATH FROM SYS.V$RLOGFILE;

检查 FAST_COMMIT 参数是否为 0

select para_value from v$dm_ini where para_name = 'FAST_COMMIT'

如果需要同步DDL操作

需要在DM库上执行脚本ddl_sql_dm7.sql.。创建的脚本参见 DMHS

装目录下 scripts 子目录中“ddl_sql_dm7.sql”

检查创建的触发器和辅助表是否有效,检查辅助表的语句:

select owner, table_name from dba_tables where owner = 'SYSDBA' and table_name like 'DMHS%' and status = 'VALID';

检查触发器的语句:

select owner, trigger_name from dba_triggers where owner = 'SYSDBA' and trigger_name like 'DMHS%' and status = 'Y';

(8) Mysql数据库需求

创建dmhs的数据库同步用户dmhs

需要在mysql 库上创建一个用户dmhs需要DBA权限。

DMHS目标库约束/触发器限制

约束

DMHS同步过程中,需将将执行端MYSQL表中的外键禁用,否则,在对外键引用表进行更新时,可能会引起执行端MYSQL数据库操作错误。

触发器

DMHS同步过程中,需将将执行端MYSQL中的存在DML操作的触发器禁用,否则,在通过过程中,会对触发器操作的表进行二次操作,导致同步结果错误。

2.部署

(1)安装dmhs

根据数据库的类型选择不同版本DMSH安装包DMHSInstall.bin上传到安装目录下并且赋予该文件可执行权限:

./ DMHSInstall.bin -i

根据安装指引

选择安装语言

选择英文安装(这里选择的只是安装语言)。

选择密钥key文件

请选择key文件的位置。

选择安装类型

默认选择标准安装(1)

选择安装路径

选择DMHS的安装目录

是否初始化

选择统一部署

(2)源端配置文件(例子)

在dmhs的执行目录下

vi dmhs.hs

<?xml version="1.0" encoding="GB2312" standalone="no"?>

<dmhs>

    <base>

        <lang>ch</lang>

        <version>2.0</version>

        <mgr_port>5345</mgr_port>

        <chk_interval>3</chk_interval>

        <ckpt_interval>60</ckpt_interval>

        <siteid>1</siteid>

    </base>

    <cpt>

        <db_type>DM7</db_type>

        <db_server>192.168.73.101</db_server>

        <db_port>5236</db_port>

        <db_user>SYSDBA</db_user>

        <db_pwd>SYSDBA</db_pwd>

        <char_code>PG_GB18030</char_code>

        <ddl_mask>TABLE:OPERATION</ddl_mask>--配置ddl

       <arch>

            <clear_interval>600</clear_interval>

            <clear_flag>0</clear_flag>

        </arch>

        <send>

            <ip>192.168.56.102</ip>

            <mgr_port>5345</mgr_port>

            <data_port>5346</data_port>

             <net_turns>0</net_turns>

             <crc_check>0</crc_check>

             <trigger>0</trigger>

             <constraint>0</constraint>

             <identity>0</identity>

            <filter>

                <enable>

                    <item>TESTA.*</item>--需要同步的白名单

                </enable>

                <disable>

                    <item>TESTA.TABLE_1</item>--过滤的表

                </disable>

            </filter>

            <map>

              <item>TESTA.*==TESTA.*</item>--映射关系(模式名.*==数据库名.*)

            </map>

        </send>

    </cpt>

</dmhs>

(3)目的端配置文件

在dmhs的执行目录下

vi dmhs.hs

<?xml version="1.0" encoding="GB2312" standalone="no"?>

<dmhs>

    <base>

        <lang>ch</lang>

        <mgr_port>5345</mgr_port>

        <chk_interval>3</chk_interval>

        <ckpt_interval>60</ckpt_interval>

        <siteid>2</siteid>

    </base>

    <recv>

        <data_port>5346</data_port>

        <exec>

            <db_type>MYSQL</db_type>

            <db_name>TESTA</db_name>---数据库名,所以一个dmhs配置一个数据库名

            <db_server>192.168.73.102</db_server>

            <db_user>root</db_user>

            <db_pwd>root</db_pwd>

            <db_port>3306</db_port>

            <level>0</level>

            <exec_mode>1</exec_mode>

            <exec_thr>8</exec_thr>

            <exec_sql>1024</exec_sql>

            <exec_trx>5000</exec_trx>

            <exec_rows>1000</exec_rows>

            <case_sensitive>1</case_sensitive>

            <toggle_case>0</toggle_case>

            <exec_policy>2</exec_policy>  

            <ddl_continue>1</ddl_continue>

            <commit_policy>1</commit_policy>

            <enable_merge>1</enable_merge>

            <affect_row>0</affect_row>

        </exec>

    </recv>

</dmhs>

(4)开启dmhs服务

配置后台启动脚本

在bin目录的service_template中复制DmhsService到bin中

vi DmhsService找到以下内容进行修改

DMHS_HOME=/home/mysql/dmhs  ---dmhs安装路径

#REPLACE program dir

PROG_DIR=/home/mysql/dmhs/bin  ---dmhs执行路径

#REPLACE program config path

CONF_PATH=/home/mysql/dmhs/bin/dmhs.hs  --配置文件dmhs.hs的路径

启动dmhs服务

进入bin目录执行 ./dmhs_serverd start

开启目的端

进入bin目录登录控制台

./dmhs_console

connect ip:mgr_port

开启exec

start exec

 开启源端

配置后台启动脚本

在bin目录的service_template中复制DmhsService到bin中

vi DmhsService找到以下内容进行修改

DMHS_HOME=/home/dm/dmhs  ---dmhs安装路径

#REPLACE program dir

PROG_DIR=/home/dm/dmhs/bin  ---dmhs执行路径

#REPLACE program config path

CONF_PATH=/home/dm/dmhs/bin/dmhs.hs  --配置文件dmhs.hs的路径

启动dmhs服务

进入bin目录执行 ./dmhs_serverd start

开启源端

进入bin目录登录控制台

./dmhs_console

connect ip:mgr_port

装载字典

LOAD 0 “SCH.NAME=’TESTA’ ”DICT  

开启cpt

Start cpt

(5) 部署期间遇到的问题

问题1:

原因是以为mysql connect odbc驱动版本和mysql8版本差距太大,建议要用相同版本的

问题2:

如果发现目的数据库没有数据过去,而且日志没有报错,检查<db_name>配置,这个配置区分大小写

问题3:

一般在设置同步映射关系是

模式名.表名==数据库.表名

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值