达梦主备集群添加、删除异步节点

个人笔记006之达梦主备集群DMDataWatch及日常维护

接上篇文章提到的主备规划、搭建、日常维护:

一、主备集群添加节点:

1.1、异步节点前安装规划:

实例名PORT_NUMMAL_INST_HOSTMAL_INST_PORTMAL_INST_DM_PORTMAL_DM_PORTMAL_HOSTMAL_PORT
wjdb115236192.168.114.131152361523715238192.168.114.13115239
wjdb225236192.168.114.132252362523725238192.168.114.13225239
wjdb335236192.168.114.136352363523735238192.168.114.13635239
dmmontior192.168.114.134

1.2、安装前准备(略):

1.3、数据库安装:

su - dmdba
cd /mnt
./DMInstall.bin -i
root用户执行:
/dm/dmdbms/dm8/script/root/root_installer.sh

1.4、实例安装:

su - dmdba
cd /dm/dmdbms/dm8/bin

./dminit path=/dm/dmdata db_name=wjdb instance_name=wjdb3 port_num=35236 LOG_SIZE=256 SYSDBA_PWD=dameng123 EXTENT_SIZE=16 PAGE_SIZE=16 charset=1

1.5、主库备份拷贝数据库:

cd /dm/dmdbms/dm8/bin
./disql wj/wj123456789@192.168.114.131:15236

backup database full backupset '/dm/dmback/wjdb_full_03';

exit;
在这里插入图片描述

scp -r /dm/dmback/wjdb_full_03 192.168.114.136:/dm/dmback

在这里插入图片描述

1.6、异步节点恢复数据库:

cd /dm/dmdbms/dm8/bin
./dmrman

restore database '/dm/dmdata/wjdb/dm.ini' from backupset '/dm/dmback/wjdb_full_03'
recover database '/dm/dmdata/wjdb/dm.ini' from backupset '/dm/dmback/wjdb_full_03'
recover database '/dm/dmdata/wjdb/dm.ini' update db_magic

在这里插入图片描述

1.7、主备库参数修改:

su - dmdba
cd /dm/dmdata/wjdb

A.dm.in
vi dm.ini
TIMER_INI = 1 #配置有异步归档时,打开定时器,定时同步归档到异步备库

B.dmmal.ini
两个实例参数一样
在配置 dmmal.ini 的基础上,增加异步备库 wjdb3 的 MAL 配置项)

vi dmmal.ini
[MAL_INST3]
MAL_INST_NAME = wjdb3 # 实 例 名 , 和 dm.ini 中 的INSTANCE_NAME 一致
MAL_HOST = 192.168.114.136 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 35239 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 192.168.114.136 #实例的对外服务 IP 地址
MAL_INST_PORT = 35236 #实例的对外服务端口,和 dm.ini 中的PORT_NUM 一致
MAL_INST_DW_PORT = 35237 #实例监听守护进程 TCP 连接的端口
MAL_DW_PORT = 35238 #实例对应的守护进程监听 TCP 连接的端口

C.dmarch.ini
(在配置 dmarch.ini 的基础上,增加异步归档的配置项)
vi dmarch.ini
[ARCHIVE_ASYNC]
ARCH_TYPE = ASYNC #异步归档类型
ARCH_DEST = wjdb3 #异步归档目标实例名
ARCH_TIMER_NAME = RT_TIMER #定时器名称,和 dmtimer.ini 中的名称一致

D.dmtimer.ini
dmtimer.ini(配置 dmtimer.ini,用于定时触发实例发送归档日志到异步备
库)
异步归档的最小触发间隔是 1 分钟,定时器调度类型:
1:执行一次
2:按日执行
3:按周执行
4:按月执行的第几天
5:按月执行的第一周
6:按月执行的第二周
7:按月执行的第三周
8:按月执行的第四周
9:按月执行的最后一周
下面示例中定时器配置为每天分钟触发主库发送归档日志到异步备库,可
以根据实际情况再做调整

vi dmtimer.ini
[RT_TIMER] #和 dmarch.ini 中的 ARCH_TIMER_NAME 一致
TYPE = 2 #2 按日执行
FREQ_MONTH_WEEK_INTERVAL = 1 #间隔月或周数
FREQ_SUB_INTERVAL = 0 #间隔天数
FREQ_MINUTE_INTERVAL = 1 #间隔分钟数
START_TIME = 00:00:00 #开始时间
END_TIME = 00:00:00 #结束时间
DURING_START_DATE = 2021-5-15 12:00:00 #开始时间点
DURING_END_DATE = 9999-12-31 23:59:59 #结束时间点
NO_END_DATE_FLAG = 1 #是否结束标记
DESCRIBE = RT_TIMER #定时器描述
IS_VALID = 1 #0:表示关闭定时器,1:表示启用定时器

1.8、修改monitor服务器参数:

su - dmdba
vi /dm/dmdbms/dm8/data/dmmonitor.ini
MON_DW_IP = 192.168.114.135:35238

关闭监视器:
ps -ef|grep dmmonitor
kill -9 xxx

1.9、主备数据库操作:

cd /dm/dmdbms/dm8/bin
./DmServicewjdb stop
./DmWatcherServicewjdb stop
设置 mount 状态:
nohup ./dmserver /dm/dmdata/wjdb/dm.ini mount &
在这里插入图片描述
启动守护进程:
./DmWatcherServicewjdb start

1.10、修改异步节点参数:

su - dmdba
cd /dm/dmdata/wjdb
在这里插入图片描述
A.dm.ini
vi dm.ini
INSTANCE_NAME = wjdb3 #异步备库实例
PORT_NUM = 35236 #数据库实例监听端口
DW_PORT = 35237 #守护环境下,监听守护进程连接端口,为上面规划表中的 MAL_INST_DW_PORT 值
DW_ERROR_TIME = 60 #接收守护进程消息超时时间
ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态
ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间
MAL_INI = 1 #打开 MAL 系统
ARCH_INI = 1 #打开归档配置
HA_INST_CHECK_FLAG = 1 #检测是否多个实例进程同时启动
RLOG_SEND_APPLY_MON = 64 #统计最近 64 次的日志发送信息

B.dmmal.ini
几个实例参数一样
vi dmmal.ini
MAL_CHECK_INTERVAL = 5 #MAL 链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 #判定 MAL 链路断开的时间
[MAL_INST1]
MAL_INST_NAME = wjdb1 # 实 例 名 , 和 dm.ini 中 的INSTANCE_NAME 一致
MAL_HOST = 192.168.114.131 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 15239 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 192.168.114.131 #实例的对外服务 IP 地址
MAL_INST_PORT = 15236 #实例的对外服务端口,和 dm.ini 中的PORT_NUM 一致
MAL_INST_DW_PORT = 15237 #实例监听守护进程 TCP 连接的端口
MAL_DW_PORT = 15238 #实例对应的守护进程监听 TCP 连接的端口
[MAL_INST2]
MAL_INST_NAME = wjdb2 # 实 例 名 , 和 dm.ini 中 的INSTANCE_NAME 一致
MAL_HOST = 192.168.114.132 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 25239 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 192.168.114.132 #实例的对外服务 IP 地址
MAL_INST_PORT = 25236 #实例的对外服务端口,和 dm.ini 中的PORT_NUM 一致
MAL_INST_DW_PORT = 25237 #实例监听守护进程 TCP 连接的端口
MAL_DW_PORT = 25238 #实例对应的守护进程监听 TCP 连接的端口
[MAL_INST3]
MAL_INST_NAME = wjdb3 # 实 例 名 , 和 dm.ini 中 的INSTANCE_NAME 一致
MAL_HOST = 192.168.114.136 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 35239 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 192.168.114.136 #实例的对外服务 IP 地址
MAL_INST_PORT = 35236 #实例的对外服务端口,和 dm.ini 中的PORT_NUM 一致
MAL_INST_DW_PORT = 35237 #实例监听守护进程 TCP 连接的端口
MAL_DW_PORT = 35238 #实例对应的守护进程监听 TCP 连接的端口

C.dmarch.ini
vi dmarch.ini
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /dm/dmarch/wjdb #本地归档文件存放路径
ARCH_FILE_SIZE = 256 #单位 Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 0 # 单 位 Mb , 0 表 示 无 限 制 , 范 围1024~4294967294M

D.dmwatcher.ini
vi dmwatcher.ini
[GRP1]
DW_TYPE = LOCAL #本地类型
DW_MODE = MANUAL #手工切换模式
DW_ERROR_TIME = 10 #远程守护进程故障认定时间
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
INST_ERROR_TIME = 10 #本地实例故障认定时间
INST_OGUID = 453331 #守护系统唯一 OGUID值
INST_INI = /dm/dmdata/wjdb/dm.ini #dm.ini 配置文件路径
INST_AUTO_RESTART = 1 #打开实例的自动启动功能
INST_STARTUP_CMD = /dm/dmdbms/dm8/bin/dmserver #命令行方式启动

1.11、root用户注册服务:

cd /dm/dmdbms/dm8/script/root/

./dm_service_installer.sh -t dmserver -dm_ini /dm/dmdata/wjdb/dm.ini -p wjdb
./dm_service_installer.sh -t dmwatcher -watcher_ini /dm/dmdata/wjdb/dmwatcher.ini -p wjdb

1.12、异步节点操作:

su - dmdba
cd /dm/dmdbms/dm8/bin
nohup ./dmserver /dm/dmdata/wjdb/dm.ini mount &
查看:
tail -100f nohup.out
在这里插入图片描述
./disql SYSDBA/dameng123@192.168.114.136:35236
select status$ from v$database;
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);
exit;

call SF_SET_SYSTEM_PARA_VALUE (‘MAX_OS_MEMORY’,95,1,2);
call SF_SET_SYSTEM_PARA_VALUE (‘MAX_SESSIONS’,1000,1,2);
call SF_SET_SYSTEM_PARA_VALUE(‘MAX_SESSION_STATEMENT’,5000,1,2);
call SF_SET_SYSTEM_PARA_VALUE (‘BUFFER’,1024,1,2);
call SF_SET_SYSTEM_PARA_VALUE (‘MAX_BUFFER’,1024,1,2);
call SF_SET_SYSTEM_PARA_VALUE (‘BUFFER_POOLS’,2,1,2);
call SF_SET_SYSTEM_PARA_VALUE (‘RECYCLE’,512,1,2);
call SF_SET_SYSTEM_PARA_VALUE (‘RECYCLE_POOLS’,1,1,2);
call SF_SET_SYSTEM_PARA_VALUE(‘HJ_BUF_GLOBAL_SIZE’,500,1,2);
call SF_SET_SYSTEM_PARA_VALUE (‘HJ_BUF_SIZE’,300,1,2);
call SF_SET_SYSTEM_PARA_VALUE (‘DICT_BUF_SIZE’,50,1,2);
call SF_SET_SYSTEM_PARA_VALUE (‘TEMP_SIZE’,200,1,2);
call SF_SET_SYSTEM_PARA_VALUE (‘VM_POOL_SIZE’,256,1,2);
call SF_SET_SYSTEM_PARA_VALUE (‘SESS_POOL_SIZE’,256,1,2);
call SF_SET_SYSTEM_PARA_VALUE(‘CACHE_POOL_SIZE’,200,1,2);
call SF_SET_SYSTEM_PARA_VALUE (‘WORKER_THREADS’,2,1,2);
call SF_SET_SYSTEM_PARA_VALUE (‘TASK_THREADS’,2,1,2);
call SF_SET_SYSTEM_PARA_VALUE (‘USE_PLN_POOL’,1,1,2);
call SF_SET_SYSTEM_PARA_VALUE (‘OLAP_FLAG’,2,1,2);
call SF_SET_SYSTEM_PARA_VALUE (‘OPTIMIZER_MODE’,1,1,2);
call SF_SET_SYSTEM_PARA_VALUE (‘VIEW_PULLUP_FLAG’,1,1,2);
call SF_SET_SYSTEM_PARA_VALUE (‘COMPATIBLE_MODE’,2,1,2);
call SF_SET_SYSTEM_PARA_VALUE (‘ENABLE_MONITOR’,0,1,2);
call SF_SET_SYSTEM_PARA_VALUE (‘SVR_LOG’,0,1,2);
su - dmdba
cd /dm/dmdbms/dm8/bin
ps -ef|grep dmserver
kill -9 36148

在这里插入图片描述
./DmServicewjdb start
./DmWatcherServicewjdb start

1.13、数据核验:

主库:
./disql wj/wj123456789@192.168.114.131:15236
insert into test001 values(33,‘阿凡达’,‘2021-06-09’);
commit;
select * from test001;
两个备库:
./disql wj/wj123456789@192.168.114.132:25236
select * from test001 ;
./disql wj/wj123456789@192.168.114.136:35236
select * from test001 ;
数据同步成功。
手工切换,检查第2台的数据是否同步到第 1 台和第 3 台
choose switchover grp1
只能切至第 2 台,因为第 3 台是不做切换的
switchover grp1.WJDB2
./disql wj/wj123456789@192.168.114.132:25236
insert into test001 values(40,‘思密达’,‘2021-06-09’);
commit;
select * from test001 ;
两个备库:
./disql wj/wj123456789@192.168.114.131:25236
select * from test001 ;
./disql wj/wj123456789@192.168.114.136:35236
select * from test001 ;
最后在切换回第一台机器:
switchover grp1.WJDB1

1.14相关视图:

查看守护进程:

select * from v$dmwatcher;

查看 MAL:

select * from v$mal_link_status;

#查看定时器:

select * from V$DM_TIMER_INI;

查看归档:

select * from v$arch_status;

二、主备集群删除异步节点

2.1、修改监控器配置:

vi /dm/dmdbms/dm8/data/dmmonitor.ini
#MON_DW_IP = 192.168.114.136:35238
在这里插入图片描述

2.2、异步节点操作:

su - dmdba
./DmWatcherServicewjdb stop
./DmServicewjdb stop
切换成root用户
shutdown -h 0

2.3、主备库参数修改:

192.168.114.131/132:
cd /dm/dmdata/wjdb
定时器设置为 0
vi dm.ini
TIMER_INI = 0
#dmtimer.ini

修改归档配置 dmarch.ini
vi dmarch.ini
删除以下内容:
[ARCHIVE_ASYNC]
ARCH_TYPE = ASYNC #异步归档类型
ARCH_DEST = wjdb3 #异步归档目标实例名
ARCH_TIMER_NAME = RT_TIMER #定时器名称,和 dmtimer.ini 中的名称一致

修改 dmmal.ini
vi dmmal.ini
把下面部分删掉:
[MAL_INST3]
MAL_INST_NAME = wjdb3 # 实 例 名 , 和 dm.ini 中 的
INSTANCE_NAME 一致
MAL_HOST = 192.168.114.136 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 35239 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 192.168.114.136 #实例的对外服务 IP 地址
MAL_INST_PORT = 35236 #实例的对外服务端口,和 dm.ini 中的PORT_NUM 一致
MAL_INST_DW_PORT = 35237 #实例监听守护进程 TCP 连接的端口
MAL_DW_PORT = 35238 #实例对应的守护进程监听 TCP 连接的端口

2.4、重启主备服务:

su - dmdba
./DmWatcherServicewjdb stop
./DmServicewjdb stop
./DmServicewjdb start
./DmWatcherServicewjdb start

更多达梦技术分享尽在:https://eco.dameng.com/

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值