0
点赞
收藏
分享

微信扫一扫

DM8搭建实时主备

扒皮狼 2022-02-18 阅读 40
dba

部署类型:数据守护V4.0        部署名称:dmwatcher4_0
========================================================================
配置环境说明
========================================================================
机器名                    ip地址                         初始状态                              操作系统                    备注                  
dmdb                      192.168.116.10                 主库:EP01                           Linux                   外网IP:192.168.116.10   
                                                                                                                内网IP:192.168.116.10   
dmdb                    192.168.116.20                 实时备库:EP02                         Linux                   外网IP:192.168.116.20   
                                                                                                                内网IP:192.168.116.20   
dmdb                    192.168.116.20                 监视器dmmonitor                     Linux                   外网IP:192.168.116.20   
                                                                                                                内网IP:192.168.116.20  

                                                    
========================================================================
端口规划
========================================================================
数据库名    实例名          PORT_NUM(MAL_INST_PORT)    MAL_PORT            MAL_HOST             MAL_DW_PORT         MAL_INST_DW_PORT                  
DMEP        EP01            7236                           7436              192.168.116.10           7536             7336                                 
DMEP        EP02            7236                           7436              192.168.116.20           7536             7336                                 

========================================================================
路径规划
========================================================================
数据库安装路径:/dm8/data
数据文件路径:/dm8/data/DMEP/
归档日志路径:/dm8/arch
备份文件路径:/dm8/backup

========================================================================
初始化数据库
========================================================================
    簇大小 : 16    
    页大小 : 8    
    日志文件大小 : 256    
    时区设置 : +08:00    
    页面检查 : 不启用
    字符集 : GB18030    
    USBKEY-PIN : 无    
    字符串比较大小写敏感 : 是    
    空格填充模式 : 否    
    VARCHAR类型以字符为单位 : 否
    启用日志文件加密 : 否    
    改进的字符串HASH算法 : 是    
    开启ORACLE兼容包 : 是    
    启用全库加密 : 否    

    
初始化主库实例:
#dmdba用户(EP01)
方法1
cd /dm8/tool
./dbca.sh
方法2
cd /dm8/bin
./dminit PATH=/dm8/data DB_NAME=DMEP INSTANCE_NAME=EP01 PORT_NUM=7236 SYSDBA_PWD=Dameng123
注册主库服务:
#root用户注册服务(EP01)
cd /dm8/script/root/
./dm_service_installer.sh -t dmserver -p EP01 -dm_ini /dm8/data/DMEP/dm.ini

初始化备库实例:
#dmdba用户(EP02)
cd /dm8/bin
./dminit PATH=/dm8/data DB_NAME=DMEP INSTANCE_NAME=EP02 PORT_NUM=7236 SYSDBA_PWD=Dameng123
注册备库服务:
#root用户注册服务(EP02)
cd /dm8/script/root/
./dm_service_installer.sh -t dmserver -p EP02 -dm_ini /dm8/data/DMEP/dm.ini
    
    

========================================================================
脱机备份主库,备库还原
========================================================================
重启主库:
dmdba用户
[dmdba@dmdb bin]$ ./DmServiceEP01 start
[dmdba@dmdb bin]$ ./DmServiceEP01 stop
cd /dm8/bin
./dmrman CTLSTMT="BACKUP DATABASE '/dm8/data/DMEP/dm.ini' FULL TO BACKUP_FILE1 BACKUPSET '/dm8/backup/BACKUP_FILE_01'"

备库:
scp -r BACKUP_FILE_01/ dmdba@192.168.116.20:/dm8/backup/
执行脱机数据库还原与恢复
dmdba用户
cd /dm8/bin
./dmrman CTLSTMT="RESTORE DATABASE '/dm8/data/DMEP/dm.ini' FROM BACKUPSET '/dm8/backup/BACKUP_FILE_01'"
./dmrman CTLSTMT="RECOVER DATABASE '/dm8/data/DMEP/dm.ini' FROM BACKUPSET '/dm8/backup/BACKUP_FILE_01'"
./dmrman CTLSTMT="RECOVER DATABASE '/dm8/data/DMEP/dm.ini' UPDATE DB_MAGIC"


========================================================================
主库配置参数
========================================================================
主库:
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                         #打开 MAL 系统
ARCH_INI  = 1                     #打开归档配置
RLOG_SEND_APPLY_MON = 64         #统计最近 64 次的日志发送信息

dm.ini参数修改
INSTANCE_NAME  = EP01
PORT_NUM  = 7236             
DW_INACTIVE_INTERVAL  = 60     
ALTER_MODE_STATUS  = 0         
ENABLE_OFFLINE_TS  = 2         
MAL_INI = 1                 
ARCH_INI  = 1                 
RLOG_SEND_APPLY_MON = 64     

dmmal.ini参数介绍
MAL_CHECK_INTERVAL = 5 #MAL链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 #判定MAL链路断开的时间
[MAL_INST1]
MAL_INST_NAME = EP01 #实例名和dm.ini中的INSTANCE_NAME一致
MAL_HOST = 172.16.6.170 #MAL 系统监听TCP连接的IP地址
MAL_PORT = 5436 #MAL  #MAL 系统监听TCP连接的端口
MAL_INST_HOST = 192.168.6.170 #实例的对外服务IP地址
MAL_INST_PORT = 5236 #实例的对外服务端口,和dm.ini中的PORT_NUM一致
MAL_DW_PORT = 5536 #实例对应的守护进程监听TCP连接的端口
MAL_INST_DW_PORT = 5336
[MAL_INST2]
MAL_INST_NAME = GRP1_RT_02
MAL_HOST = 172.16.6.171
MAL_PORT = 5436
MAL_INST_HOST = 192.168.6.171
MAL_INST_PORT = 5236
MAL_DW_PORT = 5536
MAL_INST_DW_PORT = 5336

dmmal.ini参数修改
MAL_CHECK_INTERVAL = 5
MAL_CONN_FAIL_INTERVAL = 5
[MAL_INST1]
MAL_INST_NAME = EP01
MAL_HOST = 192.168.116.10
MAL_PORT = 7436
MAL_INST_HOST = 192.168.116.10
MAL_INST_PORT = 7236
MAL_DW_PORT = 7536
MAL_INST_DW_PORT = 7336
[MAL_INST2]
MAL_INST_NAME = EP02
MAL_HOST = 192.168.116.20
MAL_PORT = 7436
MAL_INST_HOST = 192.168.116.20
MAL_INST_PORT = 7236
MAL_DW_PORT = 7536
MAL_INST_DW_PORT = 7336


dmarch.ini参数介绍
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME  #实时归档类型
ARCH_DEST = GRP1_RT_02  #实时归档目标实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /data/dmdbms/arch #本地归档文件存放路径
ARCH_FILE_SIZE = 512  #单位Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT  = 40960 #单位Mb,0表示无限制,范围1024~4294967294M

dmarch.ini参数修改
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME
ARCH_DEST = EP02  
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm8/arch
ARCH_FILE_SIZE = 512
ARCH_SPACE_LIMIT  = 0

dmwatcher.ini参数介绍
[GRP1]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = AUTO #自动切换模式
DW_ERROR_TIME = 10 #远程守护进程故障认定时间
INST_RECOVER_TIME = 60 #主库检测备库故障恢复的时间间隔
INST_ERROR_TIME = 10 #本地实例故障认定时间
INST_OGUID = 453332 #守护系统唯一OGUID值
INST_INI = /data/dmdbms/DAMENG/dm.ini #dm.ini配置文件路径
INST_AUTO_RESTART = 1 #实例自动重启
INST_STARTUP_CMD = /opt/dmdbms/bin/dmserver #命令行方式启动
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阀值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阀值,默认关闭

dmwatcher.ini参数修改
[GRP1]
DW_TYPE = GLOBAL
DW_MODE = AUTO
DW_ERROR_TIME = 10
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 10
INST_OGUID = 453332
INST_INI = /dm8/data/DMEP/dm.ini
INST_AUTO_RESTART = 1
INST_STARTUP_CMD = /dm8/bin/dmserver
RLOG_SEND_THRESHOLD = 0
RLOG_APPLY_THRESHOLD = 0

启动主库到mount状态
cd /dm8/bin/
./dmserver /dm8/data/DMEP/dm.ini mount
(注意:使用exit或者quit退出,不能ctl+c)


主库配置OGUID和修改数据库模式
[dmdba@dmdb ~]$ cd /dm8/bin
[dmdba@dmdb bin]$ ./disql sysdba/Dameng123@192.168.116.10:7236
服务器[192.168.116.10:7236]:处于普通配置状态
登录使用时间 : 3.514(ms)
disql V8
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
DMSQL 过程已成功完成
已用时间: 8.164(毫秒). 执行号:0.
SQL> sp_set_oguid(453332);
DMSQL 过程已成功完成
已用时间: 5.304(毫秒). 执行号:1.
SQL> alter database primary;
操作已执行
已用时间: 1.698(毫秒). 执行号:0.
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
DMSQL 过程已成功完成
已用时间: 5.478(毫秒). 执行号:2.


========================================================================
备库配置参数
========================================================================
备库:
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                         #打开 MAL 系统
ARCH_INI  = 1                     #打开归档配置
RLOG_SEND_APPLY_MON = 64         #统计最近 64 次的日志发送信息

dm.ini参数修改
INSTANCE_NAME  = EP02
PORT_NUM  = 7236             
DW_INACTIVE_INTERVAL  = 60     
ALTER_MODE_STATUS  = 0         
ENABLE_OFFLINE_TS  = 2         
MAL_INI = 1                 
ARCH_INI  = 1                 
RLOG_SEND_APPLY_MON = 64     

dmmal.ini参数介绍
MAL_CHECK_INTERVAL = 5 #MAL链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 #判定MAL链路断开的时间
[MAL_INST1]
MAL_INST_NAME = EP01 #实例名和dm.ini中的INSTANCE_NAME一致
MAL_HOST = 172.16.6.170 #MAL 系统监听TCP连接的IP地址
MAL_PORT = 5436 #MAL  #系统监听TCP连接的端口
MAL_INST_HOST = 192.168.6.170 #实例的对外服务IP地址
MAL_INST_PORT = 5236 #实例的对外服务端口,和dm.ini中的PORT_NUM一致
MAL_DW_PORT = 5536 #实例对应的守护进程监听TCP连接的端口
MAL_INST_DW_PORT = 5336
[MAL_INST2]
MAL_INST_NAME = GRP1_RT_02
MAL_HOST = 172.16.6.171
MAL_PORT = 5436
MAL_INST_HOST = 192.168.6.171
MAL_INST_PORT = 5236
MAL_DW_PORT = 5536
MAL_INST_DW_PORT = 5336

dmmal.ini参数修改
MAL_CHECK_INTERVAL = 5
MAL_CONN_FAIL_INTERVAL = 5
[MAL_INST1]
MAL_INST_NAME = EP01
MAL_HOST = 192.168.116.10
MAL_PORT = 7436
MAL_INST_HOST = 192.168.116.10
MAL_INST_PORT = 7236
MAL_DW_PORT = 7536
MAL_INST_DW_PORT = 7336
[MAL_INST2]
MAL_INST_NAME = EP02
MAL_HOST = 192.168.116.20
MAL_PORT = 7436
MAL_INST_HOST = 192.168.116.20
MAL_INST_PORT = 7236
MAL_DW_PORT = 7536
MAL_INST_DW_PORT = 7336


dmarch.ini参数介绍
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME  #实时归档类型
ARCH_DEST = GRP1_RT_02  #实时归档目标实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /data/dmdbms/arch #本地归档文件存放路径
ARCH_FILE_SIZE = 512  #单位Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT  = 40960 #单位Mb,0表示无限制,范围1024~4294967294M

dmarch.ini参数修改
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME
ARCH_DEST = EP01
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm8/arch
ARCH_FILE_SIZE = 512
ARCH_SPACE_LIMIT  = 0

dmwatcher.ini参数介绍
[GRP1]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = AUTO #自动切换模式
DW_ERROR_TIME = 10 #远程守护进程故障认定时间
INST_RECOVER_TIME = 60 #主库检测备库故障恢复的时间间隔
INST_ERROR_TIME = 10 #本地实例故障认定时间
INST_OGUID = 453332 #守护系统唯一OGUID值
INST_INI = /data/dmdbms/DAMENG/dm.ini #dm.ini配置文件路径
INST_AUTO_RESTART = 1 #实例自动重启
INST_STARTUP_CMD = /opt/dmdbms/bin/dmserver #命令行方式启动
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阀值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阀值,默认关闭

dmwatcher.ini参数修改
[GRP1]
DW_TYPE = GLOBAL
DW_MODE = AUTO
DW_ERROR_TIME = 10
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 10
INST_OGUID = 453332
INST_INI = /dm8/data/DMEP/dm.ini
INST_AUTO_RESTART = 1
INST_STARTUP_CMD = /dm8/bin/dmserver
RLOG_SEND_THRESHOLD = 0
RLOG_APPLY_THRESHOLD = 0

启动备库到mount状态
cd /dm8/bin/
./dmserver /dm8/data/DMEP/dm.ini mount
(注意:使用exit或者quit退出,不能ctl+c)

备库配置OGUID和修改数据库模式
[dmdba@dmdb ~]$ cd /dm8/bin
[dmdba@dmdb bin]$ ./disql sysdba/Dameng123@192.168.116.20:7236
服务器[192.168.116.20:7236]:处于普通配置状态
登录使用时间 : 3.514(ms)
disql V8
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
DMSQL 过程已成功完成
已用时间: 8.164(毫秒). 执行号:0.
SQL> sp_set_oguid(453332);
DMSQL 过程已成功完成
已用时间: 5.304(毫秒). 执行号:1.
SQL> alter database standby;
操作已执行
已用时间: 1.698(毫秒). 执行号:0.
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
DMSQL 过程已成功完成
已用时间: 5.478(毫秒). 执行号:2.


========================================================================
注册并启动守护进程
========================================================================
主库
#root用户注册服务(EP01)
cd /dm8/script/root/
./dm_service_installer.sh -t dmwatcher -watcher_ini /dm8/data/DMEP/dmwatcher.ini -p ep1


备库
#root用户注册服务(EP02)
cd /dm8/script/root/
./dm_service_installer.sh -t dmwatcher -watcher_ini /dm8/data/DMEP/dmwatcher.ini -p ep2

启动主库守护进程服务
root用户
systemctl start DmWatcherServiceep1.service
[dmdba@dmdb bin]$ ./disql sysdba/Dameng123@192.168.116.10:7236
服务器[192.168.116.10:7236]:处于普通配置状态
登录使用时间 : 3.514(ms)
disql V8
SQL> select name,status$ from v$instance;

行号     NAME STATUS$
---------- ---- -------
1          EP01 MOUNT

已用时间: 7.762(毫秒). 执行号:500.

启动备库守护进程服务
root用户
systemctl start DmWatcherServiceep2.service
[dmdba@dmdb bin]$ ./disql sysdba/Dameng123@192.168.116.20:7236
服务器[192.168.116.20:7236]:处于普通配置状态
登录使用时间 : 3.514(ms)
disql V8
SQL> select name,status$ from v$instance;

行号     NAME STATUS$
---------- ---- -------
1          EP01 OPEN

已用时间: 7.762(毫秒). 执行号:500.

========================================================================
配置监视器
========================================================================
备库
dmmonitor.ini参数介绍
MON_DW_CONFIRM = 1 #确认监视器模式
MON_LOG_PATH = /data/dmdbms/log #监视器日志文件存放路径
MON_LOG_INTERVAL = 60 #每隔 60s 定时记录系统信息到日志文件
MON_LOG_FILE_SIZE = 32 #每个日志文件最大32M
MON_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间
[GRP1]
MON_INST_OGUID = 453332 #组 GRP1 的唯一OGUID 值
MON_DW_IP = 172.16.6.170:5536
MON_DW_IP = 172.16.6.171:5536
dmmonitor.ini参数修改
MON_DW_CONFIRM = 1
MON_LOG_PATH = /dm8/monitor/log
MON_LOG_INTERVAL = 60
MON_LOG_FILE_SIZE = 32
MON_LOG_SPACE_LIMIT = 0
[GRP1]
MON_INST_OGUID = 453332
MON_DW_IP = 192.168.116.10:7536
MON_DW_IP = 192.168.116.20:7536

注册监视器
#root用户注册服务
cd /dm8/script/root/
./dm_service_installer.sh -t dmmonitor -monitor_ini /dm8/data/DMEP/dmmonitor.ini -p m1


启动监视器
systemctl start DmMonitorServicem1.service


查看状态
cd /dm8/bin/
./dmmonitor /dm8/data/DMEP/dmmonitor.ini
#show

实时主备集群重启有顺序要求:

1、关闭监视器
(1)systemctl stop DmMonitorServicem1.service
(2)./dmmonitor /dm8/data/DMEP/dmmonitor.ini
exit
2、关闭主库守护进程
(1)systemctl stop DmWatcherServiceep1.service
(2)./dmwatcher /dm8/data/DMEP/dmwatcher.ini
exit
3、关闭备库守护进程
(1)systemctl stop DmWatcherServiceep2.service
(2)./dmwatcher /dm8/data/DMEP/dmwatcher.ini
exit
4、关闭主库实例
(1)systemctl stop DmServiceEP01.service
(2)./DmServiceEP01 stop
5、关闭备库实例
(1)systemctl stop DmServiceEP02.service
(2)./DmServiceEP02 stop

6、启动主库实例 (mount)
(1)systemctl start DmServiceEP01.service
(2)./dmserver /dm8/data/DMEP/dm.ini mount
7、启动备库实例    (mount)
(1)systemctl start DmServiceEP02.service
(2)./dmserver /dm8/data/DMEP/dm.ini mount
8、启动主库守护进程 (open)
(1)systemctl start DmWatcherServiceep1.service
(2)./dmwatcher /dm8/data/DMEP/dmwatcher.ini
9、启动备库守护进程    (open)
(1)systemctl start DmWatcherServiceep2.service
(2)./dmwatcher /dm8/data/DMEP/dmwatcher.ini
10、启动监视器
(1)systemctl start DmMonitorServicem1.service
(2)./dmmonitor /dm8/data/DMEP/dmmonitor.ini

实时主备切换:

切换前查看主备状态是否一致
select CKPT_LSN,FILE_LSN,FLUSH_LSN,CUR_LSN from v$rlog;

在监视器里操作
login
用户:sysdba
密码:
[monitor]         2022-01-17 18:14:25: 登陆监视器成功!

choose switchover
Can choose one of the following instances to do switchover:
1: EP01

switchover EP01

举报

相关推荐

0 条评论