失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 达梦数据库——实时主备(数据守护)集群搭建

达梦数据库——实时主备(数据守护)集群搭建

时间:2019-06-03 10:43:21

相关推荐

达梦数据库——实时主备(数据守护)集群搭建

集群搭建关键步骤描述,

一、集群的搭建需要在dmdba用户下进行;

二、主备机两台服务器环境需要保持一致;

三、主机安装完数据库服务程序之后,记得启动一次数据库服务,待启动完成之后,立即停止主机数据库服务,并对主机做全库备机。将备份文件拷贝到备机进行备机还原,根据还原三步曲进行相关操作;

四、配置主机的dm.ini、dmmal.ini、dmarch.ini、dmwatcher.ini等文件。配置完成之后,通过./dmserver /dm8/data/DAMENG/dm.ini mount方式启动服务,注意一定要通过mount方式启动。并修改节点模式为primary; 同时设置ogudi值;

五、配置配备机的dm.ini、dmmal.ini、dmarch.ini、dmwatcher.ini等文件。配置完成之后,通过./dmserver /dm8/data/DAMENG/dm.ini mount方式启动服务,注意一定要通过mount方式启动。并修改节点模式为standby; 同时设置ogudi值;

六、根据配置文件配置监视器。监视器最好放在第三台机器上。

注意主机和备机的INST_OGUID值必须相同,组名必须相同,各服务端口不能重复,除了PORT_NUM端口之外。

初始化主备库(主备库初始化参数保持一致)

主库IP:192.168.100.101 (内部通信与对外提供服务采用同一个IP,在生产环境需要双网卡,保证内部通信与对外提供服务的稳定)

备库IP:192.168.100.102

文件dmdata dmarch dmbak不存在,需要自己手动创建文件,需注意文件属主属组必须是dmdba。

初始化主库(指定实例路径,其余参数采用默认)

[dmdba@localhost bin]$ ./dminit path=/DM/dmdata

初始化备库(指定实例路径,其余参数采用默认)

[dmdba@localhost bin]$ ./dminit path=/DM/dmdata

主备库前台启停一次数据库服务

[dmdba@localhost bin]$ ./dmserver /DM/dmdata/DAMENG/dm.ini

启动成功后,输入exit停服务

同步主备库数据保持一致

主库脱机备份 (如果备份失败可以查看dmap服务是否启动 ps -ef|grep dmap 启动dmap命令./DmAPService start)

[dmdba@localhost bin]$ ./dmrmandmrman V8RMAN> backup database '/DM/dmdata/DAMENG/dm.ini' full backupset '/DM/dmbak/db_fullback';

传输备份文件到备库

[dmdba@localhost dmbak]$ scp -r /DM/dmbak/db_fullback dmdba@192.168.100.102:/DM/dmbak

备库还原恢复更新magic值

备份还原 (如果还原失败确认一下是否备份,还原都使用的是dmdba用户)

[dmdba@localhost bin]$ ./dmrman dmrman V8RMAN> RESTORE DATABASE '/DM/dmdata/DAMENG/dm.ini' FROM BACKUPSET '/DM/dmbak/db_fullback';

备份恢复

RMAN> RECOVER DATABASE '/DM/dmdata/DAMENG/dm.ini' FROM BACKUPSET '/DM/dmbak/db_fullback';

更新magic值

RMAN> RECOVER DATABASE '/DM/dmdata/DAMENG/dm.ini' UPDATE DB_MAGIC;

配置主备集群ini文件

主库

修改主库dm.ini配置文件

[dmdba@localhost DM]$ cd /DM/dmdata/DAMENG/[dmdba@localhost DAMENG]$ vi dm.ini

vi dm.iniINSTANCE_NAME = GRP1_RT_01 PORT_NUM = 5236DW_INACTIVE_INTERVAL = 60 #接收守护进程消息超时时间ALTER_MODE_STATUS =0 #不允许手工方式修改实例模式/状态/OGUIDENABLE_OFFLINE_TS= 2 #不允许备库 OFFLINE 表空间MAL_INI= 1 ARCH_INI= 1 RLOG_SEND_APPLY_MON = 64 #统计最近64次日志发送消息

配置dmmal.ini内部通信配置文件

vi dmmal.iniMAL_CHECK_INTERVAL = 10 #MAL 链路检测时间间隔MAL_CONN_FAIL_INTERVAL = 10 #判定 MAL 链路断开的时间 [MAL_INST1] MAL_INST_NAME = GRP1_RT_01#实例名,和 dm.ini 中的 INSTANCE_NAME 一致MAL_HOST = 192.168.100.101 #MAL 系统监听 TCP 连接的 IP 地址MAL_PORT = 61141 #MAL 系统监听 TCP 连接的端口MAL_INST_HOST = 192.168.100.101 #实例的对外服务 IP 地址MAL_INST_PORT = 5236#实例的对外服务端口,和 dm.ini 中的 PORT_NUM 一致MAL_DW_PORT = 52141 #实例本地的守护进程监听 TCP 连接的端口 (监视器连接端口)MAL_INST_DW_PORT = 33141#实例监听守护进程 TCP 连接的端口 [MAL_INST2] MAL_INST_NAME = GRP1_RT_02MAL_HOST = 192.168.100.102MAL_PORT = 61142 MAL_INST_HOST = 192.168.100.102MAL_INST_PORT = 5236 MAL_DW_PORT = 52142 MAL_INST_DW_PORT = 33142

配置dmarch.ini归档配置文件

注:备库需要修改ARCH_DEST为GRP1_RT_01。

配置本地归档和实时归档。当前实例 GRP1_RT_01 是主库,需要向 GRP1_RT_02(实时备库)同步数据,因此实时归档的 ARCH_DEST 配置为 GRP1_RT_02。

vi dmarch.ini[ARCHIVE_REALTIME]ARCH_TYPE = REALTIME #实时归档类型ARCH_DEST = GRP1_RT_02 #实时归档目标实例名(备库实例名) [ARCHIVE_LOCAL1]ARCH_TYPE = LOCAL#本地归档类型ARCH_DEST = /DM/dmarch#本地归档文件存放路径ARCH_FILE_SIZE = 2048 #单位 Mb,本地单个归档文件最大值 (建议不小于2G)ARCH_SPACE_LIMIT = 20480 #单位 Mb,0 表示无限制,范围 1024~4294967294M

配置dmwatcher.ini守护配置文件

vi dmwatcher.ini[GRP1]DW_TYPE = GLOBAL#全局守护类型DW_MODE = AUTO #自动切换模式 如果是非确认监视器配置手动切换 MANUALDW_ERROR_TIME = 10 #远程守护进程故障认定时间INST_RECOVER_TIME = 60#主库守护进程启动恢复的间隔时间INST_ERROR_TIME = 10 #本地实例故障认定时间INST_OGUID = 453331 #守护系统唯一 OGUID 值INST_INI = /DM/dmdata/DAMENG/dm.ini #dm.ini 配置文件路径INST_AUTO_RESTART = 1 #打开实例的自动启动功能INST_STARTUP_CMD = /DM/dmdbms/bin/dmserver #命令行方式启动RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阈值,默认关闭 RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阈值,默认关闭

备库

修改备库dm.ini配置文件

[dmdba@localhost DM]$ cd /DM/dmdata/DAMENG/[dmdba@localhost DAMENG]$ vi dm.ini

INSTANCE_NAME = GRP1_RT_02 PORT_NUM = 5236DW_INACTIVE_INTERVAL = 60 #接收守护进程消息超时时间ALTER_MODE_STATUS =0 #不允许手工方式修改实例模式/状态/OGUIDENABLE_OFFLINE_TS= 2 #不允许备库 OFFLINE 表空间MAL_INI= 1 ARCH_INI= 1 RLOG_SEND_APPLY_MON = 64 #统计最近64次日志发送消息

dmmal.ini (与主机保持一致)

dmwatcher.ini 同主

配置备库dmarch.ini归档配置文件

vi dmarch.ini[ARCHIVE_REALTIME]ARCH_TYPE = REALTIME #实时归档类型ARCH_DEST = GRP!_RT_01 #实时归档目标实例名(主库实例名) [ARCHIVE_LOCAL1]ARCH_TYPE = LOCAL#本地归档类型ARCH_DEST = /DM/dmarch#本地归档文件存放路径ARCH_FILE_SIZE = 2048#单位 Mb,本地单个归档文件最大值ARCH_SPACE_LIMIT = 20480 #单位 Mb,0 表示无限制,范围 1024~4294967294M

主备库mount启动,设置数据库状态

主库 (如果./disql连接失败报错:socket连接失败,可以指定端口号登录./disql SYSDBA/SYSDBA:5236 )

cd /DM/dmdbms/bin./dmserver /DM/dmdata/DAMENG/dm.ini mount#前台mount方式启动数据库./disql SYSDBA/SYSDBA#disql命令行登录数据库SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);sp_set_oguid(453331);alter database primary; #配置为主库状态SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

配置完成后exit退出,再次登录确定数据库是否处于主库状态

备库

cd /DM/dmdbms/bin./dmserver /DM/dmdata/DAMENG/dm.ini mount #数据库mount方式前台启动./disql SYSDBA/SYSDBASP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);sp_set_oguid(453331);alter database standby;#配置为备库状态SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

再次登录,确定是否处于备库状态

主备库前台启动数据库守护

主库

./dmwatcher /DM/dmdata/DAMENG/dmwatcher.ini

备库

./dmwatcher /DM/dmdata/DAMENG/dmwatcher.ini

配置监视器 (IP:192.168.100.103)

配置非确认,确认监视器配置文件

非确认监视器

vi dmmonitor_manual.iniMON_DW_CONFIRM = 0 #确认监视器模式( 0非确认监视器)MON_LOG_PATH = /DM/dmdata/log #监视器日志文件存放路径MON_LOG_INTERVAL = 60 #每隔 60s 定时记录系统信息到日志文件MON_LOG_FILE_SIZE = 32 #每个日志文件最大 32MMON_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间[GRP1]MON_INST_OGUID = 453331 #组 GRP1 的唯一 OGUID 值#以下配置为监视器到组 GRP1 的守护进程的连接信息,以“IP:PORT”的形式配置#IP 对应 dmmal.ini 中的 MAL_HOST,PORT 对应 dmmal.ini 中的 MAL_DW_PORTMON_DW_IP = 192.168.100.101:52141MON_DW_IP = 192.168.100.102:52142

确认监视器

vi dmmonitor.iniMON_DW_CONFIRM = 1 #确认监视器模式( 0非确认监视器)MON_LOG_PATH = /DM/dmdata/log #监视器日志文件存放路径MON_LOG_INTERVAL = 60 #每隔 60s 定时记录系统信息到日志文件MON_LOG_FILE_SIZE = 32 #每个日志文件最大 32MMON_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间[GRP1]MON_INST_OGUID = 453331 #组 GRP1 的唯一 OGUID 值#以下配置为监视器到组 GRP1 的守护进程的连接信息,以“IP:PORT”的形式配置#IP 对应 dmmal.ini 中的 MAL_HOST,PORT 对应 dmmal.ini 中的 MAL_DW_PORTMON_DW_IP = 192.168.100.101:52141MON_DW_IP = 192.168.100.102:52142

前台启动非确认监视器,查看主备集群是否正常(如果启动非确认监视器没有收到主备库信息,在主备集群服务守护正常启动,配置文件都正确的情况下,可以检查一下是否是防火墙没有关闭)

[dmdba@localhost bin]$ ./dmmonitor /DM/dmdata/dmmonitor/dmmonitor_manual.ini

非监视器显示只收到了主库信息,未收到备库信息

检查发现是防火墙未关闭,关闭防火墙

show命令 tip 命令查看集群状态

exit命令退出非确认监视器

注册后台启动服务(root用户执行

主库

注册数据库后台启动服务

[root@localhost ~]# cd /DM/dmdbms/script/root/[root@localhost root]# ./dm_service_installer.sh -t dmserver -dm_ini /DM/dmdata/DAMENG/dm.ini -p GRP1_RT_01 -m mount#注册后台mount启动数据库

注册数据库后台启动数据库守护服务

[root@localhost root]# ./dm_service_installer.sh -t dmwatcher -watcher_ini /DM/dmdata/DAMENG/dmwatcher.ini -p GRP1_RT_01

备库

备库注册后台启动数据库服务,数据库守护服务

[root@localhost root]# ./dm_service_installer.sh -t dmserver -dm_ini /DM/dmdata/DAMENG/dm.ini -p GRP1_RT_02 -m mount[root@localhost root]# ./dm_service_installer.sh -t dmwatcher -watcher_ini /DM/dmdata/DAMENG/dmwatcher.ini -p GRP1_RT_02

监视器

确认监视器注册后台启动服务

[root@localhost root]# ./dm_service_installer.sh -t dmmonitor -monitor_ini /DM/dmdata/dmmonitor/dmmonitor.ini -p GRP1 #指定确认监视器的ini文件

后台启动整个集群服务

启动关闭集群的顺序启动主库服务->备库服务->主库守护->备库守护->监视器关闭监视器->备库守护->主库守护->主库服务->备库服务

[dmdba@localhost bin]$ ./DmServiceGRP1_RT_01 start #启动主库服务[dmdba@localhost bin]$ ./DmServiceGRP1_RT_02 start #启动备库服务[dmdba@localhost bin]$ ./DmWatcherServiceGRP1_RT_01 start #启动主库守护[dmdba@localhost bin]$ ./DmWatcherServiceGRP1_RT_02 start #启动备库守护[dmdba@localhost bin]$ ./DmMonitorServiceGRP1 start #启动监视器

集群搭建到此完成。

如果觉得《达梦数据库——实时主备(数据守护)集群搭建》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。