Linux环境Dm主备集群安装
一.安装前准备
1.1 硬件
操作系统检查: uname -a
cpu架构检查: lscpu
网络环境:使用千兆或千兆以上的网络,并做网卡绑定
1.2 集群规划
A机器 B机器
业务IP 10.127.17.200 10.127.17.201
心跳IP 192.168.1.200 192.168.1.201
实例端口 5236 5236
MAL端口 5336 5336
MAL守护进程端口 5436 5436
守护进程端口 5536 5536
二.集群搭建
1.A机器安装数据库软件,初始化数据库,配置A机器
1.1 开启数据库归档并打开数据库
SQL> alter database mount;
SQL> alter database archivelog;
SQL> alter database add archivelog ‘dest=/home/dmdba/dmdbms/data/DAMENG/arch,type=local,file_size=1024,space_limit=51200’;
SQL> alter database open;
1.2 备份数据库
SQL> backup database backupset ‘/home/dmdba/dmdbms/DAMENG/bak/BACKUP_FILE’;
1.3 修改dm.ini
SQL> backup database backupset ‘/home/dmdba/dmdbms/DAMENG/bak/BACKUP_FILE’;
SQL> SP_SET_PARA_VALUE(2,‘PORT_NUM’,5236);
SQL> SP_SET_PARA_VALUE(2,‘DW_INACTIVE_INTERVAL’,60);
SQL> SP_SET_PARA_VALUE(2,‘ALTER_MODE_STATUS’,0);
SQL> SP_SET_PARA_VALUE(2,‘ENABLE_OFFLINE_TS’,2);
SQL> SP_SET_PARA_VALUE(2,‘MAL_INI’,1);
SQL> SP_SET_PARA_VALUE(2,‘RLOG_SEND_APPLY_MON’,64);
关闭前台实例服务
systemctl stop DmServiceDMSERVER.service
1.4 修改dmarch.ini
Vi /home/dmdba/dmdbms/DAMENG/dmarch.ini
1.5 创建dmmal.ini文件
Vi /home/dmdba/dmdbms/DAMENG/dmmal.ini
MAL_CHECK_INTERVAL = 10 #MAL 链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 10 #判定 MAL 链路断开的时间
MAL_TEMP_PATH = /opt/dmdbms/data/malpath/ #临时文件目录
MAL_BUF_SIZE = 512 #单个 MAL 缓存大小,单位 MB
MAL_SYS_BUF_SIZE = 2048 #MAL 总大小限制,单位 MB
MAL_COMPRESS_LEVEL = 0 #MAL 消息压缩等级,0 表示不压缩
[MAL_INST1]
MAL_INST_NAME = DMSERVER
MAL_HOST = 192.168.40.128 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 5336 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 10.12.21.204 #实例的对外服务 IP 地址
MAL_INST_PORT = 5236 #实例对外服务端口,和 dm.ini 的 PORT_NUM 一致
MAL_DW_PORT = 5436 #实例对应的守护进程监听 TCP 连接的端口
MAL_INST_DW_PORT = 5536 #实例监听守护进程 TCP 连接的端口
[MAL_INST2]
MAL_INST_NAME = DMSERVER2
MAL_HOST = 192.168.40.129
MAL_PORT = 5336
MAL_INST_HOST = 10.12.21.205
MAL_INST_PORT = 5236
MAL_DW_PORT = 5436
MAL_INST_DW_PORT = 5536
1.6 创建dmwatcher.ini
Vi /home/dmdba/dmdbms/DAMENG/dmwatcher.ini
[SERVER1]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = AUTO #MANUAL:故障手切;AUTO:故障自切
DW_ERROR_TIME = 20 #远程守护进程故障认定时间
INST_ERROR_TIME = 20 #本地实例故障认定时间
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
INST_OGUID = 45331 #守护系统唯一 OGUID 值
INST_INI = /home/dmdba/dmdbms/DAMENG/dm.ini #dm.ini 文件路径
INST_AUTO_RESTART = 1 #打开实例的自动启动功能
INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver #命令行方式启动
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阈值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阈值,默认关闭
1.7 拷贝备份文件
拷贝备份文件到B机器 scp
1.8 注册服务
/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmserver -p DMSERVER
-dm_ini /home/dmdba/dmdbms/DAMENG/dm.ini -m mount
/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmwatcher -p Watcher
-watcher_ini /home/dmdba/dmdbms/DAMENG/dmwatcher.ini
三.配置B机器
1.B机器安装数据库软件
1.1 安装数据库软件,初始化实例:
2.恢复数据
[dmdba@c7-02 bin]$ /home/dmdba/dmdbms/bin/dmrman CTLSTMT=" RESTORE DATABASE ‘/home/dmdba/dmdbms/data/DAMENG/dm.ini’ FROM BACKUPSET ‘/home/dmdba/dmdbms/data/DAMENG/bak/BACKUP_FILE’"
[dmdba@c7-02 bin]$ /home/dmdba/dmdbms/bin/dmrman CTLSTMT=" RECOVER DATABASE ‘/home/dmdba/dmdbms/data/DAMENG/dm.ini’ FROM BACKUPSET ‘/home/dmdba/dmdbms/data/DAMENG/bak/BACKUP_FILE’"
[dmdba@c7-02 bin]$ /home/dmdba/dmdbms/bin/dmrman CTLSTMT=" RECOVER DATABASE ‘/home/dmdba/dmdbms/data/DAMENG/dm.ini’ UPDATE DB_MAGIC"
3.B机器替换dmarch.ini
[dmdba@c7-02 DAMENG]$ cat dmarch.ini
#DaMeng Database Archive Configuration file
#this is comments
ARCH_WAIT_APPLY = 0
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /home/dmdba/dmdbms/data/DAMENG/arch
ARCH_FILE_SIZE = 1024
ARCH_SPACE_LIMIT = 51200
[ARCHIVE_REALTIME1]
ARCH_TYPE=REALTIME
ARCH_DEST=DMSERVER
4.配置 dm.ini、dmmal.ini 和 dmwatcher.ini
在 B 机器上配置备库的实例名为 dmserver2,dm.ini 参数修改如下:
INSTANCE_NAME = dmserver2
PORT_NUM = 5236 #数据库实例监听端口
DW_INACTIVE_INTERVAL = 60 #接收守护进程消息超时时间
ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间
MAL_INI = 1 #打开 MAL 系统
ARCH_INI = 1 #打开归档配置
RLOG_SEND_APPLY_MON = 64 #统计最近 64 次的日志重演信息
B 机 器 里 dmmal.ini 、 dmwatcher.ini 与 A 机 器 dmserver 的
dmmal.ini、dmwatcher.ini 相同,参照 A 机器 dmmal.ini、dmwatcher.ini 文件进
行配置,注意:文件的位置是否和A机器相同。
5.注册服务
[root@c7-02 soft]# /home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmserver -p dmserver2 -dm_ini /home/dmdba/dmdbms/data/DAMENG/dm.ini -m mount
[root@c7-02 soft]# /home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmwatcher -p Watcher -watcher_ini /home/dmdba/dmdbms/data/DAMENG/dmwatcher.ini
四.启动服务并修改参数
1.A机器:
systemctl start DmServiceDMSERVER.service
或者进入到bin目录下: ./DmServiceDMSERVER start
修改参数:
SQL> SP_SET_PARA_VALUE(1, ‘ALTER_MODE_STATUS’, 1);
SQL> SP_SET_OGUID(45331);
SQL> ALTER DATABASE PRIMARY;
SQL> SP_SET_PARA_VALUE(1, ‘ALTER_MODE_STATUS’, 0);
2.B机器:
[dmdba@c7-02 bin]$ ./DmServicedmserver2 start
[dmdba@c7-02 bin]$ ./disql sysdba/SYSDBA@10.12.21.205:5236
SQL> SP_SET_PARA_VALUE(1, ‘ALTER_MODE_STATUS’, 1);
SQL> SP_SET_OGUID(45331);
SQL> ALTER DATABASE STANDBY;
SQL> SP_SET_PARA_VALUE(1, ‘ALTER_MODE_STATUS’, 0);
3.A/B服务器启动守护进程
[dmdba@c7-01 bin]$ ./DmWatcherServiceWatcher start
或者前台启动进程:
[dmdba@c7-02 bin]$ ./dmwatcher /home/dmdba/dmdbms/data/DAMENG/dmwatcher.ini
---------------------进程启动后,未把数据库状态启动到open,报错:-------------------
Dmwatcher的log:
查看防火墙状态:
再次查看主备库的状态:
Dmwatcher服务启动成功
五.配置默认监视器
1.测试在备库上配置默认监视器,生产环境中要指定新的一台服务器为默认监视器
2.创建dmmonitor.ini文件
vi /home/dmdba/dmdbms/bin/dmmonitor.ini
MON_DW_CONFIRM = 1
MON_LOG_PATH = …/log
MON_LOG_INTERVAL = 60
MON_LOG_FILE_SIZE = 512
MON_LOG_SPACE_LIMIT = 2048
[SERVER1]
MON_INST_OGUID = 45331
MON_DW_IP = 192.168.40.128:5436
MON_DW_IP = 192.168.40.129:5436
3.注册服务
[root@c7-02 ~]# /home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmmonitor -p Monitor -monitor_ini /home/dmdba/dmdbms/bin/dmmonitor.ini
4.监视器使用
1.前台启动监视器
[dmdba@c7-02 bin]$ ./dmmonitor dmmonitor.ini
2.tip或者show查看集群状态
3.登录监视器
4.查看满足切换条件的实例。
输入命令“choose switchover 组名”查看可切换为主机的实例列表。
5.主备切换
执行命令“switchover SERVER1.DMSERVER2”进行切换。
6.查看当前集群状态
7. 集群状态正常,执行“exit”命令退出监视器
8.启停集群
##启动
##A/B 机器
[dmdba@~]$ /opt/dmdbms/bin/DmWatcherServiceWatcher start
##停止
##A/B 机器
[dmdba@~]$ /opt/dmdbms/bin/DmWatcherServiceWatcher stop
##A 机器
[dmdba@~]$ /opt/dmdbms/bin/DmServiceGRP1_RT_01 stop
##B 机器
[dmdba@~]$ /opt/dmdbms/bin/DmServiceGRP1_RT_02 stop
六.Dm_svc.conf配置
1.简介
dm_svc.conf 是使用达梦数据库时非常重要的配置文件,它包含了达梦各接
口和客户端工具所需要配置的一些参数。通过它可以实现达梦各种集群的读写分
离和均衡负载,且必须和接口/客户端工具位于同一台机器上才能生效。
初始 dm_svc.conf 文件由达梦安装时自动生成。不同的平台生成目录有所
不同,注意相应访问用户需要对该文件有读取权限。
32 位的 DM 安装在 Win32 操作平台下,此文件位于 %SystemRoot%\sys
tem32 目录;
64 位的 DM 安装在 Win64 操作平台下,此文件位于 %SystemRoot%\sys
tem32 目录;
32 位的 DM 安装在 Win64 操作平台下,此文件位于 %SystemRoot%\Sy
sWOW64 目录;
在 Linux 平台下,此文件位于 /etc 目录。
但在某些情况下,所使用的用户没有读取和修改 /etc 目录下文件的权限,
这时就需要将 dm_svc.conf 文件放到有权限的目录下,并修改 url 连接串的内
容。
2.编辑dm_svc.conf文件
TIME_ZONE=(480)
LANGUAGE=(CN)
DMHA=(10.12.21.204:5236,10.12.21.205:5236)
[DMHA]
SWITCH_TIMES=(3)
SWITCH_INTERVAL=(100)
LOGIN_MODE=(0)
3.修改配置工具连接主机名
4.修改jdbc连接串
jdbc:dm://DMHA
文章
阅读量
获赞