【DMHS】dmhs部署ORACLE到达梦

Dmhs部署
————————
达梦软件与ODBC已安装完成
——————————————
目的端部署
[dmdba@localhost dmhs]$ ./dmhs_V4.1.48_dm8_rev102088_FTarm_kylin4_64_veri_20210914.bin -i
Extract install files…

1.英文(English)
2.简体中文(简体中文)
请选择安装语言[2.简体中文(简体中文)]:
/tmp/DMHSInstall/install.log
1.免费试用达梦数据实时同步
2.使用已申请的Key文件
验证许可证文件[1.免费试用达梦数据实时同步]:2
Key文件路径:/opt/dmhsEE048220.key (一定要带key安装,否则容易出问题)
Key文件限制信息如下:
有效日期:2022-09-25
用户名称:达梦公司产品试用
服务器颁布类型:试用版
发布类型:企业版
Key类型:企业版
授权用户数:无限制
并发连接数:无限制
1.精简版
2.完整版(web客户端)
3.自定义
安装类型[1.精简版]:2 (这里安装的是web版,之后搭建管理平台)
1.实时同步软件服务器
2.远程部署工具
3.实时同步软件客户端
4.内置数据库
5.实时同步软件配置助手
6.手册
所需磁盘空间:650 MB
安装目录: [/home/dmdba/dmhs]/dmhs
该路径不为空,是否继续安装?[Y or N]y
安装路径可能存在覆盖安装
1.统一部署
2.现在初始化
是否初始化达梦数据实时同步系统[1.统一部署]:
正在安装
default start … default finished.
server start … server finished.
hs_agent start … hs_agent finished.
webmanager start … webmanager finished.
db start … db finished.
hsca start … hsca finished.
doc start … doc finished.
doc start … doc finished.
postinstall start … postinstall finished.
正在创建快捷方式
安装成功
远程部署工具配置
远程部署工具名称[HsAgent]:
主机Ip(外网)192.168.3.58:192.168.3.58
输入有误,请重新输入!
主机Ip(外网)192.168.3.58:192.168.3.58
远程部署工具管理端口5456:
内置数据库轮询间隔3:
内置数据库IP[192.168.3.58]:
内置数据库端口[15236]:
内置数据库用户名[SYSDBA]:
内置数据库密码[SYSDBA]:
服务脚本环境变量设置
依赖库路径
提示:此配置项供用户配置源或目的数据库依赖库路径和odbc依赖库路径, 多个路径以":"隔开(例:/opt/dmdbms/bin:/usr/local/lib),此配置项会添加到服务脚本的NEED_LIB_PATH的变量值中。
请配置依赖库路径:
内置数据库服务
1.自动
2.手动
启动方式:[2.手动]
正在创建内置数据库服务
初始化内置数据库
远程控制服务
1.自动
2.手动
启动方式:[2.手动]
正在创建远程控制服务
web服务
1.自动
2.手动
启动方式:[2.手动]
正在创建web服务
达梦数据实时同步V4.0安装完成
更多安装信息,请查看安装日志文件:
/dmhs/log/install.log

[dmdba@localhost apache-tomcat-8.5.72]$ cd /dmhs/bin
[dmdba@localhost bin]$ ldd libdmhs_exec.so
    linux-vdso.so.1 =>  (0x00007ffd327fb000)
    libc.so.6 => /lib64/libc.so.6 (0x00007ff87e8c0000)
    libm.so.6 => /lib64/libm.so.6 (0x00007ff87e5be000)
    librt.so.1 => /lib64/librt.so.1 (0x00007ff87e3b6000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007ff87e19a000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00007ff87df96000)
    libdmhs_pub.so => ./libdmhs_pub.so (0x00007ff87dc67000)
    libdmhs_ucvt.so => ./libdmhs_ucvt.so (0x00007ff87d70c000)
    libdmhs_dm_obj.so => ./libdmhs_dm_obj.so (0x00007ff87d4f7000)
    libdmhs_cvt.so => ./libdmhs_cvt.so (0x00007ff87d26c000)
    libdodbc.so => /home/dmdba/dmdbms/bin/libdodbc.so (0x00007ff87d040000)
    /lib64/ld-linux-x86-64.so.2 (0x00007ff87f04b000)
    libdmhs_exp.so => ./libdmhs_exp.so (0x00007ff87cc6b000)
    libdmhs_xml.so => ./libdmhs_xml.so (0x00007ff87ca5c000)
    libdmoci.so => /home/dmdba/dmdbms/bin/libdmoci.so (0x00007ff87bd5a000)
    libdmdpi.so => /home/dmdba/dmdbms/bin/libdmdpi.so (0x00007ff87b0e3000)
    libdmfldr.so => /home/dmdba/dmdbms/bin/libdmfldr.so (0x00007ff87a4ad000)
    libdmelog.so => /home/dmdba/dmdbms/bin/libdmelog.so (0x00007ff87a2a6000)
    libdmutl.so => /home/dmdba/dmdbms/bin/libdmutl.so (0x00007ff87a093000)
    libdmclientlex.so => /home/dmdba/dmdbms/bin/libdmclientlex.so (0x00007ff879e60000)
    libdmos.so => /home/dmdba/dmdbms/bin/libdmos.so (0x00007ff879c33000)
    libdmcvt.so => /home/dmdba/dmdbms/bin/libdmcvt.so (0x00007ff879554000)
    libdmstrt.so => /home/dmdba/dmdbms/bin/libdmstrt.so (0x00007ff879340000)
    libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007ff879038000)
    libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007ff878e22000)
    libdmmem.so => /home/dmdba/dmdbms/bin/libdmmem.so (0x00007ff878c15000)
    libdmcalc.so => /home/dmdba/dmdbms/bin/libdmcalc.so (0x00007ff87898f000)
#如果有包找不到就去安装包找,上传到数据库安装目录的bin目录下

配置dmhs.sh
vi /dmhs/bin/dmhs.hs

<?xml version="1.0" encoding="GB2312"?>
  <dmhs>
    <base>
          <lang>en</lang>
          <mgr_port>5345</mgr_port>      #管理端口
          <ckpt_interval>60</ckpt_interval>
          <siteid>2</siteid>
          <version>2.0</version>
    </base>
        <exec>
          <recv>
            <data_port>5346</data_port>
          </recv>
            <db_type>DM8</db_type>
            <db_server>192.168.3.58</db_server>   #本机服务器ip
            <db_user>SYSDBA</db_user>
            <db_pwd>SYSDBA</db_pwd>
            <db_port>5236</db_port>
            <db_name></db_name>
            <exec_thr>8</exec_thr>
            <exec_sql>1024</exec_sql>
            <exec_trx>2000</exec_trx>
            <exec_rows>2000</exec_rows>
            <ddl_continue>1</ddl_continue>
            <affect_row>0</affect_row>
            <exec_policy>2</exec_policy>
            <enable_rowid>0</enable_rowid>
                        <clear_trx_file>1</clear_trx_file>
                        <trx_max_file>8</trx_max_file>
       </exec>
</dmhs>

编辑dmhs服务脚本

[dmdba@localhost bin]$ cp TemplateDmhsService DmhsService
[dmdba@localhost bin]$ vi DmhsService
DMHS_HOME=/dmhs
PROG_DIR=/dmhs/bin
CONF_PATH=/dmhs/bin/dmhs.hs
#REPLACE need library path, LD_LIBRARY_PATH/LIBPATH
NEED_LIB_PATH=
HS_NLS_LANG="AMERICAN_AMERICA.ZHS16GBK"
(dmhs服务脚本要一致)

——————————————————

源端部署

[oracle@gxptdb dmhs]$ ./dmhs_V4.1.48_oracle12_rev102088_rh6_64_veri_20210924.bin -i
Extract install files…

1.英文(English)
2.简体中文(简体中文)
请选择安装语言[2.简体中文(简体中文)]:
/tmp/DMHSInstall/install.log
1.免费试用达梦数据实时同步
2.使用已申请的Key文件
验证许可证文件[1.免费试用达梦数据实时同步]:2
Key文件路径:/opt/dmhsEE048220.key
Key文件限制信息如下:
有效日期:2022-09-25
用户名称:达梦公司产品试用
服务器颁布类型:试用版
发布类型:企业版
Key类型:企业版
授权用户数:无限制
并发连接数:无限制
1.精简版
2.完整版(web客户端)
3.自定义
安装类型[1.精简版]:2
1.实时同步软件服务器
2.远程部署工具
3.实时同步软件客户端
4.内置数据库
5.实时同步软件配置助手
6.手册
所需磁盘空间:850 MB
安装目录: [/home/oracle/dmhs]/dmhs
该路径不为空,是否继续安装?[Y or N]y
安装路径可能存在覆盖安装
1.统一部署
2.现在初始化
是否初始化达梦数据实时同步系统[1.统一部署]:
正在安装
default start … default finished.
server start … server finished.
hs_agent start … hs_agent finished.
webmanager start … webmanager finished.
db start … db finished.
hsca start … hsca finished.
doc start … doc finished.
doc start … doc finished.
postinstall start … postinstall finished.
正在创建快捷方式
安装成功
远程部署工具配置
远程部署工具名称[HsAgent]:
主机Ip(外网)192.168.3.64:192.168.3.64
远程部署工具管理端口5456:
内置数据库轮询间隔3:
内置数据库IP[192.168.3.64]:192.168.3.64
内置数据库端口[15236]:
内置数据库用户名[SYSDBA]:
内置数据库密码[SYSDBA]:
服务脚本环境变量设置
依赖库路径
提示:此配置项供用户配置源或目的数据库依赖库路径和odbc依赖库路径, 多个路径以":"隔开(例:/opt/dmdbms/bin:/usr/local/lib),此配置项会添加到服务脚本的NEED_LIB_PATH的变量值中。
请配置依赖库路径:
Oracle字符集
提示:注意此处配置为ORACLE数据库的NLS_LANG,此配置项由源端数据库字符集编码格式决定,需与源端字符集编码适配。
1.SIMPLIFIED CHINESE_CHINA.ZHS32GB18030
2.SIMPLIFIED CHINESE_CHINA.AL32UTF8
3.TRADITIONAL CHINESE_TAIWAN.ZHT16BIG5
4.TRADITIONAL CHINESE_TAIWAN.AL32UTF8
5.AMERICAN_AMERICA.AL32UTF8
6.AMERICAN_AMERICA.WE8ISO8859P1
7.AMERICAN_AMERICA.WE8ISO8859P15
8.AMERICAN_AMERICA.ZHS16GBK
9.不设置
请配置Oracle字符集[9.不设置]:8
内置数据库服务
1.自动
2.手动
启动方式:[2.手动]
正在创建内置数据库服务
初始化内置数据库
远程控制服务
1.自动
2.手动
启动方式:[2.手动]
正在创建远程控制服务
web服务
1.自动
2.手动
启动方式:[2.手动]
正在创建web服务
达梦数据实时同步V4.0安装完成
更多安装信息,请查看安装日志文件:
/dmhs/log/install.log

检查依赖包是否缺失

[oracle@gxptdb ~]$ cd /dmhs/bin
[oracle@gxptdb bin]$ ldd libcpt_ora.so
    linux-vdso.so.1 =>  (0x00007fff72f89000)
    libc.so.6 => /lib64/libc.so.6 (0x00007f7519184000)
    libm.so.6 => /lib64/libm.so.6 (0x00007f7518e81000)
    librt.so.1 => /lib64/librt.so.1 (0x00007f7518c79000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f7518a5d000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00007f7518858000)
    libdmhs_net.so => ./libdmhs_net.so (0x00007f75185fc000)
    libdmhs_pub.so => ./libdmhs_pub.so (0x00007f75182cd000)
    libdmhs_ld_ora.so => ./libdmhs_ld_ora.so (0x00007f7518067000)
    libdmhs_ucvt.so => ./libdmhs_ucvt.so (0x00007f7517b0c000)
    libclntsh.so.12.1 => ./libclntsh.so.12.1 (0x00007f7514067000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f751985b000)
    libdmhs_bool_parse.so => ./libdmhs_bool_parse.so (0x00007f7513e56000)
    libmql1.so => /u01/app/oracle/product/12.2.0/dbhome_1/lib/libmql1.so (0x00007f7513bdf000)
    libipc1.so => /u01/app/oracle/product/12.2.0/dbhome_1/lib/libipc1.so (0x00007f75137ab000)
    libnnz12.so => /u01/app/oracle/product/12.2.0/dbhome_1/lib/libnnz12.so (0x00007f7513062000)
    libons.so => /u01/app/oracle/product/12.2.0/dbhome_1/lib/libons.so (0x00007f7512e14000)
    libnsl.so.1 => /lib64/libnsl.so.1 (0x00007f7512bf9000)
    libaio.so.1 => /lib64/libaio.so.1 (0x00007f75129f7000)
    libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f75127de000)
    libclntshcore.so.12.1 => /u01/app/oracle/product/12.2.0/dbhome_1/lib/libclntshcore.so.12.1 (0x00007f751220f000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f7511ff9000)

如果依赖包有no found,在root用户用find / -name libmql1.so命令来快速查找。这里找到的包不要使用dmhs安装后的包。

配置dmhs.sh
(1)oracle源端要开启归档和逻辑附加日志

alter database add supplemental log data;
alter database add supplemental log data (all) columns;

归档和逻辑附加日志一定要开启

select SUPPLEMENTAL_LOG_DATA_MIN min,
       SUPPLEMENTAL_LOG_DATA_PK  pk,
       SUPPLEMENTAL_LOG_DATA_UI  ui,
       SUPPLEMENTAL_LOG_DATA_FK  fk,
       SUPPLEMENTAL_LOG_DATA_ALL "all"
  from v$database;

(2)确认是否要开启DDL同步
源端DDL支持:
a.源端数据库必须允许DDL触发器的触发动作,即数据库参数_system_trig_enabled为TRUE或者未设置。show parameter “_system_trig_enabled”;
b.需要在源端数据库以sys用户,在sys模式下创建DDL触发器及DDL记录表,详细参照dmhs_ddl.sql脚本。脚本位于dmhs/scripts下面。
c.需要日志捕获模块对ddl_mask进行设置。例如<ddl_mask>op:obj<ddl_mask>。

(3)vi /dmhs/bin/dmhs.hs

<?xml version="1.0" encoding="GB2312"?>
<dmhs>
        <base>
                <lang>en</lang>
                <mgr_port>5345</mgr_port>
                <ckpt_interval>45</ckpt_interval>
                <siteid>1</siteid>
                <version>2.0</version>
        </base>
        <cpt>
                <db_type>oracle18c</db_type>
                <db_server>orcl</db_server>
                <db_user>SYSDBA</db_user>
                <db_pwd>SYSDBA</db_pwd>      #最好先用空白用户测试
                <ddl_mask>op:obj</ddl_mask>
                <constraint>1</constraint>
                <arch>
                        <clear_interval>600</clear_interval>
                        <clear_flag>0</clear_flag>
                </arch>
                <send>
                        <ip>192.168.3.58</ip>                           #目的端服务器ip
                        <mgr_port>5345</mgr_port>
                        <data_port>5346</data_port>
                        <filter>
                                <enable>
                                        <item>DMHS.*</item>	
					                    <item>TEST.*</item>
                                </enable>
                <disable>
                </disable>
                        </filter>
                           <map>
                            <item>DMHS.*==SYSDBA.*</item>
			                <item>TEST.*==TEST.*</item>
            </map>     #对应的用户映射关系
                </send>
        </cpt>
</dmhs>

[oracle@localhost bin]$ cp TemplateDmhsService DmhsService
[oracle@localhost bin]$ vi DmhsService

DMHS_HOME=/dmhs
PROG_DIR=/dmhs/bin
CONF_PATH=/dmhs/bin/dmhs.hs
#REPLACE need library path, LD_LIBRARY_PATH/LIBPATH
NEED_LIB_PATH=
HS_NLS_LANG="AMERICAN_AMERICA.ZHS16GBK"
(服务脚本字符集要严格一致)

————————————————————————
装载测试
重点:
a.装载数据前,源端执行:clear exec lsn
b.装载一个含中文的测试表,确保装载到目的端的数据不是乱码的。

(1)oracle源端创建一个dmhs.test表:

create table dmhs.test(id int,name varchar2(20));
insert into dmhs.test values(1,'中国');
commit;

(2)开始装载
源端,目的端启动dmhs服务,/dmhs/bin目录下:./DmhsService start
#数据装载前必须先启动dmhs的脚本服务
目的端启动exec模块

[dmdba@db01 ~]$ cd /dmhs/bin
[dmdba@db01 bin]$ ./dmhs_console 
DMHS console tool: V4.1.48-Build(2021.09.09-102088trunc)_D64
DMHS>start exec
execute success
DMHS>

源端启动

[oracle@db01 ~]$ cd /dmhs/bin
[oracle@db01 bin]$ ./dmhs_console  
DMHS console tool: V4.1.48-Build(2021.09.09-102088trunc)_D64
DMHS> connect
execute success
DMHS> clear exec lsn                                              
execute success
DMHS> copy 0 "sch.name='DMHS' and tab.name='TEST'" create|insert
copy mask is : |CREATE|INSERT|TABLE|PARTITION|OBJID|REP
execute finish, please look up log file of exec module to check data load result
DMHS> exit

(3)检查达梦端的数据SYSDBA.TEST是否乱码

SQL> select * from sysdba.test;

行号     ID NAME  
---------- -- ------
1          1  中国

可以看到装载是Ok的,然后可以进行业务用户数据的装载。

(4)可以看下目的端的装载日志

2021-10-21 16:25:54 EXE[INFO]: DDL:SITEID:1 SEQID:0 TRXID:2 schema.lock CREATE
2021-10-21 16:25:54 EXE[INFO]: DDL: SITEID:1 SEQID:0 TRXID:2 SQL:--dmhs ddl, siteid:1, level:2, mask:1
 CREATE TABLE "SYSDBA"."TEST"("ID" NUMBER NULL,"NAME" VARCHAR2(20) NULL)
2021-10-21 16:25:54 EXE[INFO]: set table .SYSDBA.TEST start LSN: 0 LFS: 0
2021-10-21 16:25:54 EXE[INFO]: waiting for site 1 commit complete...
2021-10-21 16:25:54 EXE[WARN]: set table .SYSDBA.TEST start LSN: 1026884 LFS: 0 load rows:1

附加说明:
(1)依赖包缺失,find文件找不到的,可以直接找同名的.so文件,创建软连接;
(2)在ODBC链接正常的情况下,如果dmhs的copy装载,看到报错”数据库无法链接“,可在dmhs的dmhs.hs文件中指定ODBC驱动;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值