注册
DataWatch部署
专栏/技术分享/ 文章详情 /

DataWatch部署

Baldwin 2024/02/04 1097 0 0
摘要

一、安装前准备

1.1集群规划

业务IP	192.168.168.81	192.168.168.82
心跳IP	172.16.16.1	172.16.16.2
实例名	GRP1_RT_01	GRP1_RT_02
实例端口	5236	5236
MAL端口	5336	5336
MAL 守护进程端口	5436	5436
守护进程端口	5536	5536
OGUID	45331	45331
守护组	GRP1	GRP1
安装目录	/home/dmdba/dmdbms	/home/dmdba/dmdbms
实例目录	/home/dmdba/dmdbms/data/	/home/dmdba/dmdbms/data/
归档上限	51200	51200

1.2集群架构

image.png

1.3切换模式说明

image.png
• ARCH_WAIT_APPLY 参数,设置为 0:高性能模式;设置为 1:事务一致模式。
• 故障手动切换情境下 ARCH_WAIT_APPLY 只能为 0。故障自动切换情境下 ARCH_WAIT_APPLY 可以为 0,也可以为 1。
• ARCH_WAIT_APPLY 参数设置的判断依据为业务是否要查询备机最新数据。如果需要,则配置为 1(较大性能衰减);如果不需要,则配置为 0。

二、集群搭建

2.1配置A机器

2.1.1 初始化实例并备份数据

初始化实例

启动服务

开启归档

/home/dmdba/dmdbms/bin/disql SYSDBA/SYSDBA@192.168.168.81:5236
ALTER DATABASE MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE ADD ARCHIVELOG 'DEST=/home/dmdba/dmdbms/data/DAMENG/arch, TYPE=LOCAL, FILE_SIZE=1024, SPACE_LIMIT=51200';
ALTER DATABASE OPEN;

备份数据

BACKUP DATABASE BACKUPSET '/home/dmdba/dmdbms/data/DAMENG/bak/BACKUP_FILE';


修改 dm.ini

SP_SET_PARA_VALUE (2,'PORT_NUM',5236);
SP_SET_PARA_VALUE (2,'DW_INACTIVE_INTERVAL',60);
SP_SET_PARA_VALUE (2,'ALTER_MODE_STATUS',0);
SP_SET_PARA_VALUE (2,'ENABLE_OFFLINE_TS',2);
SP_SET_PARA_VALUE (2,'MAL_INI',1);
SP_SET_PARA_VALUE (2,'RLOG_SEND_APPLY_MON',64);

关闭前台实例服务

2.1.2 修改 dmarch.ini

vim /home/dmdba/dmdbms/data/DAMENG/dmarch.ini

ARCH_WAIT_APPLY            = 0   #0:高性能 1:事务一致
[ARCHIVE_LOCAL]
ARCH_TYPE                = LOCAL  #本地归档类型
ARCH_DEST                = /home/dmdba/dmdbms/data/DAMENG/arch/  #本地归档存放路径
ARCH_FILE_SIZE           = 1024  #单个归档大小,单位 MB
ARCH_SPACE_LIMIT         = 51200  #归档上限,单位 MB

[ARCHIVE_REALTIME1]
ARCH_TYPE                = REALTIME  #实时归档类型
ARCH_DEST                = GRP1_RT_02  #实时归档目标实例名

2.1.3 创建 dmmal.ini

vim /home/dmdba/dmdbms/data/DAMENG/dmmal.ini

MAL_CHECK_INTERVAL         = 10  #MAL 链路检测时间间隔
MAL_CONN_FAIL_INTERVAL     = 10  #判定 MAL 链路断开的时间
MAL_TEMP_PATH              = /home/dmdba/dmdbms/data/malpath/  #临时文件目录
MAL_BUF_SIZE               = 512  #单个 MAL 缓存大小,单位 MB
MAL_SYS_BUF_SIZE           = 2048  #MAL 总大小限制,单位 MB
MAL_COMPRESS_LEVEL         = 0  #MAL 消息压缩等级,0 表示不压缩

[MAL_INST1]
MAL_INST_NAME            = GRP1_RT_01  #实例名,和 dm.ini 的 INSTANCE_NAME 一致
MAL_HOST                 = 172.16.16.1  #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT                 = 5336  #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST            = 192.168.168.81  #实例的对外服务 IP 地址
MAL_INST_PORT            = 5236  #实例对外服务端口,和 dm.ini 的 PORT_NUM 一致
MAL_DW_PORT              = 5436  #实例对应的守护进程监听 TCP 连接的端口
MAL_INST_DW_PORT         = 5536  #实例监听守护进程 TCP 连接的端口

[MAL_INST2]
MAL_INST_NAME            = GRP1_RT_02
MAL_HOST                 = 172.16.16.2
MAL_PORT                 = 5336
MAL_INST_HOST            = 192.168.168.82
MAL_INST_PORT            = 5236
MAL_DW_PORT              = 5436
MAL_INST_DW_PORT         = 5536

2.1.4 创建 dmwatcher.ini

vi /home/dmdba/dmdbms/data/DAMENG/dmwatcher.ini

[GRP1]
DW_TYPE                  = GLOBAL  #全局守护类型
DW_MODE                  = MANUAL  #MANUAL:故障手切 AUTO:故障自切
DW_ERROR_TIME            = 20  #远程守护进程故障认定时间
INST_ERROR_TIME          = 20  #本地实例故障认定时间
INST_RECOVER_TIME        = 60  #主库守护进程启动恢复的间隔时间
INST_OGUID               = 45331  #守护系统唯一 OGUID 值
INST_INI                 = /home/dmdba/dmdbms/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  #指定备库重演日志的时间阈值,默认关闭

2.1.5 拷贝备份文件

scp -r /home/dmdba/dmdbms/data/DAMENG/bak/BACKUP_FILE 172.16.16.2:/home/dmdba/dmdbms/data/DAMENG/bak


2.1.6 注册服务

/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmserver -p GRP1_RT_01 -dm_ini /home/dmdba/dmdbms/data/DAMENG/dm.ini -m mount

/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmwatcher -p Watcher -watcher_ini /home/dmdba/dmdbms/data/DAMENG/dmwatcher.ini

若要删除自启,可利用如下方式:

/home/dmdba/dmdbms/script/root/dm_service_uninstaller.sh -n DmServiceGRP1_RT_01

/home/dmdba/dmdbms/script/root/dm_service_uninstaller.sh -n DmWatcherServiceWatcher

2.2 配置 B 机器

2.2.1 初始化实例

/home/dmdba/dmdbms/bin/dminit PATH=/home/dmdba/dmdbms/data/ INSTANCE_NAME=GRP1_RT_02 PAGE_SIZE=32 EXTENT_SIZE=32 LOG_SIZE=2048


2.2.2 恢复数据

/home/dmdba/dmdbms/bin/dmrman CTLSTMT="RESTORE DATABASE '/home/dmdba/dmdbms/data/DAMENG/dm.ini' FROM BACKUPSET '/home/dmdba/dmdbms/data/DAMENG/bak/BACKUP_FILE'"
/home/dmdba/dmdbms/bin/dmrman CTLSTMT="RECOVER DATABASE '/home/dmdba/dmdbms/data/DAMENG/dm.ini' FROM BACKUPSET '/home/dmdba/dmdbms/data/DAMENG/bak/BACKUP_FILE'"
/home/dmdba/dmdbms/bin/dmrman CTLSTMT="RECOVER DATABASE '/home/dmdba/dmdbms/data/DAMENG/dm.ini' UPDATE DB_MAGIC"

2.2.3 替换 dmarch.ini

vim /home/dmdba/dmdbms/data/DAMENG/dmarch.ini

ARCH_WAIT_APPLY            = 0  #0:高性能  1:事务一致

[ARCHIVE_LOCAL]
ARCH_TYPE                = LOCAL  #本地归档类型
ARCH_DEST                = /home/dmdba/dmdbms/data/DAMENG/arch/  #本地归档存放路径
ARCH_FILE_SIZE           = 1024  #单个归档大小,单位 MB
ARCH_SPACE_LIMIT         = 51200  #归档上限,单位 MB

[ARCHIVE_REALTIME1]
ARCH_TYPE                = REALTIME  #实时归档类型
ARCH_DEST                = GRP1_RT_01  #实时归档目标实例名

2.2.4 配置 dm.ini、dmmal.ini 和 dmwatcher.ini

vim /home/dmdba/dmdbms/data/DAMENG/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                                           #打开 MAL 系统
ARCH_INI = 1                                         #打开归档配置
RLOG_SEND_APPLY_MON = 64             #统计最近 64 次的日志重演信息
配置 dmmal.ini 和 dmwatcher.ini
B 机器里 dmmal.ini、dmwatcher.ini 与 A 机器 GRP1_RT_01 的 dmmal.ini、dmwatcher.ini 相同,参照 A 机器 dmmal.ini、dmwatcher.ini 文件进行配置。


2.2.5 注册服务

/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmserver -p GRP1_RT_02 -dm_ini /home/dmdba/dmdbms/data/DAMENG/dm.ini -m mount

/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmwatcher -p Watcher -watcher_ini /home/dmdba/dmdbms/data/DAMENG/dmwatcher.ini

若要删除自启,可利用如下方式:

/home/dmdba/dmdbms/script/root/dm_service_uninstaller.sh -n DmServiceGRP1_RT_02

/home/dmdba/dmdbms/script/root/dm_service_uninstaller.sh -n DmWatcherServiceWatcher

2.3 配置监视器

• 手动切换:集群各节点的 bin 目录中,存放非确认监视器配置文件。
• 自动切换:在确认监视器上(非集群节点),存放确认监视器配置文件,并注册后台自启服务。

2.3.1 创建 dmmonitor.ini

vi /home/dmdba/dmdbms/bin/dmmonitor.ini

MON_DW_CONFIRM             = 1  #0:非确认(故障手切) 1:确认(故障自切)
MON_LOG_PATH               = ../log  #监视器日志文件存放路径
MON_LOG_INTERVAL           = 60  #每隔 60s 定时记录系统信息到日志文件
MON_LOG_FILE_SIZE          = 512  #单个日志大小,单位 MB
MON_LOG_SPACE_LIMIT        = 2048  #日志上限,单位 MB

[GRP1]
MON_INST_OGUID           = 45331  #组 GRP1 的唯一 OGUID 值
MON_DW_IP                = 172.16.16.1:5436  #IP 对应 MAL_HOST,PORT 对应 MAL_DW_PORT
MON_DW_IP                = 172.16.16.2:5436

在配置监视器时,一般配置好确认监视器后,建议再配置一个非确认监视器的配置文件,在主备发生切换时,可以通过前台的方式启动非确认监视器进行手动切换。非确认监视器是通过将监视器配置文件中 MON_DW_CONFIRM 参数值修改为 0 来实现,示例如下:

vi /home/dmdba/dmdbms/bin/dmmonitor_manual.ini

MON_DW_CONFIRM             = 0  #0:非确认(故障手切) 1:确认(故障自切)
MON_LOG_PATH               = ../log  #监视器日志文件存放路径
MON_LOG_INTERVAL           = 60  #每隔 60s 定时记录系统信息到日志文件
MON_LOG_FILE_SIZE          = 512  #单个日志大小,单位 MB
MON_LOG_SPACE_LIMIT        = 2048  #日志上限,单位 MB

[GRP1]
MON_INST_OGUID           = 45331  #组 GRP1 的唯一 OGUID 值
MON_DW_IP                = 172.16.16.1:5436  #IP 对应 MAL_HOST,PORT 对应 MAL_DW_PORT
MON_DW_IP                = 172.16.16.2:5436

2.3.2 注册服务(选做)

/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmmonitor -p Monitor -monitor_ini /home/dmdba/dmdbms/bin/dmmonitor.ini


若要删除自启,可利用如下方式:

/home/dmdba/dmdbms/script/root/dm_service_uninstaller.sh -n DmMonitorServiceMonitor

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服