部署达梦主备集群

文章目录

  • 一、安装前准备
    • 1.1配置心跳网络
      • 1.1.1设置VM的虚拟网络
      • 1.1.2添加网卡
      • 1.1.3打开三台虚拟机,修改网卡配置并更新网卡
      • 1.1.4重启网络
  • 二、集群搭建
    • 2.1配置主库
      • 2.1.1初始化实例并备份数据
      • 2.1.2配置dm.ini
      • 2.1.3配置dmarch.ini
      • 2.1.4配置dmmal.ini
      • 2.1.5配置dmwatcher.ini
      • 2.1.6注册服务
    • 2.2配置备库
      • 2.2.1初始化实例并恢复数据
      • 2.2.2配置dm.ini
      • 2.2.3配置dmarch.ini
      • 2.2.4配置dmmal.ini
      • 2.2.5配置dmwatcher.ini
      • 2.2.6注册服务
    • 2.3配置监视器
      • 2.3.1创建dmmonitor.ini
      • 2.3.2注册服务
    • 2.4启动服务及查看信息
      • 2.4.1启动数据库并修改参数
      • 2.4.2启动守护进程
      • 2.4.3启动监视器

一、安装前准备

在守护集群的三台机器都预装了DM8数据库
安装数据库可以看这篇文章安装DM8数据库

1.1配置心跳网络

为三台虚拟机各添加一个网卡,接入内部网络交换模块。

1.1.1设置VM的虚拟网络

打开VM→编辑→虚拟网络编辑器→更改设置,添加网络,这里选择了VMnet2,选择仅主机模式,设置DHCP
部署达梦主备集群_第1张图片
部署达梦主备集群_第2张图片

1.1.2添加网卡

分别为每台虚拟机添加一个网络适配器,在网络连接设置中选择“自定义”,选择刚刚添加的虚拟网络
部署达梦主备集群_第3张图片

1.1.3打开三台虚拟机,修改网卡配置并更新网卡

查看网卡信息

ifconfig

修改网卡配置(这里我新添加的网卡名为ens36)

cd /etc/sysconfig/network-scripts
vi ifcfg-ens36

如果文件是新建的,则将原有的网卡复制一份并命名

cp ifcfg-ens33 ifcfg-ens36

修改以下配置

BOOTPROTO=static
ONBOOT=yes
NAME=ens36
DEVICE=ens36
IPADDR=192.168.125.100    #三台机器配置不同的ip
NETMASK=255.255.255.0
GATEWAY=192.168.125.1
PREFIX=24

1.1.4重启网络

service network restart

二、集群搭建

2.1配置主库

2.1.1初始化实例并备份数据

初始化实例

cd /dm/bin
./dminit PATH=/dm/data/ INSTANCE_NAME=GRP1_RT_01 PAGE_SIZE=32 EXTENT_SIZE=32 LOG_SIZE=2048

前台启动服务

/dm/bin/dmserver /dm/data/DAMENG/dm.ini

开启归档

/dm/bin/disql SYSDBA/SYSDBA

SQL> ALTER DATABASE MOUNT;
SQL> ALTER DATABASE ARCHIVELOG;
SQL> ALTER DATABASE ADD ARCHIVELOG 'DEST=/dm/data/DAMENG/arch, TYPE=LOCAL, FILE_SIZE=1024, SPACE_LIMIT=51200';
SQL> ALTER DATABASE OPEN;

关闭前台实例服务进行脱机备份数据

/dm/bin/dmrman

BACKUP DATABASE '/dm/data/DAMENG/dm.ini' FULL BACKUPSET '/dm/data/DAMENG/bak/BACKUP_FILE';

拷贝备份文件(备库先要初始化实例)

scp -r /dm/data/DAMENG/bak/BACKUP_FILE [email protected]:/dm/data/DAMENG/bak

2.1.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 次的日志重演信息

2.1.3配置dmarch.ini

vi /dm/data/DAMENG/dmarch.ini

ARCH_WAIT_APPLY            = 0   #0:高性能 1:事务一致
[ARCHIVE_LOCAL]
ARCH_TYPE                = LOCAL  #本地归档类型
ARCH_DEST                = /dm/data/DAMENG/arch/  #本地归档存放路径
ARCH_FILE_SIZE           = 1024  #单个归档大小,单位 MB
ARCH_SPACE_LIMIT         = 51200  #归档上限,单位 MB

[ARCHIVE_REALTIME1]
ARCH_TYPE                = REALTIME  #实时归档类型
ARCH_DEST                = GRP1_RT_02  #实时归档目标实例名

2.1.4配置dmmal.ini

vi /dm/data/DAMENG/dmmal.ini

MAL_CHECK_INTERVAL         = 10  #MAL 链路检测时间间隔
MAL_CONN_FAIL_INTERVAL     = 10  #判定 MAL 链路断开的时间
MAL_TEMP_PATH              = /dm/data/malpath/  #临时文件目录
MAL_BUF_SIZE               = 512  #单个 MAL 缓存大小,单位 MB
MAL_SYS_BUF_SIZE           = 2048  #MAL 总大小限制,单位 MB
MAL_COMPRESS_LEVEL         = 0  #MAL 消息压缩等级,0 表示不压缩

[MAL_INST1]
MAL_INST_NAME            = GRP1_RT_01  #实例名,和 dm.ini 的 INSTANCE_NAME 一致
MAL_HOST                 = 192.168.125.100  #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT                 = 5336  #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST            = 192.168.188.100  #实例的对外服务 IP 地址
MAL_INST_PORT            = 5236  #实例对外服务端口,和 dm.ini 的 PORT_NUM 一致
MAL_DW_PORT              = 5436  #实例对应的守护进程监听 TCP 连接的端口
MAL_INST_DW_PORT         = 5536  #实例监听守护进程 TCP 连接的端口

[MAL_INST2]
MAL_INST_NAME            = GRP1_RT_02
MAL_HOST                 = 192.168.125.101
MAL_PORT                 = 5336
MAL_INST_HOST            = 192.168.188.101
MAL_INST_PORT            = 5236
MAL_DW_PORT              = 5436
MAL_INST_DW_PORT         = 5536

2.1.5配置dmwatcher.ini

vi /dm/data/DAMENG/dmwatcher.ini

[GRP1]
DW_TYPE                  = GLOBAL  #全局守护类型
DW_MODE                  = MANUAL  #MANUAL:故障手切 AUTO:故障自切
DW_ERROR_TIME            = 20  #远程守护进程故障认定时间
INST_ERROR_TIME          = 20  #本地实例故障认定时间
INST_RECOVER_TIME        = 60  #主库守护进程启动恢复的间隔时间
INST_OGUID               = 45331  #守护系统唯一 OGUID 值
INST_INI                 = /dm/data/DAMENG/dm.ini  #dm.ini 文件路径
INST_AUTO_RESTART        = 1  #打开实例的自动启动功能
INST_STARTUP_CMD         = /dm/bin/dmserver  #命令行方式启动
RLOG_SEND_THRESHOLD      = 0  #指定主库发送日志到备库的时间阈值,默认关闭
RLOG_APPLY_THRESHOLD     = 0  #指定备库重演日志的时间阈值,默认关闭

2.1.6注册服务

/dm/script/root/dm_service_installer.sh -t dmserver -p GRP1_RT_01 -dm_ini /dm/data/DAMENG/dm.ini -m mount
/dm/script/root/dm_service_installer.sh -t dmwatcher -p Watcher -watcher_ini /dm/data/DAMENG/dmwatcher.ini

若要删除自启,可以用以下命令

/dm/script/root/dm_service_uninstaller.sh -n DmServiceGRP1_RT_01
/dm/script/root/dm_service_uninstaller.sh -n DmWatcherServiceWatcher

2.2配置备库

2.2.1初始化实例并恢复数据

初始化实例

/dm/bin/dminit PATH=/dm/data/ INSTANCE_NAME=GRP1_RT_02 PAGE_SIZE=32 EXTENT_SIZE=32 LOG_SIZE=2048

恢复数据

/dm/bin/dmrman

RESTORE DATABASE '/dm/data/DAMENG/dm.ini' FROM BACKUPSET '/dm/data/DAMENG/bak/BACKUP_FILE'"
RECOVER DATABASE '/dm/data/DAMENG/dm.ini' FROM BACKUPSET '/dm/data/DAMENG/bak/BACKUP_FILE'"
RECOVER DATABASE '/dm/data/DAMENG/dm.ini' UPDATE DB_MAGIC"

2.2.2配置dm.ini

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 次的日志重演信息

2.2.3配置dmarch.ini

ARCH_WAIT_APPLY            = 0  #0:高性能  1:事务一致

[ARCHIVE_LOCAL]
ARCH_TYPE                = LOCAL  #本地归档类型
ARCH_DEST                = /opt/dmdbms/data/DAMENG/arch/  #本地归档存放路径
ARCH_FILE_SIZE           = 1024  #单个归档大小,单位 MB
ARCH_SPACE_LIMIT         = 51200  #归档上限,单位 MB

[ARCHIVE_REALTIME1]
ARCH_TYPE                = REALTIME  #实时归档类型
ARCH_DEST                = GRP1_RT_01  #实时归档目标实例名

2.2.4配置dmmal.ini

MAL_CHECK_INTERVAL         = 10  #MAL 链路检测时间间隔
MAL_CONN_FAIL_INTERVAL     = 10  #判定 MAL 链路断开的时间
MAL_TEMP_PATH              = /dm/data/malpath/  #临时文件目录
MAL_BUF_SIZE               = 512  #单个 MAL 缓存大小,单位 MB
MAL_SYS_BUF_SIZE           = 2048  #MAL 总大小限制,单位 MB
MAL_COMPRESS_LEVEL         = 0  #MAL 消息压缩等级,0 表示不压缩

[MAL_INST1]
MAL_INST_NAME            = GRP1_RT_01  #实例名,和 dm.ini 的 INSTANCE_NAME 一致
MAL_HOST                 = 192.168.125.100  #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT                 = 5336  #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST            = 192.168.188.100  #实例的对外服务 IP 地址
MAL_INST_PORT            = 5236  #实例对外服务端口,和 dm.ini 的 PORT_NUM 一致
MAL_DW_PORT              = 5436  #实例对应的守护进程监听 TCP 连接的端口
MAL_INST_DW_PORT         = 5536  #实例监听守护进程 TCP 连接的端口

[MAL_INST2]
MAL_INST_NAME            = GRP1_RT_02
MAL_HOST                 = 192.168.125.101
MAL_PORT                 = 5336
MAL_INST_HOST            = 192.168.188.101
MAL_INST_PORT            = 5236
MAL_DW_PORT              = 5436
MAL_INST_DW_PORT         = 5536

2.2.5配置dmwatcher.ini

[GRP1]
DW_TYPE                  = GLOBAL  #全局守护类型
DW_MODE                  = MANUAL  #MANUAL:故障手切 AUTO:故障自切
DW_ERROR_TIME            = 20  #远程守护进程故障认定时间
INST_ERROR_TIME          = 20  #本地实例故障认定时间
INST_RECOVER_TIME        = 60  #主库守护进程启动恢复的间隔时间
INST_OGUID               = 45331  #守护系统唯一 OGUID 值
INST_INI                 = /dm/data/DAMENG/dm.ini  #dm.ini 文件路径
INST_AUTO_RESTART        = 1  #打开实例的自动启动功能
INST_STARTUP_CMD         = /dm/bin/dmserver  #命令行方式启动
RLOG_SEND_THRESHOLD      = 0  #指定主库发送日志到备库的时间阈值,默认关闭
RLOG_APPLY_THRESHOLD     = 0  #指定备库重演日志的时间阈值,默认关闭

2.2.6注册服务

/dm/script/root/dm_service_installer.sh -t dmserver -p GRP1_RT_02 -dm_ini /dm/data/DAMENG/dm.ini -m mount
/dm/script/root/dm_service_installer.sh -t dmwatcher -p Watcher -watcher_ini /dm/data/DAMENG/dmwatcher.ini

若要删除自启,可以用以下命令

/dm/script/root/dm_service_uninstaller.sh -n DmServiceGRP1_RT_02
/dm/script/root/dm_service_uninstaller.sh -n DmWatcherServiceWatcher

2.3配置监视器

集群有两种模式手动切换和自动切换。
手动切换:集群各节点的 bin 目录中,存放非确认监视器配置文件。
自动切换:在确认监视器上(必须非集群节点),存放确认监视器配置文件,并注册后台自启服务。

2.3.1创建dmmonitor.ini

vi /dm/bin/dmmonitor.ini

MON_DW_CONFIRM             = 0  #0:非确认(故障手切) 1:确认(故障自切)
MON_LOG_PATH               = ../log  #监视器日志文件存放路径
MON_LOG_INTERVAL           = 60  #每隔 60s 定时记录系统信息到日志文件
MON_LOG_FILE_SIZE          = 512  #单个日志大小,单位 MB
MON_LOG_SPACE_LIMIT        = 2048  #日志上限,单位 MB

[GRP1]
MON_INST_OGUID           = 45331  #组 GRP1 的唯一 OGUID 值
MON_DW_IP                = 192.168.125.100:5436  #IP 对应 MAL_HOST,PORT 对应 MAL_DW_PORT
MON_DW_IP                = 192.168.125.101:5436

2.3.2注册服务

/dm/script/root/dm_service_installer.sh -t dmmonitor -p Monitor -monitor_ini /dm/bin/dmmonitor.ini

若要删除自启,可使用以下命令

/dm/script/root/dm_service_uninstaller.sh -n DmMonitorServiceMonitor

2.4启动服务及查看信息

2.4.1启动数据库并修改参数

主库

/dm/bin/DmServiceGRP1_RT_01 start
/dm/bin/disql SYSDBA/SYSDBA

SP_SET_OGUID(45331);
ALTER DATABASE PRIMARY;

备库

/dm/bin/DmServiceGRP1_RT_02 start
/dm/bin/disql SYSDBA/SYSDBA

SP_SET_OGUID(45331);
ALTER DATABASE STANDBY;

2.4.2启动守护进程

/dm/bin/DmWatcherServiceWatcher start

2.4.3启动监视器

后台启动

/dm/bin/DmMonitorServiceMonitor start

前台启动

/dm/bin/dmmonitor /dm/bin/dmmonitor.ini

监视器的用法可以用help查看。

达梦在线服务平台

你可能感兴趣的:(数据库)