DM主备集群搭建步骤

DM安装实施文档

DM8 linux 单机

版本

V1.0

编写

刘备

日期

2022/3/14

  1. 安装前准备
    1. 环境确认

主节点

确认项

版本

说明

操作系统版本

Centos7.6

服务器内存

2G

服务器存储空间

40G

数据库安装包

dm8_20210712_x86_rh6_64_ent_8.1.2.38_pack1.iso

是否有授权文件

备节点

确认项

版本

说明

操作系统版本

Centos7.6

服务器内存

2G

服务器存储空间

40G

数据库安装包

dm8_20210712_x86_rh6_64_ent_8.1.2.38_pack1.iso

是否有授权文件

监视服务器

确认项

版本

说明

操作系统版本

Centos7.6

服务器内存

2G

服务器存储空间

40G

数据库安装包

dm8_20210712_x86_rh6_64_ent_8.1.2.38_pack1.iso

是否有授权文件

    1. 安装前配置规划

A机器

B机器

业务IP(对外服务IP)

 124.221.175.43

124.221.179.140

心跳IP(内部通讯IP)

101.43.242.98

124.221.179.140

实例名

DMRW1

DMRW2

实例端口

5236

5236

MAL端口

5336

5336

MAL守护进程端口

5436

5436

守护进程端口

5536

5536

OGUID

45331

DB_NAME

DMRW

守护组

GRP_RW

安装目录

$DB_HOME

实例目录

/dmdata

归档目录

/dmarch

归档上限

备份目录

/dmbk

确认监视器IP

101.43.242.98

  1. DM8集群服务器参数设置

主节点、备节点以及监视器服务器都要按照第二节的步骤操作

    1. 关闭防火墙

firewall-cmd --state  --查看防火墙状态

systemctl stop firewalld.service  --关闭防火墙服务

systemctl disable firewalld.service  --禁止开机启动

    1. 关闭selinux

# vim /etc/sysconfig/selinux

把 SELINUX=enforcing  替换为: SELINUX=disabled

重启操作系统

    1. 创建用户和用户组

以root用户登录到

groupadd -g 12349 dinstall

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

passwd dmdba

    1.  修改内核参数

vi /etc/systemd/system.conf

DefaultLimitCORE=infinity

DefaultLimitNOFILE=100000

DefaultLimitNPROC=100000

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

 然后重启服务器

    1. 创建所需目录并授权

mkdir /dmdata

mkdir /dmarch

mkdir /dmbk

chown dmdba:dinstall /dmdata -R

chown dmdba:dinstall /dmarch -R

chown dmdba:dinstall /dmbk -R

    1. 挂在镜像文件

挂在安装镜像

mount -o loop /root/dm8_20210712_x86_rh6_64_ent_8.1.2.38_pack1.iso  /mnt

    1. 配置.bash_profile

[dmdba@L602PC01 ~]$ vi .bash_profile

####################### DM #########################

export DM_HOME="/home/dmdba/dmdbms"

export PATH=$PATH:/home/dmdba/dmdbms/bin

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$DM_HOME/bin

source .bash_profile 使环境变量生效

    1. 命令行安装数据库软件

[dmdba@VM-20-13-centos mnt]$cd /mnt

[dmdba@VM-20-13-centos mnt]$ ./DMInstall.bin -i 

Please select the installer's language (E/e:English C/c:Chinese) [E/e]:C

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

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

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

是否设置时区? (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]:

安装类型:

1 典型安装

2 服务器

3 客户端

4 自定义

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

所需空间: 1181M

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

可用空间: 28G

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

安装前小结

安装位置: /home/dmdba/dmdbms

所需空间: 1181M

可用空间: 28G

版本信息:

有效日期:

安装类型: 典型安装

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

2022-03-15 15:21:24

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

2022-03-15 15:21:24

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

2022-03-15 15:21:28

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

2022-03-15 15:21:28

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

2022-03-15 15:21:35

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

2022-03-15 15:21:37

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

2022-03-15 15:21:37

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

2022-03-15 15:21:38

[INFO] 移动日志文件。

2022-03-15 15:21:38

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

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

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

安装结束

[dmdba@VM-20-13-centos mnt]$

在root用户下执行

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

  1. DM主备搭建
    1. 创建主库并还原到备库
      1. 初始化主库

创建数据库相关文件,包括日志文件、系统表空间数据文件等

注:无特殊要求页大小32,簇大小32,大小写敏感,UTF-8

dmdba用户下执行        

[dmdba@VM-20-13-centos mnt]$ dminit PATH=/dmdata DB_NAME=DMRW PAGE_SIZE=32 EXTENT_SIZE=32 LOG_SIZE=2048 CHARSET=0 CASE_SENSITIVE=Y

initdb V8

db version: 0x7000c

file dm.key not found, use default license!

License will expire on 2022-07-09

Normal of FAST

Normal of DEFAULT

Normal of RECYCLE

Normal of KEEP

Normal of ROLL

 log file path: /dmdata/DAMENG/DAMENG01.log

 log file path: /dmdata/DAMENG/DAMENG02.log

write to dir [/dmdata/DAMENG].

create dm database success. 2022-03-15 15:28:31

[dmdba@VM-20-13-centos mnt]$

         

      1. 注册并启动主库

需要在root用户下执行脚本注册服务

  1. -dm_ini指定dm.ini文件位置
  2. -t 指定服务类型
  3. -p 服务宁后缀

su - root

[root@VM-4-17-centos root]#  ./dm_service_installer.sh -t dmserver -dm_ini /dmdata/DMRW/dm.ini -p DMRW

Created symlink from /etc/systemd/system/multi-user.target.wants/DmServiceDMRW.service to /usr/lib/systemd/system/DmServiceDMRW.service.

创建服务(DmServiceDMRW)完成

启动服务-切回到dmdba用户

/home/dmdba/dmdbms/script/root

[dmdba@VM-4-17-centos dmdata]$ DmServiceDMRW  start

Starting DmServiceDMRW:                                    [ OK ]

[dmdba@VM-4-17-centos dmdata]$

      1. 备份主库

1、启动归档

alter database mount;
alter database add archivelog 'dest=/dmarch,TYPE=local,FILE_SIZE=1024,SPACE_LIMIT=10240';
alter database archivelog;
alter database open;

  1. 关闭主库使用dmrman进行脱机备份

[dmdba@VM-4-17-centos ~]$ dmrman

dmrman V8

RMAN> backup database '/dmdata/DMRW/dm.ini' backupset '/dmbk/bakfull';

backup database '/dmdata/DMRW/dm.ini' backupset '/dmbk/bakfull';

file dm.key not found, use default license!

Database mode = 0, oguid = 0

Normal of FAST

Normal of DEFAULT

Normal of RECYCLE

Normal of KEEP

Normal of ROLL

EP[0]'s cur_lsn[27813], file_lsn[27813]

Processing backupset /dmbk/bakfull

[Percent:100.00%][Speed:0.00M/s][Cost:00:00:00][Remaining:00:00:00]                                 

backup successfully!

time used: 00:00:01.180

RMAN>

  1. 将备份集copy到备库

scp -r /dmbk/bakfull [email protected]:/dmbk

      1. 初始化备库

目前主库处于关闭状态

[dmdba@VM-20-13-centos mnt]$ dminit PATH=/dmdata DB_NAME=DMRW PAGE_SIZE=32 EXTENT_SIZE=32 LOG_SIZE=2048 CHARSET=0 CASE_SENSITIVE=Y

      1. 注册并启动备库

需要在root用户下执行脚本注册服务

  1. -dm_ini指定dm.ini文件位置
  2. -t 指定服务类型
  3. -p 服务宁后缀

su - root

[root@VM-4-17-centos root]#  ./dm_service_installer.sh -t dmserver -dm_ini /dmdata/DMRW/dm.ini -p DMRW

Created symlink from /etc/systemd/system/multi-user.target.wants/DmServiceDMRW.service to /usr/lib/systemd/system/DmServiceDMRW.service.

创建服务(DmServiceDMRW)完成

启动服务-切回到dmdba用户

/home/dmdba/dmdbms/script/root

[dmdba@VM-4-17-centos dmdata]$ DmServiceDMRW  start

Starting DmServiceDMRW:                                    [ OK ]

[dmdba@VM-4-17-centos dmdata]$

      1. 还原备库

[dmdba@VM-4-11-centos bakfull]$ dmrman

dmrman V8

RMAN> restore database '/dmdata/DMRW/dm.ini' from backupset '/dmbk/bakfull';

restore database '/dmdata/DMRW/dm.ini' from backupset '/dmbk/bakfull';

file dm.key not found, use default license!

[Percent:0.00%][Speed:0.00M/s][Cost:00:00:01][Remaining:00:00:00]Normal of FAST                     

Normal of DEFAULT

Normal of RECYCLE

Normal of KEEP

Normal of ROLL

[Percent:100.00%][Speed:0.00M/s][Cost:00:00:02][Remaining:00:00:00]                                 

restore successfully.

time used: 00:00:02.843

RMAN> recover database '/dmdata/DMRW/dm.ini' from backupset '/dmbk/bakfull';

recover database '/dmdata/DMRW/dm.ini' from backupset '/dmbk/bakfull';

Database mode = 0, oguid = 0

Normal of FAST

Normal of DEFAULT

Normal of RECYCLE

Normal of KEEP

Normal of ROLL

EP[0]'s cur_lsn[27813], file_lsn[27813]

备份集[/dmbk/bakfull]备份过程中未产生日志

recover successfully!

time used: 286.080(ms)

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

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

Database mode = 0, oguid = 0

Normal of FAST

Normal of DEFAULT

Normal of RECYCLE

Normal of KEEP

Normal of ROLL

EP[0]'s cur_lsn[27813], file_lsn[27813]

recover successfully!

time used: 00:00:01.041

还原完成后关闭备库

    1. 配置主备参数文件

配置参数过程中要保证主库和备库都处于关闭状态。

      1. 主库参数调整

  1. dm.ini

INSTANCE_NAME        = DMRW1

PORT_NUM             = 5236

DW_INACTIVE_INTERVAL = 60

ALTER_MODE_STATUS    = 0

ENABLE_OFFLINE_TS    = 2

MAL_INI              = 1

ARCH_INI             = 1

RLOG_SEND_APPLY_MON  = 64

  1. dmarch.ini

ARCH_WAIT_APPLY     = 1                   #0:高性能    1:事务一致

[ARCHIVE_LOCAL]

ARCH_TYPE           = LOCAL               #本地归档类型

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

ARCH_FILE_SIZE      = 1024                #单个归档大小,单位MB

ARCH_SPACE_LIMIT    = 51200               #归档上限,单位MB 业务要求修改

[ARCHIVE_REALTIME1]

ARCH_TYPE           = REALTIME            #实时归档类型

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

  1. dmmal.ini

[dmdba@VM-4-17-centos DMRW]$ cat  dmmal.ini

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

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

[MAL_INST1]

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

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

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

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

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

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

  MAL_INST_DW_PORT = 5536            #守护进程端口

[MAL_INST2]

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

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

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

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

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

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

  MAL_INST_DW_PORT = 5536

  1. dmwatcher.ini

[dmdba@VM-4-17-centos DMRW]$ cat dmwatcher.ini

DW_TYPE           = GLOBAL #全局守护类型

DW_MODE           = AUTO    #自动切换模式

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

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

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

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

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

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

INST_STARTUP_CMD  = /home/dmdba/dmdbms/bin/dmserver   #命令行方式启

      1. 备库参数调整

1、dm.ini

INSTANCE_NAME        = DMRW2

PORT_NUM             = 5236

DW_INACTIVE_INTERVAL = 60

ALTER_MODE_STATUS    = 0

ENABLE_OFFLINE_TS    = 2

MAL_INI              = 1

ARCH_INI             = 1

RLOG_SEND_APPLY_MON  = 64

2、dmarch.ini

ARCH_WAIT_APPLY     = 1                   #0:高性能    1:事务一致

[ARCHIVE_LOCAL]

ARCH_TYPE           = LOCAL               #本地归档类型

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

ARCH_FILE_SIZE      = 1024                #单个归档大小,单位MB

ARCH_SPACE_LIMIT    = 51200               #归档上限,单位MB 业务要求修改

[ARCHIVE_REALTIME1]

ARCH_TYPE           = REALTIME            #实时归档类型

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

3、dmmal.ini

[dmdba@VM-4-17-centos DMRW]$ cat  dmmal.ini

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

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

[MAL_INST1]

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

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

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

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

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

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

  MAL_INST_DW_PORT = 5536            #守护进程端口

[MAL_INST2]

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

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

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

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

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

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

  MAL_INST_DW_PORT = 5536

4、dmwatcher.ini

[dmdba@VM-4-17-centos DMRW]$ cat dmwatcher.ini

DW_TYPE           = GLOBAL #全局守护类型

DW_MODE           = AUTO    #自动切换模式

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

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

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

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

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

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

INST_STARTUP_CMD  = /home/dmdba/dmdbms/bin/dmserver   #命令行方式启

    1. 启动主备
  1. 以mount方式启动主备(主库和备库都操作)

dmserver /dmdata/DMRW/dm.ini mount

2、主库指定全局OGUID并启动主库到primary

disql SYSDBA/SYDBA

sp_set_para_value(1,'ALTER_MODE_STATUS',1);

sp_set_oguid(45331);

alter database primary;

sp_set_para_value(1,'ALTER_MODE_STATUS',0);

3、备库指定全局OGUID并启动主库到standby

disql SYSDBA/SYDBA

sp_set_para_value(1,'ALTER_MODE_STATUS',1);

sp_set_oguid(45331);

alter database primary;

sp_set_para_value(1,'ALTER_MODE_STATUS',0);

4、启动守护进程

dmwatcher /dmdata/DMRW/dmwatcher.ini

6、查看数据库状态

Select * from v$instance

查询结果中数据库状态为open 模式为primary或者standby

行号     NAME  INSTANCE_NAME INSTANCE_NUMBER HOST_NAME      SVR_VERSION                DB_VERSION          START_TIME          STATUS$ MODE$   OGUID       DSC_SEQNO   DSC_ROLE

---------- ----- ------------- --------------- -------------- -------------------------- ------------------- ------------------- ------- ------- ----------- ----------- --------

1          DMRW1 DMRW1         1               VM-4-17-centos DM Database Server x64 V8  DB Version: 0x7000c 2022-03-23 14:07:39 OPEN    PRIMARY 45331       0           NULL

已用时间: 3.748(毫秒). 执行号:403.

    1. 配置守护进程服务

切换到root 用户 切换到$DM_HOME/scripts/root 下执行一下指令

./dm_service_installer.sh -t dmwatcher -p Watcher -watcher_ini /dmdata/DMRW/dmwatcher.ini

    1. 重启集群并验证主备同步
  1. 关闭守护服务

DmWatcherServiceWatcher  stop

  1. 重启实例服务

DmServiceDMRW restart

  1. 启动守护服务

DmWatcherServiceWatcher  start

  1. 主库创建测试表和数据

 create table test2(id int);

insert into test2 values (100);

commit;

  1. 备库查询测试数据

Select * from test2

如果查询结果成功说明主备搭建成功,如果失败需要查看相关日志来分析问题。

    1. 启动监视监视器
  1. 在监视服务器配置监听参数

vi dmmonitor.ini

MON_DW_CONFIRM    = 1   #确认监视器模式

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

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

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

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

[GRP_RW]

 MON_INST_OGUID    = 45331 #组 GRP_RW 的唯一 OGUID 值

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

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

 MON_DW_IP     = 124.221.175.140:5436

 MON_DW_IP     = 124.221.175.43:5436

  1. 配置监听服务

脚本在$DM_HOME/scripts/root下

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

  1. 启动监听服务

 DmMonitorServiceconfirm start

  1. 登录监听服务 并查看集群状态

登录指令:dmmonitor /dmdata/dmmonitor.ini

状态查看: show

[dmdba@VM-4-17-centos ~]$ dmmonitor /dmdata/dmmonitor.ini

[monitor]         2022-03-23 14:29:04: DMMONITOR[4.0] V8

[monitor]         2022-03-23 14:29:07: DMMONITOR[4.0] IS READY.

[monitor]         2022-03-23 14:29:07: 收到守护进程(DMRW1)消息

                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN            

                  2022-03-23 14:29:07  OPEN           OK        DMRW1            OPEN        PRIMARY   VALID    10       48350           48350           

show

2022-03-23 14:30:52

#================================================================================#

GROUP            OGUID       MON_CONFIRM     MODE            MPP_FLAG  

GRP_RW           45331       FALSE           MANUAL          FALSE     

<>

DW_IP               MAL_DW_PORT  WTIME                WTYPE     WCTLSTAT  WSTATUS        INAME            INST_OK   N_EP  N_OK  ISTATUS     IMODE     DSC_STATUS     RTYPE     RSTAT    

124.221.175.43      5436         2022-03-23 14:30:51  GLOBAL    VALID     OPEN           DMRW1            OK        1     1     OPEN        PRIMARY   DSC_OPEN       REALTIME  VALID    

EP INFO:

INST_IP             INST_PORT  INST_OK   INAME            ISTATUS     IMODE     DSC_SEQNO  DSC_CTL_NODE RTYPE     RSTAT    FSEQ            FLSN            CSEQ            CLSN            DW_STAT_FLAG          

124.221.175.43      5236       OK        DMRW1            OPEN        PRIMARY   0          0            REALTIME  VALID    4508            48350           4508            48350           NONE                  

#================================================================================#

你可能感兴趣的:(数据库)