达梦7数据守护和读写分离搭建

   在部署之前,需要在4台机器上安装达梦数据库。数据库为DM7,安装路径为'/dbdata',执行程序保在/home/dmdba/dm/dmdbms/bin′目录中,数据存放路径为'/dbdata'。具体主备库配置如下。

192.168.72.101 主机服务名DM01
192.168.72.102 备机服务名DM02
192.168.72.103 备机服务名DM03
192.168.72.104 监视器

数据守护部署

1、dm.ini配置
主库101配置如下:

  INSTANCE_NAME = DM01            --实例名字
  PORT_NUM =  5236                --数据库实例监听端口
  DW_PORT = 33141                 --守护环境下,监听守护进程连接端口
  ALTER_MODE_STATUS  = 0         --不允许手工方式修改实例模式/状态
  ENABLE_OFFLINE_TS  = 2           --不允许备库OFFLINE表空间
  MAL_INI =  1                      --打开MAL系统
  ARCH_INI=  1                      --打开归档配置
	备库102配置如下:
	INSTANCE_NAME = DM02          
   	PORT_NUM =  5236              
   	DW_PORT = 33142                
    ALTER_MODE_STATUS  = 0        
    ENABLE_OFFLINE_TS  = 2           
    MAL_INI =  1                     
    ARCH_INI=  1                   
	备库103配置如下:
	INSTANCE_NAME = DM03          
    PORT_NUM =  5236              
    DW_PORT = 33143                
    ALTER_MODE_STATUS  = 0        
    ENABLE_OFFLINE_TS  = 2          
    MAL_INI =  1                     
    ARCH_INI=  1                     

2、dmmal.ini配置
配置 MAL系统,各主备库的 dmmal.ini配置必须完全一致,MAL_HOST使用内部网络IP,MAL_PORT与dm.ini中PORT_NUM使用不同的端口值,MALDWPORT是各实例对应的守护进程之间,以及守护进程和监视器之间的通信端口,配置如下:

MAL_CHECK_INTERVAL   = 5     --MAL链路检测时间间隔
MAL_CONN_FAIL_INTERVAL  = 5  --判定MAL链路断开的时间
[MAL_INST1]
MAL_INST_NAME     = DM01  --实例名,和dm.ini中的INSTANCE_NAME一致
MAL_HOST           = 192.168.72.101   --MAL系统监听TCP连接的IP地址
MAL_PORT           = 61141    --MAL系统监听TCP连接的端口
MAL_INST_HOST      = 192.168.72.101    --实例的对外服务IP地址
MAL_INST_PORT = 5236 --实例的对外服务端口,和dm.ini中的PORT_NUM一致
MAL_DW_PORT  = 52141  --实例对应的守护进程监听TCP连接的端口  
[MAL_INST2]  
MAL_INST_NAME          = DM02
MAL_HOST               = 192.168.72.102 
MAL_PORT               = 61142 
MAL_INST_HOST          = 192.168.72.102  
MAL_INST_PORT          = 5236 
MAL_DW_PORT   = 52142
[MAL_INST3]  
MAL_INST_NAME          = DM03
MAL_HOST               = 192.168.72.103 
MAL_PORT               = 61143 
MAL_INST_HOST          = 192.168.72.103  
MAL_INST_PORT          = 5236 
MAL_DW_PORT   = 52143 

3、配置 dmarch.ini
修改 dmarch.ini,配置本地归档和即时归档。除了本地归档外,其他归档配置项中的ARCH_DEST表示实例是 Primary模式时,需要同步归档数据的目标实例名。
例如:当前实例 DM01 是主库,需要向即时备库 DM02/ DM03同步数据,因此即时归档的ARCH_DEST分别配置为 DM02和DM03。

[ARCHIVE_TIMELY1]
ARCH_TYPE     = TIMELY   --即时归档类型
ARCH_DEST     = DM02    --即时归档目标实例名
[ARCHIVE_TIMELY2]
ARCH_TYPE     = TIMELY   --即时归档类型
ARCH_DEST     = DM03    --即时归档目标实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE     = LOCAL    --本地归档类型
ARCH_DEST     = /dbarch   --本地归档文件存放路径
ARCH_FILE_SIZE    = 128   --单位Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT  = 0    --单位Mb,0表示无限制,范围1024~4294967294M

4、配置dmwatcher.ini
修改 dmwatcher.ini配置守护进程,配置为全局守护类型,使用自动切换模式。

[GRP1]
DW_TYPE    = GLOBAL   --全局守护类型
DW_MODE    = AUTO   --自动切换模式
DW_ERROR_TIME     = 10   --远程守护进程故障认定时间
INST_RECOVER_TIME  = 60   --主库守护进程启动恢复的间隔时间
INST_ERROR_TIME   = 10     --本地实例故障认定时间
INST_OGUID         = 453332   --守护系统唯一OGUID值
INST_INI           = /dbdata/DAMENG/dm.ini   --dm.ini配置文件路径
INST_AUTO_RESTART  = 1   --打开实例的自动启动功能
INST_STARTUP_CMD   = /home/dmdba/dm/dmdbms/bin/dmserver/   --命令行方式启动
RLOG_SEND_THRESHOLD  = 0 --指定主库发送日志到备库的时间阀值,默认关闭
RLOG_APPLY_THRESHOLD = 0  --指定备库重演日志的时间阀值,默认关闭

5、配置 dmwatcher.ctl
同一个守护进程组,必须使用同一份 dmwatcher.ctl。因此,只需要使用 dmctlcvt工具生成一份 dmwatcher.ct1文件,然后分别拷贝到各个数据库目录下即可。
在配置完成 dmwatcher.ini后,使用dmctlcvt工具生成dmwatcher.ctl:
./dmctlcvt TYPE=3 SRC=/dbdata/DAMENG/dmwatcher.ini DEST=/dbdata
拷贝生成的 dmwatcher.ctl文件到数据文件目录/dbdata/DAMENG。
在这里插入图片描述

6、 启动主备库
以mount方式启动数据库
./dmserver /dbdata/DAMENG/dm.ini mount
在这里插入图片描述

  注:一定要以mount 方式启动数据库实例,否则系统启动时会重构回滚表空间,生成 Redo日志;并且,启动后应用可能连接到数据库实例进行操作,破坏主备库一致性。数据守护配置成功后,守护进程会自动open数据库。

7、设置OGUID
启动命令行工具 disql,登录主库设置 OGUID 值。
SQL>sp_set_oguid(453332);
注:系统通过OGUID值确定一个守护进程组,由用户保证 OGUID 值的唯一性,并确保数据守护系统中,数据库、守护进程和监视器配置相同的 OGUID值。
8、修改数据库模式
启动命令行工具 disql,登录主库修改数据库为primary模式,备库修改成standby模式
第1步
SQL>SP_SET_PARA_VALUE(1,‘ALTER_MODE_STATUS’,1);
第2步
备库修改 : SQL>alter database standby;
主库修改 :SQL>alter database primary;
第3步
SQL>SP_SET_PARA_VALUE(1, ‘ALTER_MODE_STATUS’,0);
9、配置监视器
由于主库和即时备库的守护进程配置为自动切换模式,因此这里选择配置确认监视器。和普通监视器相比,确认监视器除了相同的命令支持外,在主库发生故障时,能够自动通知即时备库接管为新的主库,具有自动故障处理的功能。
注:故障自动切换模式下,必须配置确认监视器,且确认监视器最多只能配置一个
修改 dmmonitor.ini 配置确认监视器,其中 MON_DW_IP中的 IP和 PORT 和dmmal.ini中的MAL_HOST和MAL_DW_PORT 配置项保持一致。

10、启动守护进程
启动各个主备库上的守护进程:
./dmwatcher /dbdata/DAMENG/dmwatcher.ini
守护进程启动后,进入 startup 状态,此时实例都处于 mount状态。守护进程开始广播自身和其监控实例的状态信息,结合自身信息和远程守护进程的广播信息,守护进程将数据库切换为 open状态。
11、 启动监视器
启动监视器:
./dmmonitor /dbdata/dmmonitor.ini
至此读写分离集群搭建完毕,在监视器上执行show命令,可以监控到所有实例都处于open状态,所有守护进程也都处于open状态,即为正常运行状态。

参考文章:https://blog.csdn.net/YLmpm/article/details/116521082

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值