ITPub博客

首页 > 数据库 > 国内数据库 > DM8数据守护集群搭建

DM8数据守护集群搭建

原创 国内数据库 作者:zhangly 时间:2021-04-16 09:41:31 0 删除 编辑

1.    安装规划

1.1. 环境说明

机器名 IP 地址 实例名 备注
Db1  主库 192.168.93.100 GRP1_RWW_01 外部 IP : 192.168.93.100
心跳 IP : 192.168.93.100
Db2  备库 192.168.93.101 GRP1_RWW_02 外部 IP : 192.168.93.101
心跳 IP : 192.168.93.101

注意:正式环境建议绑定双网卡,即一台服务器有两个IP地址(一个内网IP,一个外网IP)。
这里是测试环境,因此都使用同一个IP进行演示。

1.2. 端口说明

 


数据库端口 同 PORT_NUM 节点实例监听守护进程的端口 内网心跳 IP 地址 MAL 监听端口 守护进程端口
实例名 PORT_NUM MAL_INST_PORT MAL_INST_DW_PORT MAL_HOST MAL_PORT MAL_DW_PORT
GRP1_RWW_01 5236 5236 5237 192.168.93.100 5238 5239
GRP1_RWW_02 5236 5236 5237 192.168.93.101 5238 5239


2.准备主库

2.1. 修改dm.ini参数

[dmdba@dw_p DAMENG]$ vi /dm/data/DAMENG/dm.ini


INSTANCE_NAME = GRP1_RWW_01   #实例名

PORT_NUM = 5236                              #数据库实例监听端口,类似Oracle的1521

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次的日志发送信息


2.2. 配置dmmal.ini

配置 MAL 系统,各主备库的 dmmal.ini 配置必须完全一致!

MAL_HOST 使用内部网络IP,

MAL_PORT 与 dm.ini 中 PORT_NUM 使用不同的端口值,

MAL_DW_PORT 是各实例对应的守护进程之间,以及守护进程和监视器之间的通信端口。

配置如下:


[dmdba@dw_p DAMENG]$ vi /dm/data/DAMENG/dmmal.ini

MAL_CHECK_INTERVAL = 5               # MAL链路检测时间间隔秒

MAL_CONN_FAIL_INTERVAL = 5       #判定 MAL 链路断开的时间

[MAL_INST1]                                       # MAL名称,同一个配置文件中MAL名称需保持唯一性

MAL_INST_NAME = GRP1_RWW_01  #数据库实例名,且MAL系统各实例名要保持唯一

MAL_HOST = 192.168.93.100             #内部通信IP地址

MAL_PORT = 5238                             # MAL 监听端口

MAL_INST_PORT = 5236                     #实例监听端口,同dm.ini 中的PORT_NUM保持一致

MAL_INST_HOST = 192.168.93.100    #实例对外服务的IP地址

MAL_DW_PORT = 5239                      #实例守护进程的监听端口

MAL_INST_DW_PORT = 5237             #节点实例监听守护进程的端口

[MAL_INST2]

MAL_INST_NAME = GRP1_RWW_02

MAL_HOST = 192.168.93.101             #内部通信IP地址

MAL_PORT = 5238

MAL_INST_PORT = 5236

MAL_INST_HOST = 192.168.93.101     #实例对外服务的IP地址

MAL_DW_PORT = 5239

MAL_INST_DW_PORT = 5237


2.3 配置dmwatcher.ini

[dmdba@dw_p DAMENG]$ vi /dm/data/DAMENG/dmwatcher.ini

[GRP1] #守护进程组名

DW_TYPE = GLOBAL             #全局守护类型,默认是本地守护LOCAL

DW_MODE = AUTO             #故障自动切换,默认是手动切换MANUAL

DW_ERROR_TIME = 10         #远程守护进程故障认定时间

INST_RECOVER_TIME = 60   #主库守护进程启动恢复的间隔时间

INST_ERROR_TIME = 10       #本地实例故障认定时间

INST_OGUID = 453332         #守护系统唯一 OGUID 值

INST_INI = /dm/data/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   #指定备库重演日志的时间阈值,默认关闭


3.备份主库

su - dmdba

cd /home/dmdba/dmdbms/bin

停止实例

./DmServiceDMSERVER stop


备份主库

./dmrman CTLSTMT=“BACKUP DATABASE ‘/dm/data/DAMENG/dm.ini’ FULL TO BACKUP_FILE1 BACKUPSET ‘/dm/data/DAMENG/bak/BACKUP_FILE_01’”


将备份文件传输至备库

cd /dm/data/DAMENG/bak

scp -r BACKUP_FILE_01 dmdba@192.168.83.101:/dm/


4.启动主库

4.1注册启动服务

su - root

cd /home/dmdba/dmdbms/script/root/


注册服务名为DMSERVER

./dm_service_installer.sh -t dmserver -dm_ini /dm/data/DAMENG/dm.ini -p DMSERVER



修改服务启动状态

su – dmdba

cd /home/dmdba/dmdbms/bin

vi DmServiceDMSERVER

找到START_MODE=open,改为mount


启动该服务

./DmServiceDMSERVER start


4.2 设置OGUID并修改数据库模式

[dmdba@dw_p DAMENG]$ disql SYSDBA/SYSDBA

SQL> SP_SET_PARA_VALUE(1,‘ALTER_MODE_STATUS’,1);

SQL> sp_set_oguid(453332);

SQL> SP_SET_PARA_VALUE(1,‘ALTER_MODE_STATUS’,0);

SQL> alter database primary;


5.准备备库

5.1 拷贝主库的配置文件

将主库的 dm.ini 、 dmmal.ini 、 dmarch.ini 、dmwatcher.ini

四个配置文件传到备库初始化的目录下。


5.2 修改配置文件

修改dm.ini参数

INSTANCE_NAME = GRP1_RWW_02


修改dmarch.ini

ARCH_DEST = GRP1_RWW_01 #备库这边填主库的实例名


注意:dmmail.ini 、dmwatcher.ini 无需修改,两端完全一致


6.恢复备库

su - dmdba

cd /home/dmdba/dmdbms/bin

./dmrman CTLSTMT=“RESTORE DATABASE ‘/dm/data/DAMENG/dm.ini’ FROM BACKUPSET ‘/dm/BACKUP_FILE_01’”


./dmrman CTLSTMT=“RECOVER DATABASE ‘/dm/data/DAMENG/dm.ini’ FROM BACKUPSET ‘/dm/BACKUP_FILE_01’”


./dmrman CTLSTMT=“RECOVER DATABASE ‘/dm/data/DAMENG/dm.ini’ UPDATE DB_MAGIC”


注意:如果报错 [-7170]:Bakres failed to connect DMAP ,需要开启DMAP服务:

[dmdba@db3 bin]$ cd /home/dmdba/dmdbms/bin

[dmdba@db3 bin]$ ./DmAPService start


7.启动备库

7.1 注册启动服务

su - root

cd /home/dmdba/dmdbms/script/root/

./dm_service_installer.sh -t dmserver -dm_ini /dm/data/DAMENG/dm.ini -p DMSERVER

提示注册服务成功


修改服务启动状态

su – dmdba

cd /home/dmdba/dmdbms/bin

vi DmServiceDMSERVER

找到START_MODE=open,改为mount


启动备库至mount

./DmServiceDMSERVER start


7.2 设置OGUID并修改数据库模式

[dmdba@dw_p DAMENG]$ disql SYSDBA/SYSDBA

SQL> SP_SET_PARA_VALUE(1,‘ALTER_MODE_STATUS’,1);

SQL> sp_set_oguid(453332);

SQL> SP_SET_PARA_VALUE(1,‘ALTER_MODE_STATUS’,0);

SQL> alter database standby;


8. 启动守护进程

主备库都启动,操作如下


用root注册成后台服务:

su – root

cd /home/dmdba/dmdbms/script/root

./dm_service_installer.sh -t dmwatcher -watcher_ini /dm/data/DAMENG/dmwatcher.ini -p DMWATCHER


服务名:DmWatcherServiceDMWATCHER


启动守护进进程

service DmWatcherServiceDMWATCHER start


9.配置监视器并启动

任意选择一台机器作为监视器机器(通常装在备库),也可以另找一台新机器装监视器。

vi /dm/data/DAMENG/dmmonitor.ini


MON_DW_CONFIRM = 1 #监视器确认模式:1确认,0非确认

MON_LOG_PATH = /dm/data/log #监视器日志文件存放路径

MON_LOG_INTERVAL = 60 #每隔 60s 定时记录系统信息到日志文件

MON_LOG_FILE_SIZE = 32 #每个日志文件最大 32M

MON_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间

[GRP1] #守护进程组名,与 dmwatcher.ini 中的守护进程组名保持一 致

MON_INST_OGUID = 453332 #组 GRP1内的唯一 OGUID 值

#以下配置为监视器到组 GRP1 的守护进程的连接信息,以IP:PORT的形式配置

#IP 对应 dmmal.ini 中的 MAL_HOST,PORT 对应 dmmal.ini 中的 MAL_DW_PORT

MON_DW_IP = 192.168.93.100:5239

MON_DW_IP = 192.168.93.101:5239


启动监视器

cd /home/dmdba/dmdbms/bin

./dmmonitor /dm/data/DAMENG/dmmonitor.ini


注意:这个启动是窗口形式,运行界面不能关闭。否则监视器就关了。


如果想后开一直开启,可将确认监视器注册为服务:

./dm_service_installer.sh -t dmmonitor -p dmmon01 -i /data/dmdata/dmmonitor.ini


创建服务(DmMonitorServicedmmon01)完成


启动监视器后台服务

service DmMonitorServicedmmon01 start


10. 主备切换

如果是手动开启的监视器,在命令行中 输入相关命令即可:

show global info

显示所有组的全局信息


choose switchover

查看可切换为Primary库的备库列表:


示例:将实例GRP1_RWW_02切换为主库,操作如下:

login

用户名: SYSDBA

密码:

[monitor] 2021-03-15 15:39:03: 登录监视器成功!

switchover GRP1.GRP1_RWW_02

[monitor] 2021-03-15 15:39:22: 开始切换实例GRP1_RWW_01

[monitor] 2021-03-15 15:39:22: 通知守护进程GRP1_RWW_02切换SWITCHOVER状态

[monitor] 2021-03-15 15:39:22: 守护进程(GRP1_RWW_02)状态切换 [OPEN–>SWITCHOVER]

[monitor] 2021-03-15 15:39:23: 切换守护进程GRP1_RWW_02为SWITCHOVER状态成功

[monitor] 2021-03-15 15:39:23: 通知守护进程GRP1_RWW_01切换SWITCHOVER状态switchover GRP1.GRP1_RWW_01


再次查看信息,发现主备已切换:


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69998466/viewspace-2768293/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2021-04-16

  • 博文量
    13
  • 访问量
    20676