DM7增加实时备机节点完整实施方案

本文详述了在生产环境中如何将数据库集群从一主一备扩展为一主两备的过程,涉及停机操作、数据迁移、配置文件修改、服务注册等多个步骤,确保新备机节点能有效解决原有系统的IO瓶颈问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        本文是参考实际生产环境的操作示例。其背景是现有生产环境的数据库架构是一主一备的数据守护集群,用户需求是增加一块性能良好的SSD硬盘已解决当前主备机磁盘io的性能瓶颈。以下内容则是增加备机节点的完整操作步骤。

        本方案操作限制:需停机

        数据还原方式:直接拷贝主机的数据文件到新的服务器上,并且需要修改控制文件中对应的绝对路径

 一、软硬件环境

软硬件配置情况

IP

*.*.153.4读库主库

*.*.153.5读库

*.*.153.10 (新增备库节点)

操作系统

CentOS 7

CPU

x86_64  1c

存储

主机(*.*.153.5)

数据目录/dmdata  20G

备机1(*.*.153.4)

数据目录/dmdata  20G

备机2(*.*.153.10)

数据目录/dmdata  20G

内存

2G

数据库版本

DM Database Server x64 V7.6.0.161-Build(2019.05.23-107264)ENT

数据库相关路径

主库(*.*.153.4)

程序路径:/dmdata/dmdb/bin

数据文件路径:/dmdata/dmdb/DW01

归档日志路径:/dmarch

备机1(*.*.153.5)

程序路径:/dmdata/dmdb/bin

数据文件路径:/dmdata/dmdb/DW02

归档日志路径:/dmarch

备机2(*.*.153.10)

程序路径:/dmdata/dmdb

数据文件路径:/dmdata/DW03

归档日志路径:/dmarch

二、操作步骤

序号

参数优化步骤

说明

操作类型

 环境准备                                                                                                                                                             

1

153.10安装数据库软件

配置资源信息

创建dmdba用户等

数据库版本:DM Database Server x64 V7.6.0.161-Build(2019.05.23-107264)ENT

2

刷新检查点

执行此操作的作用是使数据落盘

3

停数据库相关服务

当前集群状态,153.4为主机,153.5为备机

备份配置文件及拷贝数据                                                                                                                                     

4

备份主库和备库的配置文件

5

备份153.4/5

dm_svc.conf

6

整体拷贝主库(153.4)的数据文件到备库2(153.10)节点

7

修改153.10(备机2)配置文件绝对路径

包括dm.ini dm.ctl

配置相关配置文件                                           

8

配置3个节点dmmal.ini

9

配置3个节点dmarch.ini

10

配置3个节点dmwatcher.ini

11

拷贝主库(153.4)的dmwatcher.ctl到备库2(153.10)

对于故障场景中,某个全局守护类型的实例所在机器故障,数据无法继续使用的情况下,从当前的有效主库直接拷贝数据文件或者备份还原方式重新准备数据后,需要同时拷贝主库的守护进程控制文件 dmwatcher.ctl 到实例的数据文件目录下。

12

修改监视器 dmmonitor.ini

监视器位置在:153.3

13

修改备库(153.10)OGUID

操作153.10

14

修改备库(153.10)数据库模式

操作153.10

15

注册服务

操作153.10

16

修改dm_svc.conf配置

操作5节点

17

启动数据库集群

操作3节点

18

验证集群正常

三、实施过程

3.1 环境检查[节点3]

1).关闭防火墙状态:

systemctl status  firewalld.service
systemctl disable firewalld.service

2).关闭SELinux:

cat /etc/selinux/config
修改 SELINUX=disabled  

3).系统参数文件配置(现有主备服务器一并调整):

vi /etc/security/limits.conf #永久生效
dmdba soft nproc 10240
dmdba hard nproc 10240
dmdba soft nofile 65536
dmdba hard nofile 65536
dmdba soft core unlimited
dmdba hard core unlimited
dmdba soft data unlimited
dmdba hard data unlimited

 4).临时设置:

ulimit -n 65536 

 5).配置system.conf:

vim /etc/systemd/system.conf
DefaultLimitNOFILE=65536
DefaultLimitNPROC=10240  

6).创建软件安装目录和用户:

groupadd dinstall  -g 2001
useradd -g dinstall dmdba  -u 2001

mkdir -p /dmdata/dmdb
chown dmdba:dinstall -R /dmdata
chown dmdba:dinstall -R /dmarch

7).软件安装

       ( 过程略)

8).创建实例目录

mkdir /dmdata/DW03
chown dmdba:dinstall -R /dmdata/DW03

 3.2 集群配置

 3.2.1停服务

刷新检查点(153.4),使数据落盘       

SELECT CHECKPOINT(100); 

停止主备库守护进程服务

先停备库153.5:
su - dmdba
/dmdata/dmdb/bin/DmWatcherServiceDW02 stop
再停主库153.4:
su - dmdba
/dmdata/dmdb/bin/DmWatcherServiceDW01 stop

停止主备库数据库服务

#先停主库153.4:
su - dmdba
/dmdata/dmdb/bin/DmServiceDW01 stop
#再停备库153.5:
su - dmdba
/dmdata/dmdb/bin/DmServiceDW02 stop

停止监视器服务(153.3)

cd /home/dmdba/dmdb/bin
./DmMonitorServiceDW stop

 3.2.2 备份读库主备库的配置文件

备份ini文件

#备份主库153.4:
mkdir /dmdata/dmini_bak
cd /dmdata/dmdb/DW01
cp *.ini /dmdata/dmini_bak
再停备库153.5:
mkdir /dmdata/dmini_bak
cd /dmdata/dmdb/DW02
cp *.ini /dmdata/dmini_bak

备份153.4/5 dm_svc.conf

cp /etc/dm_svc.conf /dmdata/dmini_bak

拷贝153.4(主库)数据文件到153.10 

#153.4(主库):
cd /dmdata/dmdb/DW02
scp -r * root@*.*.153.10:/dmdata/DW03/

3.2.3 修改配置文件绝对路径(备机2)

创建备份路径

mkdir /dmdata/bak

  修改dm.ini文件路径 

cd /dmdata/DW03

vi dm.ini

CTL_PATH                        = /dmdata/DW03/dm.ctl      
CTL_BAK_PATH                    = /dmdata/DW03/ctl_bak     
SYSTEM_PATH                     = /dmdata/DW03/             
CONFIG_PATH                     = /dmdata/DW03/             
TEMP_PATH                       = /dmdata/DW03/             
BAK_PATH                        = /dmdata/bak       
INSTANCE_NAME                   = DW03  

修改dm.ctl文件路径

dmctlcvt TYPE=1 SRC=/dmdata/DW03/dm.ctl  DEST=/dmdata/DW03/dm.txt
vi /dmdata/DW03/dm.txt 
#(修改对应的路径)
#转换为ctl文件
mv dm.ctl dm_bak.ctl
dmctlcvt TYPE=1 SRC=/dmdata/DW03/dm.txt  DEST=/dmdata/DW03/dm.ctl

3.2.4  配置3个节点ini参数文件

1).配置dmmal.ini

 153.4(主机):

su - dmdba
cd /dmdata/dmdb/DW01

#追加备机153.10节点MAL信息到153.4的dmmal.ini
 echo '[MAL_INST3]
 MAL_INST_NAME = DW03
 MAL_HOST = *.*.100.10
 MAL_PORT = 5336
 MAL_INST_HOST = *.*.153.10
 MAL_INST_PORT = 5236
 MAL_DW_PORT = 5536' >> dmmal.ini

153.5(备机1):

从153.4 拷贝 dmmal.ini到153.5上

153.10(备机2):

从153.4 拷贝 dmmal.ini到153.10上

2).配置dmarch.ini

153.4(主库):

su - dmdba
cd /dmdata/dmdb/DW01

echo '[ARCHIVE_REALTIME2]
ARCH_TYPE = REALTIME
ARCH_DEST = DW03
' >> dmarch.ini

153.5(备库1):

su - dmdba
cd /dmdata/dmdb/DW02

echo '[ARCHIVE_REALTIME2]
ARCH_TYPE = REALTIME
ARCH_DEST = DW03
' >> dmarch.ini

153.10(备库2):

su - dmdba
mkdir -r /dmarch/arch

echo '[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME
ARCH_DEST = DW01

[ARCHIVE_REALTIME2]
ARCH_TYPE = REALTIME
ARCH_DEST = DW02 

[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dmarch/arch 
ARCH_FILE_SIZE = 512
ARCH_SPACE_LIMIT = 10240' > dmarch.ini

3).配置dmwatcher.ini

153.10(备库2):

su - dmdba
mkdir -p /dmdata/dmdb/dmwatcher/DW03

echo  '[GRP1]
DW_TYPE = GLOBAL
DW_MODE = AUTO
DW_ERROR_TIME = 15
INST_ERROR_TIME = 15
INST_OGUID = 453331
INST_INI = /dmdata/DW03/dm.ini
INST_AUTO_RESTART = 1
INST_STARTUP_CMD =/dmdata/dmdb/bin/DmServiceDW03 start
INST_RECOVER_TIME = 60
RLOG_SEND_THRESHOLD = 0
RLOG_APPLY_THRESHOLD = 0

' >>dmwatcher.ini

4). 拷贝主库的dmwatcher.ctl

#153.4(主库):

cd  /dmdata/dmdb/DW01
scp dmwatcher.ctl root@*.*.153.10:/dmdata/DW03/

5). 修改dmmonitor.ini

MON_DW_CONFIRM=1
MON_LOG_PATH=/home/dmdba/dmdb
MON_LOG_INTERVAL=1
MON_LOG_FILE_SIZE=64
MON_LOG_SPACE_LIMIT=0

[GRP1]
MON_DW_IP=*.*.153.4:5536
MON_DW_IP=*.*.153.5:5536
MON_DW_IP=*.*.153.10:5536 #添加这段即可

 6).修改备库2(153.10)的OGUID

cd /dmdata/dmdb/bin
./disql SYSDBA/SYSDBA:5236
SP_SET_OGUID(453331);

 7).修改备库2(153.10)的数据库模式

SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
ALTER DATABASE STANDBY;
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

8).注册服务 

cd /dmdata/dmdb/scripts/root
./dm_service_installer.sh -t dmserver -i  /dmdata/DW03/dm.ini -p DW03 -m mount
./dm_service_installer.sh -t dmwatcher -i /dmdata/DW03/dmwatcher.ini -p DW03

****** 切换主库后,手动做一次全备

9). 修改dm_svc.conf配置

(对应调整153.4/5的dm_svc.conf)

vi /etc/dm_svc.conf
TIME_ZONE=(480)
LANGUAGE=(cn)
DMR=(*.*.153.5:5236,*.*.153.4:5236,*.*.153.10:5236)

[DMR]
LOGIN_MODE=(1) #查看dm7文档 ,做成局部的

10).启动数据库集群 

启动主备库数据库服务(严格按照此顺序启动数据库服务)

153.4(主库):
su - dmdba
/dmdata/dmdb/bin/DmServiceDW01 start
153.5(备库1):
su - dmdba
/dmdata/dmdb/bin/DmServiceDW02 start
153.10(备库2):
su - dmdba
/dmdata/dmdb/bin/DmServiceDW03 start

11).启动主备库守护进程服务

153.4(主库):
su - dmdba
/dmdata/dmdb/bin/DmWatcherServiceDW01 start
153.5(备库1):
su - dmdba
/dmdata/dmdb/bin/DmWatcherServiceDW02 start
153.10(备库2):
su - dmdba
/dmdata/dmdb/bin/DmWatcherServiceDW03 start

12). 通过监视器查看集群状态

登录监视器查看集群状态,状态是否都正常,正常再执行下一步验证。

创建临时表,确定备库重演

主库执行:create table SYSDBA.temp AS SELECT * FROM V$DM_INI ;

备库查看:select count(*) from SYSDBA.temp;

主库删除:drop table SYSDBA.temp;

更多内容,请访问达梦社区地址:https:eco.dameng.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值