达梦8主备集群的搭建

DM8主备集群是比较常见的集群模式,现在进行主备集群的学习

  • 安装前规划
  1. 路径规划

注:测试环境,创建对应目录进行模拟,生产环境必须单独挂载磁盘或者分配磁盘阵列

mkdir /dmrpl

mkdir /dmdata

mkdir /dmarch

mkdir /dmbak

参数

说明

/dmrpl

数据库安装路径

/dmdata

数据文件存放路径

/dmarch

归档日志存放路径

/dmbak

备份文件存放路径

  1. 集群规划

服务器名称

IP地址

用途

db2

192.168.1.202/192.168.56.102

监视器服务器

db3

192.168.1.203/192.168.56.103

主库服务器

db4

192.168.1.204/192.168.56.104

备库服务器

  1. 端口规划

主机名称

端口

用途

db3

5236

数据库实例端口

db3

61141

MAL系统监听TCP端口

db3

52141

本地守护进程监听TCP端口

db3

33141

实例监听守护进程TCP端口

db4

5236

数据库实例端口

db4

61141

MAL系统监听TCP端口

db4

52141

本地守护进程监听TCP端口

db4

33141

实例监听守护进程TCP端口

  1. 实例规划

参数

参数值

说明

库名

DMRPL

生产环境根据实际用途进行命名

实例名

DMRPL

可以跟库名不同

端口号

5236

单机多实例必须不同,多服务器可以相同

页大小

16

大小写敏感

  1. 日志规划

参数

参数值

说明

在线日志文件大小

1G

在线日志文件数量

4

归档日志文件大小

512M

归档日志文件可使用空间

10240M

大约10G,可存放20个归档日志,生产环境根据实际存储大小进行调整

  1. 用户规划

参数

说明

SYSDBA

超级管理员

DMDBA

数据库管理员,供日常使用

USR_业务_PROD

业务用户,命名方式以USR开头,中间为实际业务,后缀用来区分数据库环境,如测试环境为TEST,生产环境为PROD。生产环境业务用户权限要注意

  • 安装前环境检查

操作系统检查:more /etc/*release

uname -a

CPU检查:lscpu

内存检查:more /proc/meminfo或free -m

存储空间检查:主要针对安装路径规划中的磁盘进行确认df -h

  • 安装
  1. 创建用户和组,并修改用户密码

groupadd dinstall

useradd  -g dinstall -m -d /home/dmdba -s /bin/bash  dmdba

passwd dmdba

  1. 用户资源限制调整

修改/etc/security/limits.conf添加

vim /etc/security/limits.conf

dmdba soft core unlimited
dmdba hard core unlimited
dmdba soft nofile 65536
dmdba hard nofile 65536
dmdba soft nproc  65536
dmdba hard nproc  65536
dmdba soft stack  65536
dmdba hard stack  65536

设置用户环境变量

切换到dmdba用户,修改.bash_profile

export DM_HOME=/dm8

export PATH=$PATH:$DM_HOME/bin

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$DM_HOME/bin

添加后,使环境变量生效source .bash_profile

  1. 防火墙设置

关闭防火墙,生产环境建议打开防火墙,开启5236/61141/52141/33141端口

  1. 下载数据库软件

根据实际操作系统下载对应版本

wget https://package.dameng.com/eco/adapter/DM8/202203/dm8_20220304_x86_rh6_64_ent.zip

  1. 解压缩

unzip dm8_20220304_x86_rh6_64_ent.zip

mount -oloop dm8_20220304_x86_rh6_64_ent_8.1.2.114.iso /mnt/

  1. 切换用户,执行安装

./DMInstall.bin -i

切换到root用户执行脚本

sh /dm8/script/root/root_installer.sh

  1. 初始化实例

切换到dmdba用户

./dminit path=/dmdata db_name=dmrpl page_size=16

  1. 切换到root用户

执行命令,注册服务

./dm_service_installer.sh -t dmserver -p DMRPL -dm_ini /dmdata/dmrpl/dm.ini

  1. 主库脱机备份

确认主库已经启动DMAP服务

  1. 使用rman进行备份

注意:使用rman备份时,数据库需要处于关闭状态

关闭数据库 systemctl stop DmServiceDMRPL

backup database '/dmdata/dmrpl/dm.ini' backupset '/dmbak/bakfull';

 '/dmdata/dmrpl/dm.ini'为数据文件路径

'/dmbak/bakfull'为备份存放路径

  1. 拷贝主库备份到备库进行还原

备库同样要处于关闭状态

systemctl stop DmServiceDMRPL

先执行restore

restore database '/dmdata/dmrpl/dm.ini' from backupset '/dmbak/bakfull';

执行recover

recover database '/dmdata/dmrpl/dm.ini' from backupset '/dmbak/bakfull';

执行 recover update db_magic

recover database '/dmdata/dmrpl/dm.ini' update db_magic;

  1. 修改dm.ini参数文件

主库修改

INSTANCE_NAME = dmrpl1

MAL_INI = 1

ARCH_INI = 1

ALTER_MODE_STATUS = 0

ENABLE_OFFLINE_TS = 2

备库修改

INSTANCE_NAME = dmrpl2
MAL_INI = 1
ARCH_INI = 1
ALTER_MODE_STATUS = 0
ENABLE_OFFLINE_TS = 2

  1. 配置归档dmarch.ini

主库配置文件

[ARCHIVE_REALTIME]

ARCH_TYPE     = REALTIME  #实时归档类型

ARCH_DEST     = dmrpl2   #实时归档目标实例名(主库侧填写备库实例名)

[ARCHIVE_LOCAL1]

ARCH_TYPE     = LOCAL #本地归档类型

ARCH_DEST     = /dmarch/ #本地归档文件存放路径

ARCH_FILE_SIZE    = 128 #单位 MB,本地单个归档文件最大值

ARCH_SPACE_LIMIT  = 10240    #单位 MB,0 表示无限制,范围 1024~4294967294 MB

备库配置文件

[ARCHIVE_REALTIME]

ARCH_TYPE     = REALTIME  #实时归档类型

ARCH_DEST     = dmrpl1   #实时归档目标实例名(备库侧填写主库实例名)

[ARCHIVE_LOCAL1]

ARCH_TYPE     = LOCAL #本地归档类型

ARCH_DEST     = /dmarch/  #本地归档文件存放路径

ARCH_FILE_SIZE    = 128 #单位 MB,本地单个归档文件最大值

ARCH_SPACE_LIMIT  = 10240    #单位 MB,0 表示无限制,范围 1024~4294967294 MB

  1. 配置通信参数文件

主库和备库的参数文件必须相同

MAL_CHECK_INTERVAL   = 5  #MAL 链路检测时间间隔

MAL_CONN_FAIL_INTERVAL  = 5  #判定 MAL 链路断开的时间

[MAL_INST1]

  MAL_INST_NAME = dmrpl1 #与 dm.ini 中的 INSTANCE_NAME 一致

  MAL_HOST     = 192.168.56.103  #MAL 系统监听 TCP 内部网络 IP

  MAL_PORT     = 61141 #MAL 系统监听 TCP 连接的端口

  MAL_INST_HOST   = 192.168.1.203  #实例的对外服务 IP 地址

  MAL_INST_PORT   = 5236 #与 dm.ini 中的 PORT_NUM 一致

  MAL_DW_PORT   = 52141 #实例对应的守护进程监听 TCP 端口

  MAL_INST_DW_PORT = 33141

[MAL_INST2]

  MAL_INST_NAME = dmrpl2 #与 dm.ini 中的 INSTANCE_NAME 一致

  MAL_HOST      = 192.168.56.104  # MAL 系统监听 TCP 内部网络 IP

  MAL_PORT          = 61141 #MAL 系统监听 TCP 连接的端口

  MAL_INST_HOST         = 192.168.1.204  #实例的对外服务 IP 地址

  MAL_INST_PORT         = 5236 #与 dm.ini 中的 PORT_NUM 一致

  MAL_DW_PORT  = 52141 #实例对应的守护进程监听 TCP 端口

  MAL_INST_DW_PORT = 33141

  1. 配置守护进程dmwatcher.ini

[GRP_RW]

DW_TYPE    = GLOBAL  #全局守护类型

DW_MODE    = AUTO   #自动切换模式

DW_ERROR_TIME     = 10  #远程守护进程故障认定时间

INST_RECOVER_TIME  = 60         #主库守护进程启动恢复的间隔时间

INST_ERROR_TIME   = 10  #本地实例故障认定时间

INST_OGUID         = 453331 #守护系统唯一 OGUID 值

INST_INI           = /dmdata/dmrpl/dm.ini #dm.ini 配置文件路径

INST_AUTO_RESTART  = 1   #打开实例的自动启动功能

INST_STARTUP_CMD   = /dmrpl/bin/dmserver #命令行方式启动

  1. 使用dmdba用户启动数据库到mount状态(主备库相同)

测试机器,内存不够大,需要修改dm.ini文件中的

启动到mount状态

新窗口登陆到数据库

./disql SYSDBA/SYSDBA

主备库都需要修改oguid

sp_set_oguid(453331);

主库修改为primary

alter database primary;

备库修改为standby

alter database standby;

  1. 启动守护进程,主备库同样操作

切换到dmdba用户

./dmwatcher /dmdata/dmrpl/dmwatcher.ini

启动守护进程后,数据库会处于open状态

  1. 配置确认监视器,在db2上创建

创建dmmonitor.ini文件

####确认监视器 dmmonitor.ini

MON_DW_CONFIRM    = 1   #确认监视器模式

MON_LOG_PATH    = /dmmonitor #监视器日志文件存放路径

MON_LOG_INTERVAL  = 60 #每隔 60 s 定时记录系统信息到日志文件

MON_LOG_FILE_SIZE   = 32 #每个日志文件最大 32 MB

MON_LOG_SPACE_LIMIT  = 4096  #不限定日志文件总占用空间

[GRP_RW]

 MON_INST_OGUID    = 453331 #组 GRP_RW 的唯一 OGUID 值

#以下配置为监视器到组 GRP_RW 的守护进程的连接信息,以“IP:PORT”的形式配置

#IP 对应 dmmal.ini 中的 MAL_HOST,PORT 对应 dmmal.ini 中的 MAL_DW_PORT

 MON_DW_IP     = 192.168.56.103:52141

 MON_DW_IP     = 192.168.56.104:52141

启动监视器

监视器文件中的允许使用的磁盘空间只能在0或者256——4096之间

使用show查看主备库状态

  1. 注册守护进程和确认监视器服务

主备库都执行

./dm_service_installer.sh -t dmwatcher -p dmrpl -watcher_ini /dmdata/dmrpl/dmwatcher.ini

注册数据库实例服务

注册确认监视器

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

  1. 启动数据库实例

systemctl start DmServicedmrpl.service

启动守护进程

systemctl start DmWatcherServicedmrpl.service

启动确认监视器

systemctl start DmMonitorServiceconfirm.service

更多请访问达梦社区达梦数据库 - 新一代大型通用关系型数据库 | 达梦在线服务平台

达梦数据库 - 新一代大型通用关系型数据库 | 达梦在线服务平台达梦数据库产品体验站,DM8在线试玩,达梦数据库全系列产品免费下载,官方权威的快速上手文档和产品手册,最活跃的达梦技术社区,面向全行业ISV厂商免费的云适配服务。icon-default.png?t=M5H6https://eco.dameng.com

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值