关于搭建实时主备的几个问题

自己在平时练习搭建主备集群时遇到了一些问题,简单记录一下,问题不大但都是坑!

 问题一:


环境:Win10,VMware Workstation 15,银河麒麟v10,dm8

场景:在搭建实时主备时,主库和备库均启动到mount状态,但是在启动守护进程之后,发现主备库的状态依然是mount,不是open。

分析:

 (1)主备能够到mount状态,说明之前的操作没什么大的问题,但是启动守护进程却没有任何效果,是否是dmwatcher.ini配置出错呢?检查配置文件的端口和IP信息发现是没有问题的。

 (2)去监视器里边看看有没有什么报错。show一下,发现只有主库的信息,没有备库的信息,如下图。

然后输入tip命令,发现主库不可加入其它实例,同样是没有备库的信息,如下图。

附:如果重新启动监视器报一下错误,先去修改dmmonitor.ini文件中的确认监视器参数(MON_DW_CONFIRM)为0,登录成功之后再修改回去。

 (3)此时锁定问题出在备库上,是什么原因导致监视器收集不到备库的信息呢?网络问题?看看备库防火墙是否关了,确定关掉之后,将主机、备机、监视器分别ping一下,看是否能ping通。结果发现主库ping备库、监视器ping备库都不通。那么什么原因导致网络不通呢?

 (4)考虑到当时的环境是VMware搭建的集群,主机和备机不是同一个阶段配置的,会不会是网络模式的问题呢?打开网络适配器查看设置,发现一个是桥接模式,一个是NAT模式,模式不同当然网络就不通了。其实,通过网段也能猜到是网络模式的问题。

 解决:修改网络模式后,根据新的IP信息修改dmmal.ini和dmmonitor.ini,再次启动数据守护进程,就能启动到open状态了。

 问题二:


 场景:在备机上初始化实例后,没有用disql验证是否能够登录成功,然后就进行来了数据库恢复,修改了dm.ini文件。在搭建集群时,没有用默认端口,而是换了其他端口。

报错:在备机启动到mount状态后,修改数据库模式,发现disql无法正常登录,报错“创建SOCKET失败”。再次修改dm.ini文件的端口号为默认的5236,用disql登录5236还是报错。

 解决:重新初始化实例,用默认端口登录成功之后,退出登录,关闭数据库服务进行数据库恢复,再次将备机启动到mount状态,修改数据库模式时发现此时就可以使用disql正常登录了。

附加小问题: 在同一个数据库上初始化实例时,会有提示是否要覆盖一些配置文件、数据文件等信息,此时最好还是谨慎一些,因为我当初覆盖掉之后,进行备机数据恢复时报错了,说是缺少某个文件。如果不确定覆盖文件会有什么后果,最好还是在一个新的库下边初始化实例。

 问题三:


场景:数据库名不同。在主、备机器上初始化数据库实例时,当时用的是./dminit命令行方式,由于要修改实例名,当时就把所有数字1修改为了2,导致主机数据库名为“DM01”,备机的数据库名为“DM02”。

报错:目前还不确定问题二的报错是否是改问题导致,也是后来才意识到的错误。

 当时使用的命令(在实际操作时一定要将数据库名写成一样的):

 ./dminit path=/dm8/data db_name=DM01 instance_name=DMSVR01 port_num=5236 page_size=16 EXTENT_SIZE=32 LOG_SIZE=500 SYSDBA_PWD=DM01SYSDBA

 ./dminit path=/dm8/data db_name=DM02 instance_name=DMSVR02 port_num=5236 page_size=16 EXTENT_SIZE=32 LOG_SIZE=500 SYSDBA_PWD=DM02SYSDBA

命令行方式创建数据库实例需要注册数据库服务,注册服务要用root。 命令:

 ./dm_service_installer.sh -t dmserver -p DMSVR01 -dm_ini /dm8/data/DM01/dm.ini

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容