DM8数据守护集群手工搭建

DM8数据守护集群

1 系统(软硬件)环境
1.1 硬件环境
服务器具体配置信息
名称 CPU 内存 硬盘SSD 网卡
虚拟机centos7.5 I7-4720M 2G 40G 1000M
虚拟机centos7.5 I7-4720M 2G 40G 1000M

1.2 软件环境
操作系统 数据库版本
centos7.5 DM8.1

2 安装前规划
2.1 数据库存放路径规划
名称 存放路径 说明
安装路径 /opt/dmdbms
数据文件路径 /dmdata
归档日志文件 /dmbak/arch
备份文件

2.2 网络及端口规划
IP规划
主机类型 IP 实例名
主库 192.168.142.3(内部通信) GRP1_RT_01
备库 192.168.142.5(内部通信) GRP1_RT_02
监视器 192.168.142.16

端口规划
实例名 PORT_NUM MAL_INST_DW_PORT MAL_HOST MAL_PORT MAL_DW_PORT
GRP1_RT_01 5236 5336 192.168.142.3 5436 5536
GRP1_RT_02 5236 5336 192.168.142.5 5436 5536

2.3 调整 sysctl.conf
vim /etc/sysctl.conf

#注释掉kernel.shmmax和kernel.shmall两行,并添加以下行数
fs.file-max = 6815744    
fs.aio-max-nr = 1048576    
kernel.shmall = 2097152    
kernel.shmmax = 2147483648   
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500    
net.core.rmem_default = 4194304    
net.core.rmem_max = 4194304    
net.core.wmem_default = 262144    
net.core.wmem_max = 1048576

vm.swappiness = 0
vm.dirty_background_ratio = 3
vm.dirty_ratio = 80
vm.dirty_expire_centisecs = 500
vm.dirty_writeback_centisecs = 100

:x保存退出
sysctl -p 立即生效

2.4 调整 Limits.conf
vim /etc/security/limits.conf添加以下内容

* soft nproc  65536
* hard nproc  65536
* soft nofile  65536
* hard nofile  65536

:x保存退出
备注:如果有该文件:/etc/security/limits.d/90-nproc.conf ,也需要修改。
该文件主要限制 nproc,优先级比 /etc/security/limits.conf 高,
即:如果 /etc/security/limits.d/90-nproc.conf 设置了 nproc 参数时,
生效的是 /etc/security/limits.d/90-nproc.conf 文件中的限制,而不是 /etc/security/limits.conf 的限制
vim /etc/security/limits.d/90-nproc.conf

*          soft    nproc     65536

重启后生效
2.5 调整 login
vim /etc/pam.d/login添加以下内容

session    required        /lib64/security/pam_limits.so
session    required        pam_limits.so

:x保存退出

2.6创建dmdba用户

groupadd dinstall
useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
echo dmdba | passwd --stdin dmdba

2.7目录及权限

mkdir /opt/dmdbms -p
mkdir /dmdata -p 
mkdir /dmbak/arch -p
chown -R dmdba.dinstall /opt/dmdbms /dmdata /dmbak

2.8 数据库初始化参数
参数名称 值
页大小 8
簇大小 16
字符集 utf8
Varchar类型以字符为单位 否
大小写敏感 否

3 安装部署数据守护
3.1 安装DM数据库软件
3.1.1 配置环境变量

Redhat系列
换dmdba用户,在~/.bash_profile添加
vim /home/dmdba/.bash_profile

export TMP=/tmp
export DM_INSTALL_TMPDIR=$TMP
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/opt/dmdbms/bin"
export DM_HOME="/opt/dmdbms"
export PATH="$DM_HOME/bin:$DM_HOME/tool:$PATH"

3.1.2 更改主机名

hostnamectl set-hostname dmrt01/dmrt02

3.2 初始化实例
3.2.1 初始化实例,注册实例服务
root用户
#初始化实例(GRP1_RT_01)

dminit PATH=/dmdata INSTANCE_NAME=GRP1_RT_01 EXTENT_SIZE=16 PAGE_SIZE=8 CASE_SENSITIVE=N CHARSET=1 LOG_SIZE=1024 SYSDBA_PWD=SYSDBA123 ARCH_FLAG=1

#初始化实例(GRP1_RT_02)

dminit PATH=/dmdata INSTANCE_NAME=GRP1_RT_02 EXTENT_SIZE=16 PAGE_SIZE=8 CASE_SENSITIVE=N CHARSET=1 LOG_SIZE=1024 SYSDBA_PWD=SYSDBA123 ARCH_FLAG=1

#启停一次主库

[dmdba@yuanzjdmrt01 ~]# dmserver /dmdata/DAMENG/dm.ini 

当提示system is ready后 输入exit停止

3.3 准备数据
3.3.1 脱机备份、脱机还原方式

  1. 正常关闭主库
  2. 进行脱机备份
dmrman CTLSTMT="BACKUP DATABASE '/dmdata/DAMENG/dm.ini' FULL TO BACKUP_FILE1 BACKUPSET '/dmdata/DAMENG/BACKUP_FILE_01'"
  1. 拷贝备份文件到备库所在机器
    scp -r /dmdata/DAMENG/BACKUP_FILE_01 dmdba@192.168.6.161:/dmdata/DAMENG/
  2. 在备库上执行脱机数据库还原与恢复
./dmrman CTLSTMT="RESTORE DATABASE '/dmdata/DAMENG/dm.ini' FROM BACKUPSET '/dmdata/DAMENG/BACKUP_FILE_01'"
./dmrman CTLSTMT="RECOVER DATABASE '/dmdata/DAMENG/dm.ini' FROM BACKUPSET '/dmdata/DAMENG/BACKUP_FILE_01'"
./dmrman CTLSTMT="RECOVER DATABASE '/dmdata/DAMENG/dm.ini' UPDATE DB_MAGIC"

3.4 --------------------------------配置主库GRP1_RT_01--------------------------------------------------
3.4.1 配置主库dm.ini(对应修改参数)
#实例名,建议使用―组名_守护环境_序号‖的命名方式,总长度不能超过 16

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

3.4.2 配置主库dmmal.ini
2节点配置配置一样。具体如下:

MAL_CHECK_INTERVAL = 5                      #MAL链路检测时间间隔 
MAL_CONN_FAIL_INTERVAL = 5                  #判定MAL链路断开的时间 
								            
[MAL_INST1]                                 
MAL_INST_NAME = GRP1_RT_01                  #实例名和dm.ini中的INSTANCE_NAME一致 
MAL_HOST = 192.168.142.3                    #MAL 系统监听TCP连接的IP地址 
MAL_PORT = 5436                             #MAL  #系统监听TCP连接的端口 
MAL_INST_HOST = 192.168.142.3                #实例的对外服务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 = 192.168.142.5                    
MAL_PORT = 5436                             
MAL_INST_HOST = 192.168.142.5                
MAL_INST_PORT = 5236                        
MAL_DW_PORT = 5536                          
MAL_INST_DW_PORT = 5336  

3.4.3 配置主库dmarch.ini

[ARCHIVE_REALTIME]                          
ARCH_TYPE = REALTIME                        #实时归档类型
ARCH_DEST = GRP1_RT_02                      #实时归档目标实例名(远程库实例名)
								            
[ARCHIVE_LOCAL1]                            
ARCH_TYPE = LOCAL                           #本地归档类型
ARCH_DEST = /dmbak/DAMENG/arch              #本地归档文件存放路径
ARCH_FILE_SIZE = 512                        #单位Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT  = 102400                  #单位Mb,0表示无限制,范围1024~4294967294M

3.4.4 配置主库dmwatcher.ini

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

3.4.5 主库启动至mount状态
dmserver /dmdata/DAMENG/dm.ini mount
3.4.6 主库设置OGUID

SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SQL> sp_set_oguid(453332);

3.4.7 主库修改数据库模式
#主库修改数据库为 primary

SQL>alter database primary;
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

3.4.8 拷贝主库配置文件至备库

cd /dmdata/DAMENG/
scp -r dmwatcher.ini dmmal.ini dmarch.ini dmdba@192.168.6.161:/dmdata/DAMENG

dmwatcher.ini 、dmmal.ini不需要修改
修改dmarch.ini中的ARCH_DEST

3.5 ---------------------------------配置备库GRP1_RT_02------------------------------------
3.5.1 配置dm.ini

#实例名,建议使用―组名_守护环境_序号‖的命名方式,总长度不能超过 16

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

3.5.2 配置dmmal.ini
2节点配置配置一样,此处不用修改。 具体如下:

MAL_CHECK_INTERVAL = 5                      #MAL 链路检测时间间隔 
MAL_CONN_FAIL_INTERVAL = 5                  #判定MAL链路断开的时间 
								            
[MAL_INST1]                                 
MAL_INST_NAME = GRP1_RT_01                  #实例名和dm.ini中的INSTANCE_NAME 一致 
MAL_HOST = 192.168.6.160                    #MAL 系统监听TCP连接的 IP 地址 
MAL_PORT = 5436                             #MAL #系统监听 TCP 连接的端口 
MAL_INST_HOST = 192.168.6.160               #实例的对外服务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 = 192.168.6.161 
MAL_PORT = 5436 
MAL_INST_HOST = 192.168.6.161 
MAL_INST_PORT = 5236 
MAL_DW_PORT = 5536
MAL_INST_DW_PORT  = 5336

3.5.3 配置dmarch.ini
当前实例 GRP1_RT_02 是备库,守护系统配置完成后, 可能在各种故障处理中,
GRP1_RT_02 切换为新的主库,正常情况下, GRP1_RT_01 会切换为新的备库,需要向GRP1_RT_01 同步数据,因此实时归档的 ARCH_DEST 配置为 GRP1_RT_01

[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME                        #实时归档类型
ARCH_DEST = GRP1_RT_01                      #实时归档目标实例名(远程库实例名)
								            
[ARCHIVE_LOCAL1]                            
ARCH_TYPE = LOCAL                           #本地归档类型
ARCH_DEST = /dmdata/DAMENG/arch             #本地归档文件存放路径
ARCH_FILE_SIZE = 512                        #单位Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT  = 102400                  #单位Mb,0表示无限制,范围1024~4294967294M

3.5.4 配置dmwatcher.ini

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

3.5.5 启动至mount状态

dmserver /dmdata/DAMENG/dm.ini mount

3.5.6 设置OGUID

SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SQL> sp_set_oguid(453332);

3.5.7 修改数据库模式
#备库修改数据库为 standby

SQL>alter database standby;
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

3.8 执行优化脚本

执行优化性能参数脚本,2节点都执行

4 配置监视器(单独安装或者安装在备机)
4.1 配置dmmonitor.ini

MON_DW_CONFIRM = 0                          #普通监视器模式 
MON_LOG_PATH = /opt/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 = 192.168.142.3:5536 
MON_DW_IP = 192.168.142.5:5536

5 主备同步测试及主备切换测试
5.1 主备同步
-----主库创建表test1

SQL> create table test1 as select * from sysobjects;

-----备库查询

SQL> select count(*) from test1;

5.2 主备切换

dmmonitor /dmdata/DAMENG/dmmal.ini
show
login
switchover GRP1.GRP1_RT_02
switchover GRP1.GRP1_RT_01

6 定时备份策略
全量备份
全量备份:定时每周六晚22点整进行

call SP_CREATE_JOB('JOB_FULL_BAK_TIMELY',1,0,'',0,0,'',0,'定时全量备份');
call SP_JOB_CONFIG_START('JOB_FULL_BAK_TIMELY');
call SP_ADD_JOB_STEP('JOB_FULL_BAK_TIMELY', 'STEP_FULL_BAK', 6, '01000000/dmbak/DAMENG', 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('JOB_FULL_BAK_TIMELY', 'SCHEDULE_FULL_BAK', 1, 2, 1, 64, 0, '22:00:00', NULL, '2019-07-01 22:00:00', NULL, '');
call SP_JOB_CONFIG_COMMIT('JOB_FULL_BAK_TIMELY');

增量备份
增量备份:定时每周一、二、三、四、五、日晚22点整进行

call SP_CREATE_JOB('JOB_INCREMENT_BAK_TIMELY',1,0,'',0,0,'',0,'定时增量备份');
call SP_JOB_CONFIG_START('JOB_INCREMENT_BAK_TIMELY');
call SP_ADD_JOB_STEP('JOB_INCREMENT_BAK_TIMELY', 'STEP_INCREMENT_BAK', 6, '11000000/dmbak/DAMENG|/dmbak/DAMENG', 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('JOB_INCREMENT_BAK_TIMELY', 'SCHEDULE_INCREMENT_BAK', 1, 2, 1, 63, 0, '22:00:00', NULL, '2019-07-01 22:00:00', NULL, '');
call SP_JOB_CONFIG_COMMIT('JOB_INCREMENT_BAK_TIMELY');

备份清理
备份保留7天,清除7天前的备份,每晚21点整进行

call SP_CREATE_JOB('JOB_DEL_BAK_TIMELY',1,0,'',0,0,'',0,'定时删除备份');
call SP_JOB_CONFIG_START('JOB_DEL_BAK_TIMELY');
call SP_ADD_JOB_STEP('JOB_DEL_BAK_TIMELY', 'STEP_DEL_BAK', 0, 'SP_DB_BAKSET_REMOVE_BATCH(NULL,SYSDATE-7);', 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('JOB_DEL_BAK_TIMELY', 'SCHEDULE_DEL_BAK', 1, 2, 1, 1, 0, '1:00:00', NULL, '2019-07-01 21:00:00', NULL, '');
call SP_JOB_CONFIG_COMMIT('JOB_DEL_BAK_TIMELY');

定时删除归档
归档保留7天,每周六凌晨3点执行
call

SP_CREATE_JOB('JOB_DEL_ARCH_TIMELY',1,0,'',0,0,'',0,'定时删除归档');
call SP_JOB_CONFIG_START('JOB_DEL_ARCH_TIMELY');
call SP_ADD_JOB_STEP('JOB_DEL_ARCH_TIMELY', 'STEP_DEL_ARCH', 0, 'SF_ARCHIVELOG_DELETE_BEFORE_TIME(SYSDATE-7);', 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('JOB_DEL_ARCH_TIMELY', 'SCHEDULE_DEL_ARCH', 1, 2, 1, 1, 0, '03:00:00', NULL, '2019-07-01 21:00:00', NULL, '');
call SP_JOB_CONFIG_COMMIT('JOB_DEL_ARCH_TIMELY');

全备 增备 定时删除过期备份
每周六22:00点全备 每周日、周一至周五01:00增备 每周五删除7天前的备份数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值