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

集群搭建关键步骤描述,

  一、集群的搭建需要在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]$ ./dmrman
dmrman V8
RMAN> backup database '/DM/dmdata/DAMENG/dm.ini' full backupset '/DM/dmbak/db_fullback';

传输备份文件到备库

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

备库还原恢复更新magic值

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

[dmdba@localhost bin]$ ./dmrman 
dmrman V8
RMAN> 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.ini

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

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

vi dmmal.ini

MAL_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_02
MAL_HOST = 192.168.100.102
MAL_PORT = 61142 
MAL_INST_HOST = 192.168.100.102
MAL_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                            #自动切换模式 如果是非确认监视器配置手动切换 MANUAL
DW_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              = 5236
DW_INACTIVE_INTERVAL  = 60        #接收守护进程消息超时时间
ALTER_MODE_STATUS  = 0              #不允许手工方式修改实例模式/状态/OGUID
ENABLE_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/SYSDBA

SP_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.ini

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

确认监视器

vi dmmonitor.ini

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

 

集群搭建到此完成。

猜你喜欢

转载自blog.csdn.net/weixin_46458436/article/details/113524110