热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【干货攻略】DM8同步到KAFKA部署手册

数据同步

-----正文-----



本章介绍达梦数据库DM8同步到KAFKA的部署方法


本章内容已在如下环境上测试:

①操作系统:CentOS 7.5;

②数据库版本:DM8

DMHS版本:DMHS V3.1.3

关键词:DMHS、数据同步


✦ 一、安装DMHS ✦ 


1.1 安装:

需要在源端和目的端分别安装dmhs软件,如果为HA双机环境,分别在两台服务器上安装dmhs。

1.1.1 将安装包上传至服务器,并授予可执行权限

    [root@bigdata159 dmdba]#chmod  777 dmhs_V3.1.3_dm8-kafka_rev82884sp3_rh7_64_veri_20190617.bin

    1.1.2运行安装程序 

      ./dmhs_V3.1.3_dm8-kafka_rev82884sp3_rh7_64_veri_20190617.bin -i

      1.1.3输入key文件

        [root@bigdata159 dmdba]# ./dmhs_V3.0.2.01_dm7_rock4.2_64\(20151009\).bin  -i
        Extract install files.........
        Welecom to DMHS Install Program
        Require Space:100M
        Whether to input the path of Key File? (Y/y:yes N/n:No)[Y/y]Y
        Please Input the Path of the Key File [dmhs.key]:/home/dmdba/dmhs.key

        1.1.4 输入安装路径

          Please input the install path [/opt/dmhs]:/home/dmdba/dmhs
          Available Space :1488M
          Please Confirm the install path?(Y/y:yes N/n:No)[Y/y]Y

          1.1.5 输入安装参数

          []中的为默认值,直接输入回车选择默认值,该步骤参数也可以随便填写,后期通过配置修改。其中源端和目的端的siteid要设置的不同(如源端使用1,目的端使用2)。

            Please input the language (ch/en)[ch]:ch
            Please input the mgr_port (1000-65535)[5345]:
            Please input the chk_interval (1-60) second[3]:
            Please input the ckpt_interval (10-65536) second[60]:
            Please input the siteid (0-65536):1
            Whether to config statistical analysis? (Y/y:Yes N/n:No)[Y/y]
            Please input the database type (dm7/dm6/oracle)[dm7]:
            Please input the status collection Interval (0-60)[5]:
            Please input the database IP:127.0.0.1
            Please input the database port (1000-65535)[5236]:
            Please input the database user name:SYSDBA
            Please input the database user password:SYSDBA


            1.2 配置

            1.2.1修改源端和目的端dmhs.xml配置文件

            源端配置内容如下:


              <dmhs>
              <base>
              <lang>chlang>
              <mgr_port>5345mgr_port>
              <chk_interval>3chk_interval>
              <ckpt_interval>60ckpt_interval>
              <siteid>1siteid>
              <version>2.0version>
              base>
              <cpt>
              <db_type>dm8db_type>
              <db_server>127.0.0.1db_server>
              <db_user>SYSDBAdb_user>
              <db_pwd>SYSDBAdb_pwd>
              <db_port>5236db_port>
              <dict_dir>/home/dmdba/dm/dmhs_kafka/dmhs_dictdict_dir>
              <char_code>PG_GB18030char_code>
              <arch>
              <clear_interval>600clear_interval>
              <clear_flag>1clear_flag>
              arch>
              <send>
              <ip>10.147.232.159ip>
              <mgr_port>5345mgr_port>
              <data_port>5346data_port>
              <net_pack_size>256net_pack_size>
              <net_turns>0net_turns>
              <crc_check>0crc_check>
              <identity>0identity>
              <filter>
              <enable>
              <item>*.*item>
              enable>
              <disable/>
              filter>
              <map>
              map>
              send>
              cpt>
              dmhs>

              目的端配置文件内容如下:


                <dmhs>
                <base>
                <lang>chlang>
                <mgr_port>5345mgr_port>
                <chk_interval>3chk_interval>
                <ckpt_interval>60ckpt_interval>
                <siteid>2siteid>
                <version>2.0version>
                base>
                <exec>
                <recv>
                <data_port>5346data_port>
                recv>
                <db_name>db_name>
                <exec_thr>1exec_thr>
                <case_sensitive>0case_sensitive>
                <exec_policy>2exec_policy>
                <toggle_case>0toggle_case>
                <commit_policy>1commit_policy>
                <enable_merge>0enable_merge>
                <is_kafka>1is_kafka>
                exec>
                dmhs>

                如果源端和目的端在同一台服务器可以把配置集合到一起。

                1.2.2 源端数据库修改配置参数

                修改dm.ini中参数RLOG_APPEND_LOGIC=1

                开启归档日志ARCH_INI=1,(一般默认未开启)增加归档配置文件dmarch.ini:

                  [ARCHIVE_LOCAL1]
                  ARCH_TYPE= LOCAL
                  ARCH_DEST= dbarch/dmarch
                  ARCH_FILE_SIZE= 512
                  ARCH_SPACE_LIMIT= 300000

                  1.2.3 在源端数据库建立数据库对象

                  为了同步DDL操作和维护源端字典信息,使用SYSDBA用户建立下面的数据库对象。该脚本以相应版本安装目录中./scripts/ddl_sql_dm8.sql为准。


                  1.3 目的端KAFKA相关设置

                  1.3.1 查看当前有哪些topic

                    [dmdba@master kafka_2.11-1.1.0]$ bin/kafka-topics.sh --list --zookeeper localhost:2181

                    1.3.2 创建一个topic

                      [dmdba@master kafka_2.11-1.1.0]$ bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic DMHS
                      [dmdba@master kafka_2.11-1.1.0]$ bin/kafka-topics.sh --list --zookeeper localhost:2181 DMHS

                      1.3.3 查看消费者的界面是否有消息推送过来

                        [dmdba@master kafka_2.11-1.1.0]$ bin/kafka-console-consumer.sh --bootstrap-server 10.147.232.159:9092 --topic DMHS --from-beginning

                        注:以上红色部分为创建的topic话题,需要和后期启动脚本中的话题名称一致,区分大小写。


                        ✦ 二、启动同步服务 ✦ 

                        如果源端和目的端在同一服务器只需启动一个进程即可,在两台服务器需要分别启动。本篇以在同一台服务器举例。


                        2.1. 启动DMHS服务

                        2.1.1  启动脚本

                        启动之前将kafka目录下的libs目录的文件,全部copy 至dmhs软件bin目录下

                        创建DMHS服务启动脚本名为start_dmhs_kafka.sh,内容如下:

                          #!/bin/sh
                          export.GBK
                          export LD_LIBRARY_PATH=/home/dmdba/dm/dmdbms/bin:/home/dmdba/dm/dmhs_kafka/bin
                          java -Djava.ext.dirs="/home/dmdba/dm/dmhs_kafka/bin" com.dameng.dmhs.dmga.service.impl.ExecDMHSKafkaService home/dmdba/dm/dmhs_kafka/bin/dmhs.hs 10.147.232.159:9092 DMHS

                          说明:

                          ①"/home/dmdba/dm/dmhs_kafka/bin"为kafka的libs目录以及DMHS 辅助jar包路径。

                          ②com.dameng.dmhs.dmga.service.impl.ExecDMHSKafkaService 为DMHS实现kafka同步服务的类名。

                          ③/home/dmdba/dm/dmhs_kafka/bin/dmhs.hs为DMHS配置文件dmhs.xml。

                          ④10.147.232.159:9092为kafka集群节点。

                          ⑤DMHS 为topic话题。topic可选,如果不填写topic,则每张表会建一个topic,名称即为表名。指定topic的话所有的表都填写在一个topic中,该topic话题必须和KAFKA话题一致。

                          以上各项路径参数根据实际环境进行修改。建议使用jdk1.7以上版本。

                          2.1.2. 启动服务

                          进入启动脚本目录,使用dmdba用户执行:

                            [dmdba@bigdata159 ~/dmhs_kafka/bin]$./start_dmhs_kafka.sh

                            DMHS执行服务自动启动并监听相应数据端口。

                            启动的时候如果有个报错,库文件 libdmhs_exec_dll.so 未找到,如下图所示:

                              [dmdba@bigdata159 ~/dmhs_kafka/bin]$ldd libdmhs_exec_dll.so

                              原因是有依赖问题,ldd一下把依赖解决就好。


                              处理过程中遇到缺少libodbc.so.1的动态库需要安装一下unixodbc。操作如下:

                              1) 安装 UNIXODBC-2.3.0 的方法。

                                将压缩包上传到 linux usr/local 下,然后执行
                                [root@bigdata159 usr/local]#tar -xzf unixODBC-2.3.0.tar.gz
                                [root@bigdata159 /usr/local]#cd unixODBC-2.3.0
                                [root@bigdata159 unixODBC-2.3.0]#./configure
                                [root@bigdata159 unixODBC-2.3.0]#make && make install
                                通过 odbc_config --version 确定odbc安装是否成功

                                2)  拷贝odbc动态库。

                                进入/usr/local/lib/下执行cp libodbc.so.2 到dmhs/bin下libodbc.so.1,然后另起一个终端窗口,进入DMHS目录执行./dmhs_console程序连接DMHS服务,进行字典装载操作后,启动捕获服务:

                                  [dmdba@bigdata159 libs]./dmhs_console
                                  DMHS >connect 223.254.19.139:5345
                                  DMHS >COPY 0 “SCH.NAME=’DMHS’” DICT
                                  DMHS >START CPT

                                  至此,完成DMHS同步服务启动。

                                  2.1.3. 验证DMHS同步至kafka

                                  开启一个消费者界面,目前新版本一个对自动对应一个topic,这里我观察DMHS的推送情况,所以topic就指定DMHS。

                                    ./kafka-console-consumer.sh --bootstrap-server 10.147.232.159:9092 --topic DMHS--from-beginning

                                    >>> THE END <<<

                                    好,以上是本期干货分享内容,希望能给大家带来帮助。



                                     
                                     


                                    相关推荐

                                    干货 | DMHS路由功能体验

                                    干货 | DMMPP动态扩展节点

                                    开班 | 系统了解达梦数据库!DM8-DAE开班招生!

                                    开班 | DM8-DCA(9月第2期)在线培训班开始招生~

                                    内容丨吕祥辉
                                    编辑丨hh
                                    审核丨林夕




                                    推荐阅读
                                    • 基于PgpoolII的PostgreSQL集群安装与配置教程
                                      本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
                                    • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
                                    • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
                                    • 如何自行分析定位SAP BSP错误
                                      The“BSPtag”Imentionedintheblogtitlemeansforexamplethetagchtmlb:configCelleratorbelowwhichi ... [详细]
                                    • Nginx使用AWStats日志分析的步骤及注意事项
                                      本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
                                    • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
                                      本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
                                    • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
                                    • 成功安装Sabayon Linux在thinkpad X60上的经验分享
                                      本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
                                    • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
                                    • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
                                    • RouterOS 5.16软路由安装图解教程
                                      本文介绍了如何安装RouterOS 5.16软路由系统,包括系统要求、安装步骤和登录方式。同时提供了详细的图解教程,方便读者进行操作。 ... [详细]
                                    • 树莓派语音控制的配置方法和步骤
                                      本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
                                    • centos安装Mysql的方法及步骤详解
                                      本文介绍了centos安装Mysql的两种方式:rpm方式和绿色方式安装,详细介绍了安装所需的软件包以及安装过程中的注意事项,包括检查是否安装成功的方法。通过本文,读者可以了解到在centos系统上如何正确安装Mysql。 ... [详细]
                                    • Centos7搭建ELK(Elasticsearch、Logstash、Kibana)教程及注意事项
                                      本文介绍了在Centos7上搭建ELK(Elasticsearch、Logstash、Kibana)的详细步骤,包括下载安装包、安装Elasticsearch、创建用户、修改配置文件等。同时提供了使用华为镜像站下载安装包的方法,并强调了保证版本一致的重要性。 ... [详细]
                                    • 本文介绍了如何使用iptables添加非对称的NAT规则段,以实现内网穿透和端口转发的功能。通过查阅相关文章,得出了解决方案,即当匹配的端口在映射端口的区间内时,可以成功进行端口转发。详细的操作步骤和命令示例也在文章中给出。 ... [详细]
                                    author-avatar
                                    44要和自己交个朋友
                                    这个家伙很懒,什么也没留下!
                                    PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
                                    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有