关于DMHS的安装与初体验

背景:

        本人是个小菜鸟仅在此对初次尝试使用DMHS的过程进行总结,供各位参考。练习的目的是实现win10系统下DM8与linux系统下DM8的数据同步,ps:linux系统使用的是VMware安装的CentOS7虚拟机。

大致印象:

        首先,我们要知道DMHS是干嘛的,可以简单理解为一个可以提供不同数据库之间数据同步服务的架构,比较简单的工作方式是在源端部署一个捕获器用来收集待同步的数据,发送到目的端的执行器,由执行器进行数据的同步,二者都需要管理模块来维护。

前提条件(可以这么说吧o,o):

        本菜鸟使用的HS版本是V4.1.2,linux系统有两个用户一个root,另一个dmdba。win10与linux里均装有DM8数据库,win10作为源端,虚拟机作为目的端。

一定要说的事:

        1、主机(源端,以下均称作主机,没别的想法就是顺口)的数据库要保证开启归档。DMHS是基于归档、日志重演的方式来实现数据同步的,就是看着主机的归档日志看一下主机做了些啥,然后把日志发给虚拟机(目的端,就叫他虚拟机,哎,就是玩儿=。=)让他照着做一遍,这样数据就同步了。

        2、要保证主机与虚拟机互相能ping通,可能一部分长得好看的要问了:“啊,难道还有一个能ping通,一个ping不通的情况吗?”,还真有,我就是闲的把虚拟机注册的虚拟网卡给卸载了,然后虚拟机能连百度能连主机,主机能百度不能连虚拟机,咋办嘛,只能重装虚拟机了呗,或者大佬自己创建一个虚拟网卡让他关联上虚拟机,反正我不会。

正经步骤:

        1、主机和虚拟机各装一个dmhs工具,没有的自己找,我也是找同事要的,安装的过程中会有一步要填内置数据库的ip,与主机保持一致即可。

        主机最好要用管理员身份运行执行程序,不然可能会出现服务注册不成功的现象,主机的DMHS在安装的时候建议选择完整版,虚拟机装个精简版,完成版多了对比工具、web客户端与内置数据库。(当然理论上讲,虚拟机上可以不装hs,因为目的端的执行器仅需要保证可以连接数据库即可,可以在主机上注册两个Agent(可以理解为MGR模块),一个负责管理主机一个“远程”管理虚拟机,再甚至主机至注册一个Agent管两个hs实例都行,第一次尝试就不考虑这么多了)。

        主机的dmhs要正常运行通常需要注册运行3个系统服务:DmhsAgentServiceHsAgent、DmhsWebService、DmserviceHSDB,第一个是正经hs的管理模块(MGR)服务是必须开启的,后面俩是web和自带的DM7元数据库服务,虚拟机上的hs只需要关注一个DmhsAgentServiceHsAgent进程即可。

        2、装好后,主机里会有个实时同步服务web客户端,或者直接浏览器输http://127.0.0.1:8080/manager/,没错默认web服务是8080端口,请确保他没被别的进程占用哦。如果连不上这个web页面请查看自己上面提到的服务有没有开启。连接后输入用户名密码:admin,888888,登录管理页面。登录后一般会在左上角看到这样的画面,里面有两个HsAgent,对应主机与虚拟机的ip在后面写着。

        如果你没看到或者只看到一个,恭喜你,出问题了,跟我一样,哈哈哈哈哈,嗝~

       

        3、来想想主机的Agent没看到是什么情况呢,一般不会有这种情况,除非你的DmhsAgentServiceHsAgent启动失败,怎么会启动失败呢,端口(5456)占用?没有用管理员安装DMHS(压根没注册)?少驱动包(ODBC、OCI都有可能)?看看日志吧能找到问题的,日志在hs安装目录下的hs_agent/log。端口占用了杀占用的进程或者万能重启试试,没注册上就把hs卸载了重新用管理员安装一下试试(最笨的办法,大佬忽略)。

        

        4、虚拟机的Agent没看到也无非上面的几种情况,很好,我都遇到了,看看我的踩坑过程吧。

        查看一下DmhsAgentServiceHsAgent服务的状态:

        可看到他是失败的,先来看看 Agent的配置(请忽略乱码,,中文!!!),

         可以看出来,agent配置的端口是5456,我们尝试通过配置文件启动服务,告诉我们绑定端口失败,看看是不是老的dmhs进程没杀掉,果然,

         在kill老的dmhs进程后,通过配置文件启动服务,显示结果DMHS AGENT IS READ,但是!查看他的状态,还是失败!!!咋肥四呢,换root瞎试试。

        可以看到,提示,不能打开PID文件巴拉巴拉, 回头一看hs安装目录,这个pids文件夹的所属用户居然是root?????小白迷惑脸QAQ,这是安装包存在的bug,怎么办嘛,我只是个菜鸟罢了,改一下文件夹的用户总行了吧,

        ???还是失败, 再改一下服务配置试试?

         

        

         改了DmhsAgentServiceHsAgent.service 之后,还要执行一下 systemctl daemon -reload命令让他生效,这样总行了吧?

         啊~,他好了!我们再看看这个pids文件夹的内容

         没错,他之前是空的!到此为止,我们就可以在web页面中看到两个Agent了。

        5、接下来就该创建hs实例了,右键单击HsAgent(你的虚拟机的ip地址),新建hs实例。!!!注意先建目的端的执行器!!!注意不要选前端命令方式启动,要选系统服务方式!!!剩下的按照自己虚拟机的实际情况填。然后右击你的主机对应的Agent添加hs实例,新建捕获器,,,,此时可能会惊喜的发现,啊~我的目的端执行器连接不上,hhhh这就对了,我也连不上。

        我遇到了什么问题呢?查看日志(这是hs实例,日志在hs安装目录下的INST_HS里找),发现,libdmhs_exec.so加载失败??嘛回事呢??

        

         哦~~~少俩包啊,这俩货在DM8安装包里?????解压一看,嘿,

        还真在这里!!! 当初装DM8的时候还觉得这几个文件没用呢!没办法把他们依赖路径加进来试试 

         

 

         注意!那个DmhsServiceexec_linux1是每个人不同的具体看你的hs实例名,不过路径是一样的,都是hs安装路径下的INST_HS下面。做完回头再一看web,哎,执行器连上了。到现在基本上就可以同步数据了。

        6、一般情况下,到这一步,web界面的主机监控部分可以看到两个主机(主机与虚拟机),但是本菜鸟发现自己只能监控一个虚拟机??一看日志,少一个配置文件上哪儿说理去?sigar-amd64-winnt.dll就是这个东西,他应该放到主机的hs安装目录下INST_STAT下的(捕获器名称)目录下,这个目录相当于hs实例的守护进程的工作目录,一个hs实例对应一个守护进程。问同事要了这个配置文件后,可以监控到主机了。没有这个文件也不影响数据同步,只是不能监控主机性能啥的罢了,(可能影响真不大吧,我只是个菜鸟我能怎么办呢?难道还能把百度网盘提取码发给你们嘛?https://pan.baidu.com/s/1JAQEzzOJlC9dSVlPaZf6nQ  ,,,,1314)

 

        7、接下来终于可以进行数据同步了,这里仅作简单演示,其余功能供大家去开发,演示的是主机的SYSDBA下的所有表同步到虚拟机的SYSDBA下。web上右击主机端捕获器,修改配置,为其添加过滤规则与映射规则:

         修改保存后,执行两个命令clear exec lsn,copy 0 "sch.name='SYSDBA'" DICT,表示从当前状态开始,同步SYSDBA模式下的数据。我们试着在主机的数据库中新建一个表并插入一条数据:

         查看虚拟机数据库发现并没有同步过来,而且web上报错:

         在目的端并没有创建新表,这是因为DMHS无法自动同步DDL操作,需要借助辅助表,具体的执行脚本在hs安装目录下的scripts目录下:

         将其运行后,会生成9张辅助表与四个触发器,再次尝试新建表并插入数据:

 

        发现目的端得到了同步数据,在web中亦可查看到此操作: 

         至此,终于完成了dmhs的最简单的操作实例,新人菜鸟,不足之处请指正(@_@)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值