集群搭建关键步骤描述,
一、集群的搭建需要在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 #启动监视器
集群搭建到此完成。
如果觉得《达梦数据库——实时主备(数据守护)集群搭建》对你有帮助,请点赞、收藏,并留下你的观点哦!