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


            本文是参考实际生产环境的操作示例。其背景是现有生产环境的数据库架构是一主一备的数据守护集群,用户需求是增加一块性能良好的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).关闭防火墙状态:

    1. systemctl status  firewalld.service
    2. systemctl disable firewalld.service

    2).关闭SELinux:

    1. cat /etc/selinux/config
    2. 修改 SELINUX=disabled  

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

    1. vi /etc/security/limits.conf #永久生效
    2. dmdba soft nproc 10240
    3. dmdba hard nproc 10240
    4. dmdba soft nofile 65536
    5. dmdba hard nofile 65536
    6. dmdba soft core unlimited
    7. dmdba hard core unlimited
    8. dmdba soft data unlimited
    9. dmdba hard data unlimited

     4).临时设置:

    ulimit -n 65536 

     5).配置system.conf:

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

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

    1. groupadd dinstall  -g 2001
    2. useradd -g dinstall dmdba  -u 2001
    3. mkdir -p /dmdata/dmdb
    4. chown dmdba:dinstall -R /dmdata
    5. chown dmdba:dinstall -R /dmarch

    7).软件安装

           ( 过程略)

    8).创建实例目录

    1. mkdir /dmdata/DW03
    2. chown dmdba:dinstall -R /dmdata/DW03

     3.2 集群配置

     3.2.1停服务

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

    SELECT CHECKPOINT(100); 

    停止主备库守护进程服务

    1. 先停备库153.5
    2. su - dmdba
    3. /dmdata/dmdb/bin/DmWatcherServiceDW02 stop
    1. 再停主库153.4
    2. su - dmdba
    3. /dmdata/dmdb/bin/DmWatcherServiceDW01 stop

    停止主备库数据库服务

    1. #先停主库153.4
    2. su - dmdba
    3. /dmdata/dmdb/bin/DmServiceDW01 stop
    1. #再停备库153.5
    2. su - dmdba
    3. /dmdata/dmdb/bin/DmServiceDW02 stop

    停止监视器服务(153.3)

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

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

    备份ini文件

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

    备份153.4/5 dm_svc.conf

    cp /etc/dm_svc.conf /dmdata/dmini_bak

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

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

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

    创建备份路径

    mkdir /dmdata/bak

      修改dm.ini文件路径 

    1. cd /dmdata/DW03
    2. vi dm.ini
    3. CTL_PATH                        = /dmdata/DW03/dm.ctl      
    4. CTL_BAK_PATH                    = /dmdata/DW03/ctl_bak     
    5. SYSTEM_PATH                     = /dmdata/DW03/             
    6. CONFIG_PATH                     = /dmdata/DW03/             
    7. TEMP_PATH                       = /dmdata/DW03/             
    8. BAK_PATH                        = /dmdata/bak       
    9. INSTANCE_NAME                   = DW03  

    修改dm.ctl文件路径

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

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

    1).配置dmmal.ini

     153.4(主机):

    1. su - dmdba
    2. cd /dmdata/dmdb/DW01
    3. #追加备机153.10节点MAL信息到153.4的dmmal.ini
    4. echo '[MAL_INST3]
    5.  MAL_INST_NAME = DW03
    6.  MAL_HOST = *.*.100.10
    7.  MAL_PORT = 5336
    8.  MAL_INST_HOST = *.*.153.10
    9.  MAL_INST_PORT = 5236
    10.  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(主库):

    1. su - dmdba
    2. cd /dmdata/dmdb/DW01
    3. echo '[ARCHIVE_REALTIME2]
    4. ARCH_TYPE = REALTIME
    5. ARCH_DEST = DW03
    6. ' >> dmarch.ini

    153.5(备库1):

    1. su - dmdba
    2. cd /dmdata/dmdb/DW02
    3. echo '[ARCHIVE_REALTIME2]
    4. ARCH_TYPE = REALTIME
    5. ARCH_DEST = DW03
    6. ' >> dmarch.ini

    153.10(备库2):

    1. su - dmdba
    2. mkdir -r /dmarch/arch
    3. echo '[ARCHIVE_REALTIME1]
    4. ARCH_TYPE = REALTIME
    5. ARCH_DEST = DW01
    6. [ARCHIVE_REALTIME2]
    7. ARCH_TYPE = REALTIME
    8. ARCH_DEST = DW02 
    9. [ARCHIVE_LOCAL1]
    10. ARCH_TYPE = LOCAL
    11. ARCH_DEST = /dmarch/arch 
    12. ARCH_FILE_SIZE = 512
    13. ARCH_SPACE_LIMIT = 10240' > dmarch.ini

    3).配置dmwatcher.ini

    153.10(备库2):

    1. su - dmdba
    2. mkdir -p /dmdata/dmdb/dmwatcher/DW03
    3. echo  '[GRP1]
    4. DW_TYPE = GLOBAL
    5. DW_MODE = AUTO
    6. DW_ERROR_TIME = 15
    7. INST_ERROR_TIME = 15
    8. INST_OGUID = 453331
    9. INST_INI = /dmdata/DW03/dm.ini
    10. INST_AUTO_RESTART = 1
    11. INST_STARTUP_CMD =/dmdata/dmdb/bin/DmServiceDW03 start
    12. INST_RECOVER_TIME = 60
    13. RLOG_SEND_THRESHOLD = 0
    14. RLOG_APPLY_THRESHOLD = 0
    15. ' >>dmwatcher.ini

    4). 拷贝主库的dmwatcher.ctl

    1. #153.4(主库):
    2. cd  /dmdata/dmdb/DW01
    3. scp dmwatcher.ctl root@*.*.153.10:/dmdata/DW03/

    5). 修改dmmonitor.ini

    1. MON_DW_CONFIRM=1
    2. MON_LOG_PATH=/home/dmdba/dmdb
    3. MON_LOG_INTERVAL=1
    4. MON_LOG_FILE_SIZE=64
    5. MON_LOG_SPACE_LIMIT=0
    6. [GRP1]
    7. MON_DW_IP=*.*.153.4:5536
    8. MON_DW_IP=*.*.153.5:5536
    9. MON_DW_IP=*.*.153.10:5536 #添加这段即可

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

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

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

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

    8).注册服务 

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

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

    9). 修改dm_svc.conf配置

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

    1. vi /etc/dm_svc.conf
    2. TIME_ZONE=(480)
    3. LANGUAGE=(cn)
    4. DMR=(*.*.153.5:5236,*.*.153.4:5236,*.*.153.10:5236)
    5. [DMR]
    6. LOGIN_MODE=(1) #查看dm7文档 ,做成局部的

    10).启动数据库集群 

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

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

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

    1. 153.4(主库):
    2. su - dmdba
    3. /dmdata/dmdb/bin/DmWatcherServiceDW01 start
    1. 153.5(备库1):
    2. su - dmdba
    3. /dmdata/dmdb/bin/DmWatcherServiceDW02 start
    1. 153.10(备库2):
    2. su - dmdba
    3. /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

  • 相关阅读:
    什么叫做云计算?
    Google Earth Engine(GEE)——一个简单的sentinel-2影像函数下载APP
    八皇后问题的Java实现
    封装自己的本地缓存类(单例模式、适配器模式应用)
    web网页设计期末课程大作业:美食餐饮文化主题网站设计——中华美德6页面HTML+CSS+JavaScript
    数学建模——人工神经网络模型
    Vcenter6.5扩容存储后无法创建虚机处理方法
    告诉你怎么让网站内容快速收录的技巧
    漏网之鱼-1、超级学习术
    Python-字符串(切片操作与内建函数)
  • 原文地址:https://blog.csdn.net/Penrosee/article/details/128013577