达梦双机
Posted 下士闻道
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了达梦双机相关的知识,希望对你有一定的参考价值。
1.命令行工具只能是在本机执行,通过client端连接之后返回的就是mount状态
2.两边数据库需要是一致的,可以通过拷贝数据文件方式实现的,数据文件是指.dbf文件
3.除了dbf文件还要拷贝dm_service.prikey文件
4.如果是命令行启动,需要设置INST_STARTUP_MODE值为1,通过工具安装启动的是服务那么可以是0(通过服务查看器,可以看到工具是以服务方式启动的)
5.dmwatch.ini文件中的注解头“[GROUP_M010]”一定要和监控配置文件dmwmon.ini里面的MON_GROUP_NAME字段内容保持一致;
6.配置状态是需要在mount状态下面,进行配置;比如alter database primary/standby;以及首次的设置oguid值(sp_set_oguid);这些操作都是需要数据库首先是启动状态;但是这些参数的修改不能是在打开状态(OPEN)下,只能是在配置(MOUNT)状态下进行,我理解这是因为数据状态需要读取配置信息,为了使得修改能够生效,所以修改只能是在mount状态;使用数据只能是在OPEN状态下;
7.在状态切换的设计上,状态是不能直接进行切换守护进程的启动是STANDUP,读取配置成功后进入到了OPEN状态,同时设置数据库有MONUT状态变为open状态;
8.数据库模式:NORMAL,PRIMARY以及STANDBY三种状态,前者是正常数据(没有主备),中间是主机(基于主备模式),最后是备机(基于主备模式);
9.数据库的状态:MOUNT,配置状态(上面介绍了);OPEN,打开状态,可以对外提供服务;SUSPEND,类似于open,可以对外服务,但是限制用户写入,这个状态用于在执行REDO操作的时候,切换到此状态下;
10.监控器里面的startup以及stop功能只是守护进程的监控功能的开启和关闭,守护进程饼干不能关闭
11.MAL的作用其实是很说明哪两台机器要进行主备,MAL是达梦的通信组件,守护进程对外收发消息都是通过MAL组件(配置)
12.OGUID一定是通过mount之后,手工进行配置;在配置文件中只是在dmwatch.ini中有定义OGUID,但是那个不是配置数据库服务的OGUID,只是告诉守护进程目标服务的OGUID,至于目标数据库的OGUID的配置还是通过sp_set_oguid进行设置;另外理解一下OGUID的本意是唯一标志一个实例,让监控以及守护进程可以直接通过ID来定位实例;主备需要配置成一样的,因为本来他两就是统一对外提供服务;
13.发现一个问题:因为会数据库删除重来(备份一个数据库zip文件,后来直接覆盖以保证文件一致),如果忘记了设置OGUID,那么在启动dmwatcher的时候,将会碰到不断报错,显示“first child process exit! return 4783, this is parent process...;
14.曾经一度发生primary频繁的open<->recovery,后来发现file_lsn以及cur_lsn的值主备不一致(初始化时候是一致的,可能是后来在做手工调配的时候发现的);重新做数据调整,搞定;之所以发现不一致是通过在dmwatch窗口,敲入show来查看主备双方的情况是发现的;
15.可以在应用本机配置一下dm_svc.conf文件,设定serverName=(IP:PORT,IP2:PORT)这样在原主机变为备机后,达梦的driver在访问发现机器状态不对(为STANDBY)会在servername中再找下个IP:PORT进行尝试,直到发现可以的;
以上是关于达梦双机的主要内容,如果未能解决你的问题,请参考以下文章