达梦数据库主备数据守护集群搭建

1、环境说明

   本地IP X.X.X.X   公网: X.X.X.X

   主  :XX.X.X.X  root  ######     内网:XX.XX.X.X

   备  :XXX.X.X.X   root  ######   内网:XXX.XX.X.X

   监视器:主库上

   确认监视器文件: /data/dmdata/DAMENG/dmmonitor.ini

   非确认监视器文件:/opt/dmdbms/bin/dmmonitor /data/dmdata/DAMENG/dmmonitor0.ini

2 部署过程

   2.1创建用户和组:

     主机:

     ssh root@XX.X.X.X

     groupadd dinstall

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

     passwd dmdba

     ********

 备机:

     ssh root@XXX.X.X.X

     groupadd dinstall

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

     passwd dmdba

     ********

     2.2 准备安装包:

     mkdir /opt/dmsetup

     chown dmdba.dinstall /opt/dmsetup

     mkdir /opt/dmsetup

     chown dmdba.dinstall /opt/dmsetup     

     scp -r  dm8_20210818_x86_rh7_64_ent_8.1.2.18_pack13.iso/ dmdba@XX.X.X.X:/opt/dmsetup

     scp -r  dm8_20210818_x86_rh7_64_ent_8.1.2.18_pack13.iso/ dmdba@XXX.X.X.X:/opt/dmsetup

          

     2.3 部署详细信息

     创建目录:(授权时务必检查【-R】参数的使用是否正确!!!)

     mkdir -p /opt/dmdbms

     chown  dmdba.dinstall /opt/dmdbms

     chmod  755 /opt/dmdbms

     mkdir -p /data/dmdata

     chown  dmdba.dinstall /data/dmdata

     chmod  755 /data/dmdata

     mkdir -p /data/dmbak

     chown  dmdba.dinstall /data/dmbak

     chmod  755 /data/dmbak

     mkdir -p /data/dmarch

     chown  dmdba.dinstall /data/dmarch

     chmod  755 /data/dmarch

三 修改系统配置:

    3.1 关闭防火墙

    systemctl stop firewalld.service

    systemctl status firewalld.service    

    ----systemctl disable firewalld.service  关闭开机自启

    cat /etc/selinux/config

    3.2 关闭SElinux

    vi /etc/sysconfig/selinux

    SELINUX=disabled    

    3.3 修改内核参数

    vi /etc/sysctl.conf

    

    fs.file-max = 6815744

    fs.aio-max-nr = 1048576

    kernel.shmall = 2097152

    kernel.shmmax = 2147483648

    kernel.shmmni = 4096

    kernel.sem = 250 32000 100 128

    net.ipv4.ip_local_port_range = 9000 65500

    net.core.rmem_default = 4194304

    net.core.rmem_max = 4194304

    net.core.wmem_default = 262144

    net.core.wmem_max = 1048576

    

    vm.overcommit_memory = 1

    vm.swappiness = 0

    vm.dirty_background_ratio = 3

    vm.dirty_ratio = 80

    vm.dirty_expire_centisecs = 500

    vm.dirty_writeback_centisecs = 100

    

    生效:

    sysctl -p

    sysctl -p /etc/sysctl.conf

    sysctl -q vm.swappiness    

    3.4 关闭numa和透明大页:

    vi /etc/default/grub

    在GRUB_CMDLINE_LINUX后添加

    numa=off transparent_hugepage=never

    重新生成配置文件:

    grub2-mkconfig -o /etc/grub2.cfg

    重启生效(慎重)--如系统中已有业务正在运行,请申请重启窗口,谨慎操作。

    验证numa:

    验证1:

    dmesg | grep -i numa

    验证2:

    cat /proc/cmdline----

    验证transparent_hugepage=never:

    cat /sys/kernel/mm/transparent_hugepage/enabled

    3.5 检查是否图形化服务打开检查和关闭GNOME

    ps -ef|grep gnome

    ps -ef|grep ntpd

    关闭GNOME

    systemctl get-default

    systemctl set-default multi-user.target

    说明:

    graphical.target:图形化模式

    multi-user.target:命令行模式    

    3.6 检查是否时间同步服务打开检查

    ps -ef|grep ntpd

    配置ntp时间同步(UOS-NTP失败)

    yum install ntp --所有节点执行安装命令

    systemctl start ntpd --所有节点执行启动服务

    systemctl enable ntpd --所有节点执行启用ntpd

    3.7 是否重启了: 重启

四  安装数据库软件:

   chown -R dmdba.dinstall /opt/dmsetup/dm8_20210818_x86_rh7_64_ent_8.1.2.18_pack13.iso

   chmod -R 775 /opt/dmsetup/dm8_20210818_x86_rh7_64_ent_8.1.2.18_pack13.iso

   cd /opt/dmsetup/

   mount -o loop dm8_20210818_x86_rh7_64_ent_8.1.2.18_pack13.iso /mnt

   su - dmdba

   cd /mnt

   ./DMInstall.bin -i

   安装前小结

   安装位置: /opt/dmdbms

   未输入key路径  

   使用root用户执行

   /opt/dmdbms/script/root/root_installer.sh

五 初始化实例:

   su - dmdba

   cd /opt/dmdbms/bin

   ./dminit PATH=/data/dmdata PAGE_SIZE=32 EXTENT_SIZE=32 LOG_SIZE=2048 CHARSET=1  LENGTH_IN_CHAR=Y

六 环境变量:

   vi ~/.bash_profile

   export PATH=/opt/dmdbms/bin:$PATH

   source ~/.bash_profile

七 注册服务:(mount)

   su - root

   cd /opt/dmdbms/script/root/

   主库:

   ./dm_service_installer.sh -t dmserver -p DM01 -m mount -dm_ini /data/dmdata/DAMENG/dm.ini

   备库:

   ./dm_service_installer.sh -t dmserver -p DM02 -m mount -dm_ini /data/dmdata/DAMENG/dm.ini

   

   --主库操作

   启动主库:

   su - dmdba

   cd /opt/dmdbms/bin

   -先前台启动一次

   ./dmserver /data/dmdata/DAMENG/dm.ini

   exit

八 备份还原

  8.1  dmdba用户使用dmrman做冷备

   ./dmrman

   BACKUP DATABASE '/data/dmdata/DAMENG/dm.ini' BACKUPSET '/data/dmbak/db_full_bak_20220330';

   

   使用dmdba

   scp -r /data/dmbak/db_full_bak_20220330 dmdba@XXX.XX.X.X:/data/dmbak       ----------(XXX.XX.X.X为内网)   

   8.2 在备库还原:

   su - dmdba

   cd /opt/dmdbms/bin

   ./dmrman

   check backupset  '/data/dmbak/db_full_bak_20220330'

   RESTORE DATABASE '/data/dmdata/DAMENG/dm.ini' FROM BACKUPSET '/data/dmbak/db_full_bak_20220330'

   RECOVER DATABASE '/data/dmdata/DAMENG/dm.ini' FROM BACKUPSET '/data/dmbak/db_full_bak_20220330'

   RECOVER DATABASE '/data/dmdata/DAMENG/dm.ini' UPDATE DB_MAGIC

九 配置文件

   cd /data/dmdata/DAMENG/

   9.1 dm.ini

   vi dm.ini

   BAK_PATH                = /data/dmbak

   INSTANCE_NAME    = GRP1_RT_01

   DW_INACTIVE_INTERVAL = 60       #接收守护进程消息超时时间

   ALTER_MODE_STATUS       = 0     #不允许手工方式修改实例模式/状态/

   ENABLE_OFFLINE_TS       = 2     #不允许备库 OFFLINE 表空间

   MAL_INI = 1     #打开 MAL 系统

   ARCH_INI         = 1     # 打 开 归 档 配 置

   RLOG_SEND_APPLY_MON = 64    #统计最近 64 次的日志发送信息

   COMPATIBLE_MODE         = 2

   备库

   vi dm.ini

   BAK_PATH                = /data/dmbak

   INSTANCE_NAME    = GRP1_RT_02

   DW_INACTIVE_INTERVAL = 60       #接收守护进程消息超时时间

   ALTER_MODE_STATUS       = 0          #不允许手工方式修改实例模式/状态/

   ENABLE_OFFLINE_TS       = 2     #不允许备库 OFFLINE 表空间

   MAL_INI = 1     #打开 MAL 系统

   ARCH_INI        = 1     # 打 开 归 档 配 置

   SVR_LOG          = 1

   RLOG_SEND_APPLY_MON = 64        #统计最近 64 次的日志发送信息

   COMPATIBLE_MODE         = 2

   9.2 dmarch.ini

   主库:

   vi dmarch.ini

   [ARCHIVE_REALTIME]

   ARCH_TYPE                               = REALTIME

   ARCH_DEST                               = GRP1_RT_02

   [ARCHIVE_LOCAL1]

   ARCH_TYPE                               = LOCAL

   ARCH_DEST                               = /data/dmarch

   ARCH_FILE_SIZE                  = 1024

   ARCH_SPACE_LIMIT                = 10240

   备库:

   vi dmarch.ini

   [ARCHIVE_REALTIME]

   ARCH_TYPE                               = REALTIME

   ARCH_DEST                               = GRP1_RT_01

   [ARCHIVE_LOCAL1]

   ARCH_TYPE                               = LOCAL

   ARCH_DEST                               = /data/dmarch

   ARCH_FILE_SIZE                  = 1024

   ARCH_SPACE_LIMIT                = 10240

   9.3 dmmal.ini

   主库-备库1-备库2:完全一致

   vi dmmal.ini

   MAL_CHECK_INTERVAL   = 5

   MAL_CONN_FAIL_INTERVAL  = 5

   [MAL_INST1]

   MAL_INST_NAME          = GRP1_RT_01

   MAL_HOST               = XX.XX.X.X

   MAL_PORT               = 61141

   MAL_INST_HOST          = XX.XX.X.X

   MAL_INST_PORT          = 5236

   MAL_DW_PORT            = 52141

   MAL_INST_DW_PORT       = 33141

   [MAL_INST2]

   MAL_INST_NAME           = GRP1_RT_02

   MAL_HOST                = XXX.XX.X.X

   MAL_PORT                = 61142

   MAL_INST_HOST           = XXX.XX.X.X

   MAL_INST_PORT           = 5236

   MAL_DW_PORT             = 52142

   MAL_INST_DW_PORT        = 33142  

   9.4  dmwatcher.ini   

   主库-备库:完全一致

   vi dmwatcher.ini

   [GRP1]

   DW_TYPE    = GLOBAL

   DW_MODE    = MANUAL

   DW_ERROR_TIME     = 32400

   INST_RECOVER_TIME  = 60

   INST_ERROR_TIME   = 10

   INST_OGUID         = 45335

   INST_INI           = /data/dmdata/DAMENG/dm.ini

   INST_AUTO_RESTART  = 1

   INST_STARTUP_CMD   = /opt/dmdbms/bin/dmserver

   RLOG_SEND_THRESHOLD  = 0

   RLOG_APPLY_THRESHOLD = 0

   9.5 SQLLOG:

   主库-备库:完全一致

   vi sqllog.ini

   BUF_TOTAL_SIZE          = 10240         #SQLs Log Buffer Total Size(K)(1024~1024000)

   BUF_SIZE                = 1024          #SQLs Log Buffer Size(K)(50~409600)

   BUF_KEEP_CNT            = 6             #SQLs Log buffer keeped count(1~100)

   

   [SLOG_ALL]

           FILE_PATH    = /data/dmdata/DAMENG/dmsql_log

           PART_STOR    = 0

           SWITCH_MODE  =2

           SWITCH_LIMIT   = 1024

           ASYNC_FLUSH   = 1

           FILE_NUM = 10

           ITEMS    = 0

           SQL_TRACE_MASK  = 1

           MIN_EXEC_TIME = 0

           USER_MODE   = 0

           USERS =

   

   mkdir /data/dmdata/DAMENG/dmsql_log

十 配置监视器

  10.1确认监视器后台启动----/opt/dmdbms/bin/DmMonitorServiceMONITOR start

  vi dmmonitor.ini

  MON_DW_CONFIRM = 1      #确认监视器模式

  MON_LOG_PATH = /opt/dmdbms/log   #监视器日志文件存放路径

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

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

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

  [GRP1]

  MON_INST_OGUID = 45335  #组GRP1 的唯一 OGUID 值

  #以下配置为监视器到组 GRP1 的守护进程的连接信息,以“IP:PORT”的形式配置#IP 对应 dmmal.ini 中的 MAL_HOST,PORT 对应 dmmal.ini 中的 MAL_DW_PORT

  MON_DW_IP = XX.XX.X.X:52141

  MON_DW_IP = XXX.XX.X.X:52142

  

  10.2非确认监视器前台启动   -----/opt/dmdbms/bin/   ./dmmonitor /data/dmdata/DAMENG/dmmonitor0.ini

  vi dmmonitor0.ini

  MON_DW_CONFIRM = 0      #确认监视器模式

  MON_LOG_PATH = /opt/dmdbms/log   #监视器日志文件存放路径

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

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

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

  [GRP1]

  MON_INST_OGUID = 45335  #组GRP1 的唯一 OGUID 值

  #以下配置为监视器到组 GRP1 的守护进程的连接信息,以“IP:PORT”的形式配置#IP 对应 dmmal.ini 中的 MAL_HOST,PORT 对应 dmmal.ini 中的 MAL_DW_PORT

  MON_DW_IP = XX.XX.X.X:52141

  MON_DW_IP = XXX.XX.X.X:52142

十一 注册服务:

   su - root

   cd /opt/dmdbms/script/root/

   11.1 数据守护服务

   主库:

   ./dm_service_installer.sh -t dmwatcher -watcher_ini /data/dmdata/DAMENG/dmwatcher.ini -p DM01

   创建服务(DmWatcherServiceDM01)完成

   备库:

   ./dm_service_installer.sh -t dmwatcher -watcher_ini /data/dmdata/DAMENG/dmwatcher.ini -p DM02

   创建服务(DmWatcherServiceDM02)完成  

   -监视器服务(主库做)

   ./dm_service_instal1

  11.2开启归档

      [dmdba@~]# /data/dmdbms/bin/disql SYSDBA/SYSDBA@172.16.1.1:5236

      SQL> ALTER DATABASE MOUNT;

      SQL> ALTER DATABASE ARCHIVELOG;

      SQL> ALTER DATABASE ADD ARCHIVELOG 'DEST=/data/dmarch, TYPE=LOCAL, FILE_SIZE=2048, SPACE_LIMIT=51200';

      SQL> ALTER DATABASE OPEN;ler.sh -t dmmonitor -p MONITOR -monitor_ini /data/dmdata/DAMENG/dmmonitor.ini

   创建服务(DmMonitorServiceMONITOR)完成

   启动监视器密命令:

   /opt/dmdbms/bin/DmMonitorServiceMONITOR start

   /opt/dmdbms/bin/   ./dmmonitor /data/dmdata/DAMENG/dmmonitor0.ini

十二 配置主备模式

   启动主库:

   su - dmdba

   cd /opt/dmdbms/bin

   ---------./DmServiceDM01 start   ?必须mount吗

   ./dmserver /data/dmdata/DAMENG/dm.ini mount

   配置主库:

   ./disql

   SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',1);

   SP_SET_OGUID(45335);

   ALTER DATABASE PRIMARY;

   SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',0);

   

   启动备库:

   su - dmdba

   cd /opt/dmdbms/bin

   --./DmServiceDM02 start

   ./dmserver /data/dmdata/DAMENG/dm.ini mount

   备库:

   ./disql

   SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',1);

   SP_SET_OGUID(45335);

   ALTER DATABASE STANDBY;

   SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',0);

十三 启动集群:

   先启主库再备库

   ---/opt/dmdbms/bin/DmServiceDM01 start

   ---/opt/dmdbms/bin/DmServiceDM02 start

   /opt/dmdbms/bin/DmWatcherServiceDM01 start

   /opt/dmdbms/bin/DmWatcherServiceDM02 start

   

   -------./dmwatcher /dm8/data/DAMENG/dmwatcher.ini

   

   在主库前台启动非确认监视器查看状态

   ----/opt/dmdbms/bin/dmmonitor /data/dmdata/DAMENG/dmmonitor0.ini

   

   停止集群:关确认监视器,关备守、主守,关主server、关备server

   ./DmMonitorServiceMONITOR stop  (在主库上)

   ./DmWatcherServiceDM02 stop

   ./DmWatcherServiceDM01 stop

   ./DmServiceDM01 stop

   ./DmServiceDM02 stop

十四 测试主备状况

   -数据同步

   主库

   create table ZZ(id int);

   insert into ZZ values(1),(2);

   commit;

   备库

   select * from ZZ;

   主库

   drop table ZZ;

十五 主备切换

   前台启动非确认监视器

   cd /opt/dmdbms/bin

   ./dmmonitor /data/dmdata/DAMENG/dmmonitor0.ini

   login

   用户名:SYSDBA

   密码:SYSDBA

   switchover  GRP1.GRP1_RT_02    切换

   switchover  GRP1.GRP1_RT_01

   takeover GRP1.GRP1_RT_02       接管(强制切换)

十六 参数优化--主备都执行 (自行选择优化参数)

完成

*****************************************************

可能遇到的问题:

1 各个配置文件中的相关端口没有开通:

 

在启动数据库的时候会报错,显示无法连接到备机,ping对应备机可以ping通,但是Telnet不通,说明端口不通。会导致备库无法通过守护进程将备库拉起。

解决办法:

开通对应端口,重启服务器,重新启动数据库。

2 没有关闭防火墙开机自启

 在上一个错误中将端口开通后,仍然报错无法连接,经检查,已经关闭的防火墙重新开启。

因为没有关闭防火墙开机自启。

解决办法:

关闭开机自启,重新启动数据库。

达梦技术社区:https://eco.dameng.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值