专栏/培训园地/ 文章详情 /

【与梦同行】达梦8数据守护集群搭建经验分享

圆宝YuKi 2024/06/14 821 1 0
摘要

前言

达梦数据守护集群搭建在日常工作中应用较为广泛,作为达梦学员,这点需要有充足的耐心,学习能力,和学会查看日志解决问题的能力。

前置条件和准备

一、练习机准备

准备三台虚拟机,如麒麟操作系统,主机名分别为H1、H2、H3,其中H1为主机,H2为备机,H3为监视器。

二、网络准备

1、确保三台虚拟机的IP被设置为静态ip,且网络互通。
使用ping命令辅助排查。
2、确保三台服务器的防火墙是关闭的。
命令参考:
systemctl status firewalld ---查看防火墙状态
systemctl stop firewalld---关闭防火墙
systemctl disable firewalld---永久禁用防火墙

三、数据库准备

1、H1机器上初始化实例DMSVR01,数据库DM01,初始化用户DMTEST,在DMTEST用户下新建一个表test(id int,NAME VARCHAR(50))
2、H1机器上脱机备份数据库DM01(脱机代表的是数据库需要先停止)
此处备份可选择命令dmrman或者console工具图形化操作。
此处不再赘述。
3、传输H1机器上的数据库备份到H2机器。
4、H2机器上初始化实例DMSVR02,数据库DM01。
5、H2机器上的实例DMSVR02,数据库DM01.还原H1机器传输过来的备份,确保两个实例的魔数一模一样。切记!!!切记!!!切记!!!
6、H3机器上不需要初始化实例,但是需要安装达梦数据库软件,便于后续监视器的启动和运行。

实操

一、主机:H1机器上操作:

数据库需要先关闭:
1、修改 dm.ini 参数文件如下:
ALTER_MODE_STATUS = 0
ENABLE_OFFLINE_TS = 2
MAL_INI = 1
ARCH_INI = 1

2、配置归档日志文件:
[dmdba@localhost DAMENG]$ cat dmarch.ini
ARCH_WAIT_APPLY = 0
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME
ARCH_DEST = DMSVR02 /* 此处配置备机的实例名 */
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm8/arch
ARCH_FILE_SIZE = 64
ARCH_SPACE_LIMIT = 0
ARCH_FLUSH_BUF_SIZE = 0
ARCH_HANG_FLAG = 1

3、配置 dmmal.ini 文件
MAL_CHECK_INTERVAL = 5
MAL_CONN_FAIL_INTERVAL = 5
[MAL_INST1]
MAL_INST_NAME = DMSVR01
MAL_HOST = 192.168.240.101 /主机IP/
MAL_PORT = 15236
MAL_INST_HOST = 192.168.240.101 /主机IP/
MAL_INST_PORT = 5236
MAL_DW_PORT = 65101
MAL_INST_DW_PORT = 45101
[MAL_INST2]
MAL_INST_NAME = DMSVR02
MAL_HOST = 192.168.240.102 /备机IP/
MAL_PORT = 15236
MAL_INST_HOST = 192.168.240.102 /备机IP/
MAL_INST_PORT = 5236
MAL_DW_PORT = 65101
MAL_INST_DW_PORT = 45101

4、配置 dmwatcher.ini 文件
[GRP1]
DW_TYPE = GLOBAL
DW_MODE = AUTO
DW_ERROR_TIME = 10
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 10
INST_OGUID = 453331
INST_INI = /dm8/data/DM01/dm.ini
INST_AUTO_RESTART = 1
INST_STARTUP_CMD = /dm8/bin/dmserver
RLOG_SEND_THRESHOLD = 0
RLOG_APPLY_THRESHOLD = 0

5、将主库启动到 mount 状态
[dmdba@localhost bin]$ ./dmserver /dm8/data/DAMENG/dm.ini Mount/
6 、修改主库的配置(登录/dm8/bin目录里的disql操作)
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SQL>sp_set_oguid(453331);
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
SQL>alter database primary;

二、备机:H2机器上操作:

数据库需要先关闭
1、需要和主库一样配dm.ini,dmmal.ini,dmarch.ini,dmwatcher.ini
需要注意的是:
备机上的dmarch.ini中
ARCH_DEST = DMSVR01 /* 此处配置主机的实例名 */
需要注意各ini文件里的文件目录是否与主机一致,不一致则需要修改。
2、启动备库到 mount 状态
[dmdba@localhost bin]$
./dmserver /dm8/data/DM01/dm.ini mount
3、修改备库的配置(登录/dm8/bin目录里的disql操作)
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SQL> sp_set_oguid(453331);
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
SQL> alter database standby;

三、主机和备机:H1和H2机器同时操作:

分别启动主库和备库上的守护进程
[dmdba@localhost bin]$ ./dmwatcher /dm8/data/DM01/dmwatcher.ini

四、监视器:H3机器上操作:

1、配置dmmonitor.ini
其中MON_INST_ODUID=453331(即主机和备机设置的oguid,需要保持一致)
image.png

2、链接监视器
[dmdba@localhost data]$ /dm8/bin/dmmonitor /dm8/data/dmmonitor.ini

3、登录监视器
login
用户名:sysdba 密码:sysdba的密码

4、切换主备:
switchover
注意:此时需要观察切换主备是否成功,如不成功,则需要排查数据守护进程日志、监视器日志等定位具体问题,具体问题具体分析。

5、退出监视器
exit

验证

1、在主机H1对应数据库DM01里输入语句:(可使用disql登录或者manager图形化工具)
inert into test (1,'TEST01');
commit;

2、在备机H2对应的数据库DM01里输入语句:(可使用disql登录或者manager图形化工具)
select * from test ;

3、观察备机的DM01数据库里的test表是否存在主机插入的数据'TEST01',如成功,则代表集群搭建成功。

注册集群数据守护进程服务和监视器服务

将数据守护进程服务和监视器服务注册到系统服务里,可以直接走系统服务列表,启动或者停止数据守护,而无需在终端使用命令行启动,便于管理。

一、主机和备机上注册数据守护进程服务

H1主机上如下操作:

1、cd进入 /dm8/scripts/root
[root@localhost ~]# cd /dm8/script/root/
2、执行以下命令注册数据守护进程:
[root@localhost ~]#./dm_service_installer.sh -t dmwatcher -p DMSVR01 -watcher_ini /dm8/data/DM01/dmwatcher.ini

H2备机上如下操作:

1、cd进入 /dm8/scripts/root
[root@localhost ~]# cd /dm8/script/root/
2、执行以下命令注册数据守护进程:
[root@localhost ~]#./dm_service_installer.sh -t dmwatcher -p DMSVR02 -watcher_ini /dm8/data/DM01/dmwatcher.ini

二、监视器上注册监视器服务

H3监视器上如下操作:

1、cd进入 /dm8/scripts/root
[root@localhost ~]# cd /dm8/script/root/
2、执行以下命令注册监视器服务:
[root@localhost root]#./dm_service_installer.sh -t dmmonitor -monitor_ini /dm8/data/dmmonitor.ini -p monitor

经验总结

实际搭建过程中可能会出现各种各样的问题,大家要学会查看日志,数据守护进程的日志存在/dm8/log目录,其中dm8为数据库安装目录。
image.png
可以使用tail -n命令查看,此处不再赘述。

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服