DM8主备集群部署过程

1. 集群相关知识

1.1 实时主备集群:
实时主备由一个主库以及一个或者多个配置了实时(Realtime)归档的备库组成,其主要目的是保障数据库可用性,提高数据安全性。
实时主备系统中,主库提供完整的数据库功能,备库提供只读服务。
主库修改数据产生的redo日志,通过实时归档机制,在写入联机redo日志文件之前发送到备库,实时备库通过重演redo日志与主库保持数据同步。当主库出现故障时,备库在将所有redo日志重演结束后,就可以切换为主库对外提供数据库服务。
主备可以使单机,也可以是DSC、MPP。

1.2 DM数据守护的实现原理:

将主库(生产库)产生的redo日志传输到备库,备库接收并重新应用redo日志,从而实现备库与主库的数据同步。
DM数据守护的核心思想是监控数据库状态,获取主、备数据同步情况,为redo日志传输与重演过程中出现的各种异常情况提供一些列的解决方案。

DM数据守护系统结构:
主库、备库
Redo日志、Redo日志传输、Redo日志重演
数据守护(dmwatcher)、监听器(dmmonitor)

 

1.3 归档类型

本地归档:
Redo日志写入日志文件后,又由归档线程再写入本地服务器中的归档日志。
实时归档(Realtime):
实时归档只有在数据库模式为Primary主库才生效,是实现mpp和实时主备的基础。在redo日志写入联机日志文件之前,再通过MAL系统将redo_buf发送到备库。
即时归档(Timely):
在redo日志写入联机日志文件之后,再通过MAL系统将redo_buf发送到备库,即时归档是读写分离实现的基础,一个主库最多配8个即时备库。
注意:说白了只有即时归档是在写入内存之后就发送过去了,并未发生IO,其余模式是写到磁盘之后再发送。
这里说的归档之前说过了,所以就简单介绍下,不做过多赘述。
远程归档:
Redo日志写入日志文件后,又由归档线程再写入远程服务器中的归档日志。
 

2. 集群部署

2.1 端口规划

实例名PORT_NUMMAL_INST_HOSTMAL_INST_PORTMAL_DM_INST_PORTMAL_DM_PORTMAL_PORTMAL_HOST
DWC15236192.168.1.1195236523752385239192.168.1.119
DWC25236192.168.1.1205236523752385239192.168.1.120
MONITOR192.168.1.121

端口号相关说明:
PORT_NUM:数据库实例监听端口
MAL_INST_HOST:数据库的对外服务IP地址
MAL_INST_PORT:实例的对外服务端口,和dm.ini中的PORT_NUM一致
MAL_INST_DM_PORT:实例监听守护进程TCP连接的端口
MAL_DM_PORT:实例对应的守护进程监听TCP连接的端口
MAL_HOST:MAL系统监听TCP连接的IP地址
MAL_PORT:MAL系统监听TCP连接的端口

初始化数据库:

分别在两台数据库执行如下命令:

./dminit  path=/dm/data/DAMENG db_name=DAMENG instance_name=DMSERVER01 PAGE_SIZE=16 extent_size=16 case_sensitive=Y  CHARSET=1 port_num=5236 log_size=2048

分别在两台数据库服务器修改dm.ini、dmmal.ini、dmwatch.ini、dmarch.ini

dm.ini:根据之前的规划参数修改IP、PORT

dmmal.ini

MAL_CHECK_INTERVAL                                  = 5                                                                                 MAL链路检测时间间隔
MAL_CONN_FAIL_INTERVAL                          = 5                                                                                 判定MAL链路断开的时间
MAL_TEMP_PATH                                              = /data/dmdata/DAMENG/DAMENG/MAL_TEMP

[DMSERVER01]
  MAL_INST_NAME                                              = DMSERVER01                        实例名,和dm.ini中的INSTANCE_NAME一致
  MAL_HOST                                                          =192.168.1.119                    MAL系统监听TCP连接的IP地址
  MAL_PORT                                                          = 5239                                                              MAL系统监听TCP连接的端口
  MAL_INST_HOST                                              =192.168.1.119                           实例的对外服务IP地址 
  MAL_INST_PORT                                              = 5236                                           实例的对外服务端口,和dm.ini中的PORT_NUM 一致
  MAL_DW_PORT                                                = 5238                                                 实例对应的守护进程监听TCP连接的端口
  MAL_INST_DW_PORT                                     = 5237
[DMSERVER02]
  MAL_INST_NAME                                              = DMSERVER02                        实例名,和dm.ini中的INSTANCE_NAME一致
  MAL_HOST                                                          =192.168.1.120                    MAL系统监听TCP连接的IP地址
  MAL_PORT                                                          = 5239                                                              MAL系统监听TCP连接的端口
  MAL_INST_HOST                                              =192.168.1.120                           实例的对外服务IP地址 
  MAL_INST_PORT                                              = 5236                                           实例的对外服务端口,和dm.ini中的PORT_NUM 一致
  MAL_DW_PORT                                                 = 5238                                                 实例对应的守护进程监听TCP连接的端口
  MAL_INST_DW_PORT                                      = 5237

dmwatcher.ini

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

dmarch.ini

[ARCHIVE_REALTIME1]
ARCH_TYPE                                                        = REALTIME                                                                                                         实时归档类型
ARCH_DEST                                                       = DMSERVER02         
[ARCHIVE_DMSERVER01]
ARCH_TYPE                                                        = LOCAL                                                                                                                 本地归档类型
ARCH_DEST                                                        =  /dm/data/dmarch                                                        本地归档文件存放路径
ARCH_FILE_SIZE                                               = 1024                                                                                                                         单位 Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT                                        = 512000

对dwc1进行一次全库备份:

RMAN> backup database '/dm/data/DAMENG/DAMENG/dm.ini' backupset '/data/dmdata/DAMENG/DAMENG/bak/full_backup_zdsb';

将dwc1的备份集拷贝到dwc2,并在dwc2上进行全库的还原、恢复:

RMAN> restore database '/data/dmdata/DAMENG/DAMENG/dm.ini' from backupset '/data/dmdata/DAMENG/DAMENG/bak/full_backup_zdsb';
RMAN> recover  database '/data/dmdata/DAMENG/DAMENG/dm.ini' from backupset '/data/dmdata/DAMENG/DAMENG/bak/full_backup_zdsb';
RMAN> recover database '/data/dmdata/DAMENG/DAMENG/dm.ini' update db_magic;

在monitor服务器部署dmmonitor,修改dmmonitor.ini:

MON_DW_CONFIRM                              = 1                                                                                          确认监视器模式 0:为普通监视器,缺省为0。1:为确认监视器
MON_LOG_PATH                                    = /dm/data/dmdbms/log/log_dmmonitor                    监视器日志文件存放路径
MON_LOG_INTERVAL                           = 60                                                                                        每隔60s定时记录系统信息到日志文件
MON_LOG_FILE_SIZE                           = 512                                                                                      每个日志文件最大32M
MON_LOG_SPACE_LIMIT                    = 4096                                                                                    不限定日志文件总占用空间
[GROUP_DMSERVER]
MON_INST_OGUID                                = 453331                                                                                组GROUP_A的唯一OGUID值
以下配置为监视器到组GRP1的守护进程的连接信息,以“IP:PORT”的形式配置
IP对应dmmal.ini中的MAL_HOST,PORT对应dmmal.ini中的MAL_DW_PORT
MON_DW_IP                                           =192.168.1.119:5238
MON_DW_IP                                           =192.168.1.120:5238

注册数据库服务: 
 

/dm/data/dmdbms/script/root/dm_service_installer.sh  -t dmserver -p DMSERVER01 -dm_ini /dm/data/DAMENG/DAMENG/dm.ini

注册守护服务:

/dm/data/dmdbms/script/root/dm_service_installer.sh  -t dmserver -p DMSERVER01 -dm_ini /dm/data/DAMENG/DAMENG/dm.ini

注册监视器服务:

/dm/data/dmdbms/script/root/dm_service_installer.sh  -t dmserver -p DMSERVER01 -dm_ini /dm/data/DAMENG/DAMENG/dm.ini

启动dwc1(mount状态),修改数据库为主库状态,修改oguid:

./DmServiceDMSERVER01 start 

./disql

SQL> sp_set_oguid(453331);
SQL> alter database primary;

启动dwc2(mount状态),修改数据库为主库状态,修改oguid:

./DmServiceDMSERVER02 start 

./disql

SQL> sp_set_oguid(453331);
SQL> alter database standby;

配置 /etc/dm_svc.conf:

 
TIME_ZONE=(480)
LANGUAGE=(cn)
 
DM_SERVER=(192.168.1.119:5236,192.168.1.120:5236)
 
[DM_SERVER]
LOGIN_MODE =(1)
SWITCH_TIME=(60)
SWITCH_INTERVAL=(1000)
 
解释说明:
LOGIN_MODE =(1) // 1:只连接主库;
SWITCH_TIME=60) // 60: 检测到故障服务器之间切换的次数
SWITCH_INTERVAL=(1000) // 1秒 服 务 器 之 间 切 换 的 时 间 间 隔

达梦在线服务平台:https://eco.dameng.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值