动态增加读写分离备库

1、数据准备

初始化数据库
实时主备
开归档

vi dm.ini
ARCH_INI = 1
vi dmarch.ini
[ARCHIVE_LOCAL1]
ARCH_TYPE            = LOCAL
ARCH_DEST            = /dmdata/arch
ARCH_FILE_SIZE       = 64
ARCH_SPACE_LIMIT     = 1024
ARCH_FLUSH_BUF_SIZE  = 0

脱机备份

./dmrman CTLSTMT="BACKUP DATABASE '/dmdata/data/DAMENG/dm.ini' FULL BACKUPSET '/dmdata/bak/bak_full_file_01'"

脱机还原

./dmrman CTLSTMT="RESTORE DATABASE '/dmdata/data/DAMENG/dm.ini' FROM BACKUPSET '/dmdata/bak/bak_full_file_01'"
./dmrman CTLSTMT="RECOVER DATABASE '/dmdata/data/DAMENG/dm.ini' FROM BACKUPSET '/dmdata/bak/bak_full_file_01'" 
./dmrman CTLSTMT="RECOVER DATABASE '/dmdata/data/DAMENG/dm.ini' UPDATE DB_MAGIC"

2、配置主库

2.1dm.ini

vi dm.ini
INSTANCE_NAME = GRP1_RWW_01
MAL_INI = 1
ARCH_INI = 1

2.2dmmal.ini

vi dmmal.ini
MAL_CHECK_INTERVAL=5
MAL_CONN_FAIL_INTERVAL=5
[MAL_INST1]
MAL_INST_NAME=GRP1_RWW_01
MAL_HOST=192.168.186.101
MAL_PORT=61141
MAL_INST_HOST=192.168.186.101#心跳ip
MAL_INST_PORT=5236
MAL_DW_PORT=52141
MAL_INST_DW_PORT=33141
[MAL_INST2]
MAL_INST_NAME=GRP1_RWW_02
MAL_HOST=192.168.186.102
MAL_PORT=61142
MAL_INST_HOST=192.168.186.102#心跳ip
MAL_INST_PORT=5236
MAL_DW_PORT=52142
MAL_INST_DW_PORT=33142

2.3dmarch.ini

vi dmarch.ini
ARCH_WAIT_APPLY=1#事务一致性
[ARCHIVE_TIMELY1]
ARCH_TYPE            = TIMELY
ARCH_DEST=GRP1_RWW_02
[ARCHIVE_LOCAL1]
ARCH_TYPE            = LOCAL
ARCH_DEST            = /dmdata/arch
ARCH_FILE_SIZE       = 64
ARCH_SPACE_LIMIT     = 1024
ARCH_FLUSH_BUF_SIZE  = 0

2.4dmwatcher.ini

vi dmwatcher.ini
[GRP1]
DW_TYPE=GLOBAL
DW_MODE=MANUAL
DW_ERROR_TIME=10
INST_RECOVER_TIME=60
INST_ERROR_TIME=10
INST_OGUID=210129#和当天时间一致
INST_INI=/dmdata/data/DAMENG/dm.ini
INST_AUTO_RESTART=1
INST_STARTUP_CMD=/home/dmdba/dmdbms/bin/dmserver
RLOG_SEND_THRESHOLD=0
RLOG_APPLY_THRESHOLD=0

3、启动实例和守护进程

./dmserver /dmdata/data/DAMENG/dm.ini mount

设置oguid

SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',1);
sp_set_oguid(210129);
alter database primary;
SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',0);

启动守护进程

./dmwatcher /dmdata/data/DAMENG/dmwatcher.ini

4、配置备库

4.1dm.ini

vi dm.ini
INSTANCE_NAME = GRP1_RWW_02
MAL_INI = 1
ARCH_INI = 1
4.2dmmal.ini
vi dmmal.ini
MAL_CHECK_INTERVAL=5
MAL_CONN_FAIL_INTERVAL=5
[MAL_INST1]
MAL_INST_NAME=GRP1_RWW_01
MAL_HOST=192.168.186.101
MAL_PORT=61141
MAL_INST_HOST=192.168.186.101#心跳ip
MAL_INST_PORT=5236
MAL_DW_PORT=52141
MAL_INST_DW_PORT=33141
[MAL_INST2]
MAL_INST_NAME=GRP1_RWW_02
MAL_HOST=192.168.186.102
MAL_PORT=61142
MAL_INST_HOST=192.168.186.102#心跳ip
MAL_INST_PORT=5236
MAL_DW_PORT=52142
MAL_INST_DW_PORT=33142

4.3dmarch.ini

vi dmarch.ini
ARCH_WAIT_APPLY=1#事务一致性
[ARCHIVE_TIMELY1]
ARCH_TYPE            = TIMELY
ARCH_DEST=GRP1_RWW_01
[ARCHIVE_LOCAL1]
ARCH_TYPE            = LOCAL
ARCH_DEST            = /dmdata/arch
ARCH_FILE_SIZE       = 64
ARCH_SPACE_LIMIT     = 1024
ARCH_FLUSH_BUF_SIZE  = 0

4.4dmwatcher.ini

vi dmwatcher.ini
[GRP1]
DW_TYPE=GLOBAL
DW_MODE=MANUAL
DW_ERROR_TIME=10
INST_RECOVER_TIME=60
INST_ERROR_TIME=10
INST_OGUID=210129#和当天时间一致
INST_INI=/dmdata/data/DAMENG/dm.ini
INST_AUTO_RESTART=1
INST_STARTUP_CMD=/home/dmdba/dmdbms/bin/dmserver
RLOG_APPLY_THRESHOLD=0

5、启动实例和守护进程

./dmserver /dmdata/data/DAMENG/dm.ini mount

设置oguid

SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',1);
sp_set_oguid(210129);
alter database standby;
SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',0);

启动守护进程

./dmwatcher /dmdata/data/DAMENG/dmwatcher.ini

6、监视器

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

7、注册服务

使用root用户

cd /home/dmdba/dmdbms/script/root

注册dmserver服务

./dm_service_installer.sh -t dmserver -m mount -dm_ini /dmdata/data/DAMENG/dm.ini -p DMSERVER1

注册dmwatcher服务

./dm_service_installer.sh -t dmwatcher  -watcher_ini /dmdata/data/DAMENG/dmwatcher.ini –p DMWATCHER1

注册dmmonitor服务

./dm_service_installer.sh -t dmmonitor  -monitor_ini /dmdata/data/DAMENG/dmmonitor.ini -p DMMONITOR

8、动态增加实时备库

初始化备库

./dminit path=/dmdata/data

对主库进行联机备份操作

BACKUP DATABASE BACKUPSET '/dmdata/bak/bak_full_29';

还原恢复新增备库

./dmrman CTLSTMT="RESTORE DATABASE '/dmdata/data/DAMENG/dm.ini' FROM BACKUPSET
'/dmdata/bak/bak_full_29'"
./dmrman CTLSTMT="RECOVER DATABASE '/dmdata/data/DAMENG/dm.ini' FROM BACKUPSET
'/dmdata/bak/bak_full_29'"
./dmrman CTLSTMT="RECOVER DATABASE '/dmdata/data/DAMENG/dm.ini' UPDATE DB_MAGIC"

8.1dm.ini

vi dm.ini
INSTANCE_NAME = GRP1_RWW_03
MAL_INI = 1
ARCH_INI = 1

8.2dmmal.ini

vi dmmal.ini
MAL_CHECK_INTERVAL=5
MAL_CONN_FAIL_INTERVAL=5
[MAL_INST1]
MAL_INST_NAME=GRP1_RWW_01
MAL_HOST=192.168.186.101
MAL_PORT=61141
MAL_INST_HOST=192.168.186.101#心跳ip
MAL_INST_PORT=5236
MAL_DW_PORT=52141
MAL_INST_DW_PORT=33141
[MAL_INST2]
MAL_INST_NAME=GRP1_RWW_02
MAL_HOST=192.168.186.102
MAL_PORT=61142
MAL_INST_HOST=192.168.186.102#心跳ip
MAL_INST_PORT=5236
MAL_DW_PORT=52142
MAL_INST_DW_PORT=33142
[MAL_INST3]
MAL_INST_NAME = GRP1_RWW_03
MAL_HOST = 192.168.186.104
MAL_PORT = 61142
MAL_INST_HOST = 192.168.186.104
MAL_INST_PORT = 5236
MAL_DW_PORT = 52143
MAL_INST_DW_PORT = 33143

8.3dmarch.ini

vi dmarch.ini
ARCH_WAIT_APPLY=1#事务一致性
[ARCHIVE_TIMELY1]
ARCH_TYPE            = TIMELY
ARCH_DEST = GRP1_RWW_01 #实时归档目标实例名
[ARCHIVE_TIMELY2]
ARCH_TYPE            = TIMELY
ARCH_DEST = GRP1_RWW_02 #实时归档目标实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /dmdata/arch #本地归档文件存放路径
ARCH_FILE_SIZE = 64 #单位 Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 1024 #单位 Mb,0 表示无限制,范围 1024~4294967294M

8.4dmwatcher.ini

vi dmwatcher.ini
[GRP1]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = MANUAL #手动切换模式
DW_ERROR_TIME = 10 #远程守护进程故障认定时间
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
INST_ERROR_TIME = 10 #本地实例故障认定时间
INST_OGUID = 210129 #守护系统唯一 OGUID 值
INST_INI = /dmdata/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 #指定备库重演日志的时间阈值,默认关闭

9、启动实例和守护进程

./dmserver /dmdata/data/DAMENG/dm.ini mount

设置oguid

SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',1);
sp_set_oguid(210129);
alter database standby;
SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',0);

启动守护进程

./dmwatcher /dmdata/data/DAMENG/dmwatcher.ini

10、动态添加 MAL 配置,每个节点都需要执行

SF_MAL_CONFIG(1,0); SF_MAL_INST_ADD('MAL_INST3','GRP1_RWW_03','192.168.186.104',61143,'192.168.186.1 04',5236,52143,0,33143); 
SF_MAL_CONFIG_APPLY(); 
SF_MAL_CONFIG(0,0);

11、动态添加归档配置,数据库处于mount状态才能配置归档,停掉守护进程,重启服务,数据库处于mount状态,每个数据库节点都需要配置归档

alter database add archivelog 'DEST=GRP1_RWW_03, TYPE=TIMELY';

在 dmmonitor.ini 中添加新增的备库

GRP1_RT_03: MON_DW_IP = 192.168.186.104:52143

注册增加节点的服务和守护进程
启动全部守护进程,最后启动监视器。
所有实例均是打开状态,动态添加备库完成

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值