暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

【干货攻略】DMHS命令行搭建部署——DM8至DM8

达梦E学 2021-11-05
1327

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



本章介绍DMHS命令行搭建部署的方式


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

①操作系统:CentOS 7.6;

②数据库版本:DM8

③DMHS版本:DMHS 4.1.2

关键词:DMHS


✦ 一、部署前准备工作 ✦ 


1.1、源端目的端都修改dm.ini参数,设置归档标记和逻辑日志标记:

    ARCH_INI=1
    RLOG_APPEND_LOGIC=1

    重启数据库实例后查询数据库归档状态

      SQL> select arch_mode from v$database;

      LINEID ARCH_MODE
      ---------- ---------
      1 Y
      used time: 3.236(ms). Execute id is 123.

      可以用如下语言查询数据库附加日志状态

        SQL> select * from v$dm_ini where para_name='RLOG_APPEND_LOGIC';

        LINEID PARA_NAME PARA_VALUE MIN_VALUE MAX_VALUE
        ---------- ----------------- ---------- --------- ---------
        1 RLOG_APPEND_LOGIC 1 0 2

        used time: 2.016(ms). Execute id is 125.

          

        1.2、源端目的端都配置dmarch.ini(归档日志):

          [ARCHIVE_LOCAL1]
          ARCH_TYPE = LOCAL
          ARCH_DEST = home/dmdba/dmarch #归档目录
          ARCH_FILE_SIZE = 128 #归档文件大小,单位 MB
          ARCH_SPACE_LIMIT = 2048#空间大小限制,0 表示不限制 

          1.3、DDL同步配置:

          执行DDL同步脚本方式。在源端DM7/DM8数据库中以SYSDBA用户执行DDL同步脚本,在SYSDBA模式下创建相关DMHS系统表及触发器,并在DMHS配置文件中配置ddl_mask参数选项以启用该功能。

            ./disql
            SQL> conn SYSDBA/rootrootroot
            SQL> start opt/ddl_sql_dm8.sql
            SQL> exit

            ✦ 二、安装部署 ✦ 

            2.1、目的端部署流程

            先启动目的端,配置dmhs.hs:

              <?xml version="1.0" encoding="GB2312" standalone="no"?>
              <dmhs>
              <base>
              <lang>ch</lang>
              <mgr_port>5345</mgr_port>
              <name>exec</name>
              <ckpt_interval>60</ckpt_interval>
              <siteid>3</siteid>
              <version>2.0</version>
              </base>
              <exec>
              <recv>
              <mgr_port>5345</mgr_port> <!-- 接收管理端口-->
              <data_port>5346</data_port> <!-- 接收数据端口-->
              </recv>
              <db_type>DM8</db_type>
              <db_server>127.0.0.1</db_server>
              <db_user>SYSDBA</db_user> <!-- 数据库用户名-->
              <db_pwd>SYSDBA</db_pwd> <!-- 数据库用户名的密码-->
              <db_port>5236</db_port><!-- 数据库端口号-->
              </exec>
              </dmhs>
                [dmdba@localhost bin]$ ./dmhs_server dmhs.hs

                2.2、配置源端 

                进入bin目录,配置dmhs.hs:

                  <?xml version="1.0" encoding="GB2312" standalone="no"?>
                  <dmhs>
                  <base>
                  <lang>ch</lang>
                  <mgr_port>5345</mgr_port> <!-- 管理端口号-->
                  <ckpt_interval>60</ckpt_interval> <!-- 检查点间隔-->
                  <siteid>1</siteid> <!-- 源端站点编号-->
                  </base>
                  <cpt>
                  <db_type>DM8</db_type>
                  <db_server>127.0.0.1</db_server>
                  <db_user>SYSDBA</db_user> <!--数据库用户名-->
                  <db_pwd>SYSDBA</db_pwd>
                  <db_port>5236</db_port> <!--源端数据库监听端口号-->
                  <idle_time>10</idle_time> <!—cpt休眠时间-->
                  <parse_thr>1</parse_thr>
                  <ddl_mask>OP:OBJ:REC</ddl_mask> <!--DDL同步参数-->
                  <arch>
                  <clear_interval>60</clear_interval> <!--归档日志清理间隔(s)-->
                  <clear_flag>0</clear_flag> <!--归档删除标识-->
                  </arch>
                  -->
                  <send>
                  <ip>192.168.209.129</ip> <!--投递到下一级的ip地址-->
                  <mgr_port>5345</mgr_port> <!--下一级的管理端口-->
                  <data_port>5346</data_port> <!--下一级的NET模块监听端口-->
                  <net_turns>0</net_turns>
                  <trigger>1</trigger>
                  <constraint>1</constraint>
                  <identity>1</identity>
                  <filter> <!--过滤规则-->
                  <enable>
                  <item>SYSDBA.*</item>
                  </enable>
                  <disable/>
                  </filter>
                  <map> <!--映射规则-->
                  </map>
                  </send>
                  </cpt>
                    [dmdba@localhost bin]$ ./dmhs_server dmhs.hs

                      

                    2.3、F&Q

                    启动执行模块时出现错误,库文件libdmhs_exec.so未找到

                    此时要卸载dmhs重装,因为执行端装了精简版,应该装web版

                    在dmhs目录下卸载,./uninst.sh -i

                    重新安装,然后修改环境变量:

                      export LD_LIBRARY_PATH=/home/dmdba/dmhs/bin:/home/dmdba/dmhs/db/bin

                      让环境变量生效source home/dmdba/.bash_profile后,查询一下:


                      ✦ 三、初始装载 ✦ 

                      DMHS初始装载有两种:初始字典装载和初始数据装载。

                      DMHS同步源端在首次启动日志分析进行数据同步之前,需要进行初始字典装载操作,在程序目录下创建DICT文件夹,并将同步表的字典信息写入文件保存在磁盘上,然后才能启动源端日志分析模块功能。
                      初始数据装载主要用于将同步源端的数据装载到目的端,保持源端和目的端的数据初始一致。如果没有数据装载的需求,可以不用进行该操作。


                      3.1、启动目的端执行服务

                      初次启动目的端DMHS服务时,同步执行服务并未开启,需要使用DMHS控制台工具连接DMHS管理服务,手动输入start exec命令开启。


                      3.2、进行初始字典装载

                        copy  0 " sch.name='SYSDBA' " DICT


                        3.3、F&Q

                        出现错误:libcpt_dm8.so未找到

                        排查后发现精简安装缺少这个,可以从另一个虚拟机上发送过来

                          scp 192.168.209.181:/home/dmdba/dmhs/db/bin/*.so ./

                          说明:so文件来自于dmdci.zip压缩文件。

                          修改环境变量

                            export LD_LIBRARY_PATH=/home/dmdba/dmhs/bin:/home/dmdba/dmhs/db/bin:/home/dmdba/dmhs/bin/lib


                            重新启动

                              ./dmhs_server dmhs.hs

                              输入:

                                copy 0 " sch.name='SYSDBA' " dict
                                ✦ 四、同步链接测试 ✦ 


                                在搭建完同步链路之后简单测试一下同步

                                4.1 、 DDL同步功能测试

                                使用管理工具,在源端创建两个表:

                                浏览表数据,修改

                                Table_1

                                Table_2 

                                在目的端未发现

                                在源端上操作:

                                  copy 0 "sch.name='SYSDBA'" clear|dict

                                  重新装载离线字典

                                    copy 0 "sch.name='SYSDBA'" create|insert

                                    重新查看

                                    可以发现两张表已装载


                                    4.2 、表修改数据同步功能测试

                                    启动捕获

                                    start cpt

                                    修改表内数据

                                    保存后查看目的端:

                                    两边已同步,证明搭建成功。

                                     

                                    >>> THE END <<<

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



                                     
                                     


                                    相关推荐

                                    干货 | DMDSC四节点安装

                                    干货 | 达梦数据库性能优化-SQL优化总结和案例分析

                                    开班2021年11月DM8-DCP在线认证培训班

                                    开班丨2021年11月DM8-DCA在线认证培训班


                                    内容丨董文昊
                                    编辑丨hh
                                    审核丨林夕


                                    文章转载自达梦E学,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                                    评论