DM8主备集群搭建

  • 环境检测
    1. 搭建环境

软硬件配置情况

IP

192.168.124.129(主机)

192.168.124.130(备机)
192.168.124.129(单机、确认监视器)

操作系统

CentOS Linux release 7.6.1810 (Core)

CPU

 Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz

存储

本地磁盘60GB /dmdata

DD测速,32k,平均4M/S,已经向用户提出磁盘速度太慢

内存

4G

网卡带宽

100M

数据库版本

DM Database Server 64 V8

8.1

安全版

DB Version: 0x7000c

05134284058-20230713-195546-20046

    1. 系统信息检查

磁盘调度信息

[root@master .ssh]# cat /sys/block/sda/queue/scheduler

noop [deadline] cfq

Cpu信息

[root@master .ssh]# lscpu

Architecture:          x86_64

CPU op-mode(s):        32-bit, 64-bit

Byte Order:            Little Endian

CPU(s):                4

On-line CPU(s) list:   0-3

Thread(s) per core:    1

Core(s) per socket:    2

座:                 2

NUMA 节点:         1

厂商 ID:           GenuineIntel

CPU 系列:          6

型号:              158

型号名称:        Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz

步进:              13

CPU MHz:             2592.001

BogoMIPS:            5184.00

超管理器厂商:  VMware

虚拟化类型:     完全

L1d 缓存:          32K

L1i 缓存:          32K

L2 缓存:           256K

L3 缓存:           12288K

NUMA 节点0 CPU:    0-3

Flags:                 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch ssbd ibrs ibpb stibp ibrs_enhanced fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid rdseed adx smap clflushopt xsaveopt xsavec xgetbv1 arat spec_ctrl intel_stibp flush_l1d arch_capabilities

内存信息

[root@master .ssh]# free -h

        total    used    free    shared  buff/cache    available  

Mem:  3.7G    755M    2.7G     11M     280M        358M

Swap:  2.0G    0B       2.0G

    1. 关闭seilnux

vim /etc/selinux/config

SELINUX=DISABLED

SELINUXTYPE=targeted

##生效

setenforce 0

    1. 关闭防火墙

systemctl stop firewalld

systemctl status firewalld

    1. 系统时间

[root@master .ssh]# timedatectl | grep "Time zone"

       Time zone: Asia/Shanghai (CST, +0800)

    1. 磁盘测速

dd if=/dev/zero of=test bs=32k count=4k oflag=dsync

  • 修改配置

2.1 limit.conf

使用root用户进行修改 vim /etc/security/limits.conf

dmdba  soft      as         unlimited

dmdba  hard      as         unlimited

dmdba  soft      fsize      unlimited

dmdba  hard      fsize      unlimited

dmdba  soft      nproc      65536

dmdba  hard      nproc      65536

dmdba  soft      nofile     65536

dmdba  hard      nofile     65536

dmdba  soft      core       unlimited

dmdba  hard      core       unlimited

dmdba  soft      data       unlimited

dmdba  hard      data       unlimited

dmdba  soft      stack      65536

dmdba  hard      stack      65536

2.2 sysctl.conf

vim /etc/sysctl.conf

kernel.shmall = 4294967296

fs.file-max = 6815744

fs.aio-max-nr = 1048576

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.dirty_ratio = 80

vm.dirty_expire_centisecs = 500

vm.dirty_writeback_centisecs = 100

kernel.core_pattern = /dmdata/core/core.%p

vm.swappiness=10

vm.dirty_background_ratio = 0

vm.min_free_kbytes = 2097152

刷新

sysctl -p

2.3 新建用户

groupadd dinstall -g 2001

useradd  -G dinstall -m -d /home/dmdba -s /bin/bash -u 2001 dmdba

passwd dmdba

用户设置密码

2.4 实例存储

建议使用独立挂载

mkdir /dmdata

chown -R dmdba:dinstall /dmdata

chmod -R 775 /dmdata

chown -R dmdba:dinstall /home/dmdba/

2.5 环境变量配置

vim /etc/profile

export DM_HOME=/home/dmdba/dmdbms

export PATH=$PATH:$DM_HOME/bin

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$DM_HOME/bin

  • 数据库安装(主机+备机)

3.1 ISO文件挂载

3.1.1 使用root用户挂载iso镜像到/dmiso

mkdir -p /dmiso

mount -o loop dm8_20230713_x86_rh6_64.iso /dmiso

3.1.2 切换到dmdba用户安装数据库

su dmdba

/dmiso/DMInstall.sh -i

请选择安装语言(C/c:中文 E/e:英文) [C/c]:c

解压安装程序..........

欢迎使用达梦数据库安装程序

是否输入Key文件路径? (Y/y:是 N/n:否) [Y/y]:y

/home/dmdba/dm.key

是否设置时区? (Y/y:是 N/n:否) [Y/y]:y

设置时区:

[ 1]: GTM-12=日界线西

[ 2]: GTM-11=萨摩亚群岛

[ 3]: GTM-10=夏威夷

[ 4]: GTM-09=阿拉斯加

[ 5]: GTM-08=太平洋时间(美国和加拿大)

[ 6]: GTM-07=亚利桑那

[ 7]: GTM-06=中部时间(美国和加拿大)

[ 8]: GTM-05=东部部时间(美国和加拿大)

[ 9]: GTM-04=大西洋时间(美国和加拿大)

[10]: GTM-03=巴西利亚

[11]: GTM-02=中大西洋

[12]: GTM-01=亚速尔群岛

[13]: GTM=格林威治标准时间

[14]: GTM+01=萨拉热窝

[15]: GTM+02=开罗

[16]: GTM+03=莫斯科

[17]: GTM+04=阿布扎比

[18]: GTM+05=伊斯兰堡

[19]: GTM+06=达卡

[20]: GTM+07=曼谷,河内

[21]: GTM+08=中国标准时间

[22]: GTM+09=汉城

[23]: GTM+10=关岛

[24]: GTM+11=所罗门群岛

[25]: GTM+12=斐济

[26]: GTM+13=努库阿勒法

[27]: GTM+14=基里巴斯

请选择设置时区 [21]:21

安装类型:

1 典型安装

2 服务器

3 客户端

4 自定义

请选择安装类型的数字序号 [1 典型安装]:1

所需空间: 1869M

请选择安装目录 [/home/dmdba/dmdbms]:

可用空间: 15G

是否确认安装路径(/home/dmdba/dmdbms)? (Y/y:是 N/n:否)  [Y/y]:y

安装前小结

安装位置: /home/dmdba/dmdbms

所需空间: 1869M

可用空间: 15G

版本信息:

有效日期:

安装类型: 典型安装

是否确认安装? (Y/y:是 N/n:否):y

2023-10-13 17:15:23

[INFO] 安装 基础 模块...

2023-10-13 17:15:23

[INFO] 安装达梦数据库...

2023-10-13 17:16:08

[INFO] 安装 服务器 模块...

2023-10-13 17:16:15

[INFO] 安装 客户端 模块...

2023-10-13 17:17:20

[INFO] 安装 驱动 模块...

2023-10-13 17:17:44

[INFO] 安装 手册 模块...

2023-10-13 17:17:49

[INFO] 安装 服务 模块...

2023-10-13 17:17:50

[INFO] 移动日志文件。

2023-10-13 17:17:50

[INFO] 安装达梦数据库完成。

请以root系统用户执行命令:

/home/dmdba/dmdbms/script/root/root_installer.sh

安装结束

3.1.3切换权限至root用户权限运行脚本

/home/dmdba/dmdbms/script/root/root_installer.sh

3.2 初始化实例

主机:

cd /home/dmdba/dmdbms/bin

./dminit path=/dmdata page_size=32 extent_size=32 charset=1 log_size=2048 db_name=AISITE instance_name=dw1 SYSDBA_PWD="dzy020131" SYSAUDITOR_PWD="dzy020131" BLANK_PAD_MODE=0 LENGTH_IN_CHAR=0

备机

cd /home/dmdba/dmdbms/bin

./dminit path=/dmdata page_size=32 extent_size=32 charset=1 log_size=2048 db_name=AISITE instance_name=dw2 SYSDBA_PWD="dzy020131" SYSAUDITOR_PWD="dzy020131" BLANK_PAD_MODE=0 LENGTH_IN_CHAR=0

3.3 注册服务

主机和备机都要注册

 cd /home/dmdba/dmdbms/script/root

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

3.4 启动主机和备机的DM8服务

systemctl start DmServiceAISITE

这里注意要把/dmdata和/home/dmdba的权限给到dmdba,不然无法成功启动。

  • 参数调优(主机和备机相同操作)

4.1 运行调优脚本

SQL>start /home/dmdba/package/AutoParaAdj3.6_dm8.sql

4.2 修改参数

alter system set 'SORT_FLAG'=0 both;

alter system set 'ENABLE_ENCRYPT' = 0 spfile;

alter system set 'MAX_SESSIONS'=5000 spfile;

  • 主备库搭建

5.1 主库脱机备份

DmServiceAISITE stop

cd /home/dmdba/dmdbms/bin

./dmrman

RMAN> backup database '/dmdata/AISITE/dm.ini' backupset ' /dmdata/dmbak/bakfull';

5.2 复制主的全库备份集到备库恢复

主备执行scp命令 这里要保证备机存在/dmdata/dmbak/bakfull目录否则会传输失败

scp -r /dmdata/dmbak/bakfull dmdba@192.168.124.130:/dmdata/dmbak/bakfull/

备库执行恢复还原修改魔术值命令

systemctl stop DmServiceAISTE

$ cd /home/dmdba/dmdbms/bin

$ ./dmrman

执行 restore:

RMAN> restore database '/dmdata/AISITE/dm.ini' from backupset '/dmdata/dmbak/bakfull/';

完成后执行 recover:

RMAN> recover database '/dmdata/AISITE/dm.ini' from backupset '/dmdata/dmbak/bakfull';

最后执行 recover update db_magic。

RMAN> recover database '/dmdata/AISITE/dm.ini'  update db_magic;

5.3 配置文件

守护配置文件添加完成,就可以注册守护进程了,按照这个顺序部署

修改前备份dm.ini文件,修改后备份整个实例

5.3.1主库dm.ini修改

vim /dmdata/AISITE/dm.ini

//可用/定位参数

INSTANCE_NAME = dw1

MAL_INI = 1

ARCH_INI = 1

ALTER_MODE_STATUS = 0

ENABLE_OFFLINE_TS = 2 

5.3.2备库dm.ini修改

vim /dmdata/AISITE/dm.ini

INSTANCE_NAME = dw2

MAL_INI = 1

ARCH_INI = 1

ALTER_MODE_STATUS = 0

ENABLE_OFFLINE_TS = 2

5.3.3主备dmarch.ini新建)

$ vim /dmdata/AISITE/dmarch.ini

[ARCHIVE_REALTIME1]  

ARCH_TYPE     = REALTIME

ARCH_DEST     = dw2

[ARCHIVE_LOCAL1]

ARCH_TYPE     = LOCAL

ARCH_DEST     = /dmdata/arch

ARCH_FILE_SIZE    = 1024

ARCH_SPACE_LIMIT  = 20480

5.3.4备库dmarch.ini新建

$ vim /dmdata/AISITE/dmarch.ini

[ARCHIVE_REALTIME1]  

ARCH_TYPE     = REALTIME  #实时归档类型

ARCH_DEST     = dw1   #实时归档目标实例名

[ARCHIVE_LOCAL1]

ARCH_TYPE     = LOCAL   #本地归档类型

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

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

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

5.3.5主备库的dmmal.ini新建文件一致,如下

$ vim /dmdata/AISITE/dmmal.ini

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

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

[MAL_INST1]

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

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

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

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

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

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

MAL_INST_DW_PORT = 7536

[MAL_INST2]

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

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

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

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

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

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

MAL_INST_DW_PORT = 7536

5.3.6主备库的dmwatcher.ini新建文件一致,如下

$ vim /dmdata/AISITE/dmwatcher.ini

[GRP_DW]

DW_TYPE    = GLOBAL

DW_MODE    = MANUAL

DW_ERROR_TIME     = 30

INST_RECOVER_TIME  = 60

INST_ERROR_TIME   = 20

INST_OGUID         = 453331

INST_INI           = /dmdata/AISITE/dm.ini

INST_AUTO_RESTART  = 1

INST_STARTUP_CMD   = /home/dmdba/dmdbms/bin/dmserver

RLOG_SEND_THRESHOLD = 0

RLOG_APPLY_THRESHOLD = 0

5.4 注册守护进程

主备库都注册守护进程服务,以root账号注册

cd /home/dmdba/dmdbms/script/root

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

  • 修改数据库模式与OGUID

6.1修改数据库后台服务默认启动的状态为mount

如果环境开启多窗口很不方便,所以采用后台服务启动为mount状态(主备都改)

进行到这一步之前请再次检查防火墙以及selinux的配置情况

cd /home/dmdba/dmdbms/bin

vim DmServiceAISITE

修改这个参数START_MODE=mount

$ cat DmServiceAISITE | grep START_MODE

START_MODE=mount

6.2修改模式与OGUID

主备执行

DmServiceAISITE start                               

SQL> sp_set_oguid(453331);

主库执行修改模式为primary

SQL> alter database primary;

备库执行修改模式为standby

SQL> alter database standby;

  • 测试集群同步功能

启动集群

主备停止数据库服务,修改mount状态为open,启动主备数据库服务,启动守护进程

$ DmServiceAISITE stop

$ cd /home/dmdba/dmdbms/bin

$ cat DmServiceAISITE | grep START_MODE

START_MODE=open

$ DmServiceAISITE start

$ DmWatcherServiceAISITE start

测试集群数据同步

测试:主库建表插入数据是否能同步到备库

主库:密码用户已经修改

备库

  • 创建备份策略

8.1全备:

sp_init_job_sys(1);

call sp_create_job('bakfull',1,0,'',0,0,'',0,'');

call sp_job_config_start('bakfull');

call SP_ADD_JOB_STEP('bakfull', 'bak1', 6, '01020000/dmdata/dmbak', 3, 3, 0, 0, NULL, 0);

call SP_ADD_JOB_SCHEDULE('bakfull', 'std1', 1, 2, 1, 64, 0, '23:59:00', NULL, sysdate, NULL, '');

call SP_JOB_CONFIG_COMMIT('bakfull');

select id,name from sysjob.sysjobs;

call SP_DBMS_JOB_RUN(1670604426);

8.2备:

call SP_CREATE_JOB('bakincr',1,0,'',0,0,'',0,'');

call SP_JOB_CONFIG_START('bakincr');

call SP_ADD_JOB_STEP('bakincr', 'bak2', 6, '41010000/dmdata/dmbak|/dmdata/dmbak', 3, 3, 0, 0, NULL, 0);

call SP_ADD_JOB_SCHEDULE('bakincr', 'std2', 1, 2, 1, 63, 0, '23:59:00', NULL, sysdate, NULL, '');

call SP_JOB_CONFIG_COMMIT('bakincr');

select id,name from sysjob.sysjobs;

call SP_DBMS_JOB_RUN(1670604427);

8.3.删除备份:

call SP_CREATE_JOB('delbak',1,0,'',0,0,'',0,'');

call SP_JOB_CONFIG_START('delbak');

call SP_ADD_JOB_STEP('delbak', 'bak1', 0, 'sf_bakset_backup_dir_add(''disk'',''/dmdata/dmbak'');

call sp_db_bakset_remove_batch(''disk'',now()-30);', 3, 3, 0, 0, NULL, 0);

call SP_ADD_JOB_SCHEDULE('delbak', 'del01', 1, 1, 1, 0, 0, '23:59:00', NULL, sysdate, NULL, '');

call SP_JOB_CONFIG_COMMIT('delbak');

  • 配置监视器

9.1配置监视器

主备都配置普通监视器

dmmonitor /dmdata/AISITE/dmmonitor.ini

vim /dmdata/AISITE/dmmonitor.ini

MON_DW_CONFIRM    = 0

MON_LOG_PATH    = /home/dmdba/dmdbms/log

MON_LOG_INTERVAL  = 60

MON_LOG_FILE_SIZE   = 200

MON_LOG_SPACE_LIMIT  = 1024

[GRP_DW]

 MON_INST_OGUID    = 453331

 MON_DW_IP     = 192.168.124.129:7436

 MON_DW_IP     = 192.168.124.130:7436

9.2监视器测试主备切换

choose switchover grp_dw

login

switchover dw2

切换完成后检查新主备写是否有问题,新备库是否能同步

测试完成后再切换回dw1作为主库

社区地址:https://eco.dameng.com

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值