暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

达梦数据库主备集群安装

2025-10-11
52

主备集群规划

主库 备库

IP

192.168.132.209

192.168.132.211

实例名

DMGRID1

DMGRID2

实例端口

5236

5236

MAL 端口

5336

5336

MAL 守护进程端口

5436

5436

守护进程端口

5536

5536

OGUID

45331

45331

守护组

GRP1

GRP1

安装目录

/dm8/dmdbms

/dm8/dmdbms

实例目录

/dmdata/dm8/data

/dmdata/dm8/data

归档上限

51200

51200

安装前准备

关闭防火墙

systemctl stop firewalld

systemctl disable firewalld.service

创建用户所在的组,命令如下:

groupadd dinstall -g 12345

创建用户,命令如下:

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

修改用户密码,命令如下:

passwd dmdba

mkdir -p /dmdata/dm8/backup /dmdata/dm8/arch /dmdata/dm8/log /dmdata/dm8/data /dm8/dmdbms

chown -R dmdba:dinstall /dm8/dmdbms

chown -R dmdba:dinstall /dmdata/dm8/backup

chown -R dmdba:dinstall /dmdata/dm8/arch

chown -R dmdba:dinstall /dmdata/dm8/log

chown -R dmdba:dinstall /dmdata/dm8/data

chmod -R 755 /dm8/dmdbms

chmod -R 755 /dmdata/dm8/backup

chmod -R 755 /dmdata/dm8/arch

chmod -R 755 /dmdata/dm8/log

chmod -R 755 /dmdata/dm8/data

使用 root 用户打开 /etc/security/limits.conf 文件进行修改,命令如下:

vi /etc/security/limits.conf

在最后需要添加如下配置:

dmdba soft nice 0

dmdba hard nice 0

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

su - dmdba

ulimit -a

镜像传到了/目录下

cd /

unzip 一下文件

mount -o loop dm8_20240116_x86_rh7_64.iso /mnt

su - dmdba

cd /mnt

./DMInstall.bin -i

数据库安装完成后,需要切换至 root 用户执行上图中的命令 /home/dmdba/dmdbms/script/root/root_installer.sh 创建 DmAPService,否则会影响数据库备份。

主库执行

su - dmdba

/dm8/dmdbms/bin/dminit PATH=/dmdata/dm8/data/ INSTANCE_NAME=dmgrid1 PAGE_SIZE=32 EXTENT_SIZE=32 CASE_SENSITIVE=y DB_NAME=DMDG INSTANCE_NAME=DMGRID1 PORT_NUM=5236 LOG_SIZE=2048 SYSDBA_PWD=Huangshixin123** SYSAUDITOR_PWD=Huangshixin123**

su - root

cd /dm8/dmdbms/script/root/

./dm_service_installer.sh -t dmserver -dm_ini /dmdata/dm8/data/DMDG/dm.ini -p DMGRID1 -m mount

./DmServiceDMGRID1 start

标志

参数

说明

-t

服务类型

注册服务类型,支持一下服务类型:dmap、dmamon、dmserver、dmwatcher、dmmonitor、dmasmsvr、dmasmsvrm、dmcss、dmcssm。

-dm_ini

INI 文件路径

指定服务所需要的 dm.ini 文件路径。

-p

服务名后缀

指定服务名后缀,生成的操作系统服务名为“服务脚本模板名,称 + 服务名后缀”。此参数只针对 dmserver、dmwatcher、dmmonitor、dmasmsvr、dmasmsvrm、dmcss、dmcssm 服务脚本生效。

主库开启归档

ALTER DATABASE MOUNT;

ALTER DATABASE ARCHIVELOG;

ALTER DATABASE ADD ARCHIVELOG 'DEST=/dmdata/dm8/arch, TYPE=LOCAL, FILE_SIZE=1024, SPACE_LIMIT=51200';

ALTER DATABASE OPEN;

select name,arch_mode from v$database;

备份数据

BACKUP DATABASE BACKUPSET '/dmdata/dm8/backup/fullback';

SP_SET_PARA_VALUE (2,'PORT_NUM',5236);

SP_SET_PARA_VALUE (2,'DW_INACTIVE_INTERVAL',60);

SP_SET_PARA_VALUE (2,'ALTER_MODE_STATUS',0);

SP_SET_PARA_VALUE (2,'ENABLE_OFFLINE_TS',2);

SP_SET_PARA_VALUE (2,'MAL_INI',1);

SP_SET_PARA_VALUE (2,'RLOG_SEND_APPLY_MON',64);

DW_INACTIVE_INTERVAL ##服务器认定守护进程未启动的时间,取值范围 0~1800,单位秒。

如果服务器距离上次收到守护进程消息的时间间隔在设定的时间范围内,则认为守护进程处于活动状态,此时,不允许手工

执行修改服务器模式、状态的 SQL 语句;

如果超过设定时间仍没有收到守护进程消息,则认为守护进程未启动,此时,允许手工方式执行这类 SQL 语句

RLOG_SEND_APPLY_MON ##数据守护中,对于主库,用于指定统计最近 N 次主库到每个备库的归档发送时间;对于备库,用于指定统计最近 N

次备库重演日志的时间,N 为此参数设置的值。取值范围 1~1024

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

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

MAL_INI = 1 ##打开 MAL 系统

ARCH_INI = 1 ##打开归档配置

ALTER_TABLE_OPT=3 ##加快带默认值的字段添加(看情况需要)

su - dmdba

cd /dmdata/dm8/data/DMDG/

vi dmarch.ini

#DaMeng Database Archive Configuration file

#this is comments

ARCH_WAIT_APPLY = 0

[ARCHIVE_LOCAL1]

ARCH_TYPE = LOCAL

ARCH_DEST = /dmdata/dm8/arch

ARCH_FILE_SIZE = 1024

ARCH_SPACE_LIMIT = 51200

ARCH_FLUSH_BUF_SIZE = 2

ARCH_HANG_FLAG = 1

[ARCHIVE_REALTIME1]

ARCH_TYPE = REALTIME #实时归档类型

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

创建 dmmal.ini

cd /dmdata/dm8/data/DMDG/

vi dmmal.ini

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

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

MAL_TEMP_PATH = /dmdata/dmdbms/data/malpath/ #临时文件目录

MAL_BUF_SIZE = 512 #单个 MAL 缓存大小,单位 MB

MAL_SYS_BUF_SIZE = 2048 #MAL 总大小限制,单位 MB

MAL_COMPRESS_LEVEL = 0 #MAL 消息压缩等级,0 表示不压缩

[MAL_INST1]

MAL_INST_NAME = DMGRID1 #实例名,和 dm.ini 的 INSTANCE_NAME 一致

MAL_HOST = 192.168.132.209 #MAL 系统监听 TCP 连接的 IP 地址

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

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

MAL_INST_PORT = 5236 #实例对外服务端口,和 dm.ini 的 PORT_NUM 一致

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

MAL_INST_DW_PORT = 5536 #实例监听守护进程 TCP 连接的端口

[MAL_INST2]

MAL_INST_NAME = DMGRID2

MAL_HOST = 192.168.132.211

MAL_PORT = 5336

MAL_INST_HOST = 192.168.132.211

MAL_INST_PORT = 5236

MAL_DW_PORT = 5436

MAL_INST_DW_PORT = 5536

cd /dmdata/dm8/data/DMDG/

vi dmwatcher.ini

[GRP1]

DW_TYPE = GLOBAL #全局守护类型

DW_MODE = AUTO #MANUAL:故障手切 AUTO:故障自切

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

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

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

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

INST_INI = /dmdata/dm8/data/DMDG/dm.ini #dm.ini 文件路径

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

INST_STARTUP_CMD = /dm8/dmdbms/bin/DmServiceDMGRID1 start #命令行方式启动

RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阈值,默认关闭

RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阈值,默认关闭

cd /dmdata/dm8/backup/fullback

scp * dmdba@192.168.132.211:/dmdata/dm8/backup

/dm8/dmdbms/script/root/dm_service_installer.sh -t dmwatcher -p Watcher -watcher_ini /dmdata/dm8/data/DMDG/dmwatcher.ini

备库执行

su - dmdba

/dm8/dmdbms/bin/dminit PATH=/dmdata/dm8/data/ INSTANCE_NAME=dmgrid1 PAGE_SIZE=32 EXTENT_SIZE=32 CASE_SENSITIVE=y DB_NAME=DMDG INSTANCE_NAME=DMGRID2 PORT_NUM=5236 LOG_SIZE=2048 SYSDBA_PWD=Huangshixin123** SYSAUDITOR_PWD=Huangshixin123**

恢复主库传来的备份

/dm8/dmdbms/bin/dmrman CTLSTMT="RESTORE DATABASE '/dmdata/dm8/data/DMDG/dm.ini' FROM BACKUPSET '/dmdata/dm8/backup'"

/dm8/dmdbms/bin/dmrman CTLSTMT="RECOVER DATABASE '/dmdata/dm8/data/DMDG/dm.ini' FROM BACKUPSET '/dmdata/dm8/backup'"

/dm8/dmdbms/bin/dmrman CTLSTMT="RECOVER DATABASE '/dmdata/dm8/data/DMDG/dm.ini' UPDATE DB_MAGIC"

vi dmarch.ini

#DaMeng Database Archive Configuration file

#this is comments

ARCH_WAIT_APPLY = 0

[ARCHIVE_LOCAL1]

ARCH_TYPE = LOCAL

ARCH_DEST = /dmdata/dm8/arch

ARCH_FILE_SIZE = 1024

ARCH_SPACE_LIMIT = 51200

ARCH_FLUSH_BUF_SIZE = 2

ARCH_HANG_FLAG = 1

[ARCHIVE_REALTIME1]

ARCH_TYPE = REALTIME #实时归档类型

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

注册服务

cd /dm8/dmdbms/script/root/

./dm_service_installer.sh -t dmserver -dm_ini /dmdata/dm8/data/DMDG/dm.ini -p DMGRID2 -m mount

vi dm.ini

INSTANCE_NAME = GRP1_RT_02 PORT_NUM = 5236 #数据库实例监听端口

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

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

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

MAL_INI = 1 #打开 MAL 系统 ARCH_INI = 1 #打开归档配置

RLOG_SEND_APPLY_MON = 64 #统计最近 64 次的日志重演信息

vi dmmal.ini

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

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

MAL_TEMP_PATH = /dmdata/dm8/data/DMDG #临时文件目录

MAL_BUF_SIZE = 512 #单个 MAL 缓存大小,单位 MB

MAL_SYS_BUF_SIZE = 2048 #MAL 总大小限制,单位 MB

MAL_COMPRESS_LEVEL = 0 #MAL 消息压缩等级,0 表示不压缩

[MAL_INST1]

MAL_INST_NAME = DMGRID1 #实例名,和 dm.ini 的 INSTANCE_NAME 一致

MAL_HOST = 192.168.132.209 #MAL 系统监听 TCP 连接的 IP 地址

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

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

MAL_INST_PORT = 5236 #实例对外服务端口,和 dm.ini 的 PORT_NUM 一致

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

MAL_INST_DW_PORT = 5536 #实例监听守护进程 TCP 连接的端口

[MAL_INST2]

MAL_INST_NAME = DMGRID2

MAL_HOST = 192.168.132.211

MAL_PORT = 5336

MAL_INST_HOST = 192.168.132.211

MAL_INST_PORT = 5236

MAL_DW_PORT = 5436

MAL_INST_DW_PORT = 5536

vi dmwatcher.ini

[GRP1]

DW_TYPE = GLOBAL #全局守护类型

DW_MODE = AUTO #MANUAL:故障手切 AUTO:故障自切

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

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

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

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

INST_INI = /dmdata/dm8/data/DMDG/dm.ini #dm.ini 文件路径

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

INST_STARTUP_CMD = /dm8/dmdbms/bin/DmServiceDMGRID2 start #命令行方式启动

RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阈值,默认关闭

RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阈值,默认关闭

/dm8/dmdbms/script/root/dm_service_installer.sh -t dmwatcher -p Watcher -watcher_ini /dmdata/dm8/data/DMDG/dmwatcher.ini

测试主从同步

主库备库都执行

/dm8/dmdbms/bin/dmserver /dmdata/dm8/data/DMDG/dm.ini mount

主库

/dm8/dmdbms/bin/disql sysdba/'"Huangshixin123**"'

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);

select status$ from v$instance;

LINEID STATUS$

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

1 MOUNT

备库

/dm8/dmdbms/bin/disql sysdba/'"Huangshixin123**"'

SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);

SP_SET_OGUID(45331);

ALTER DATABASE STANDBY;

SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

select status$ from v$instance;

LINEID STATUS$

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

1 MOUNT

主库备库启动datawatcher

/dm8/dmdbms/bin/dmwatcher /dmdata/dm8/data/DMDG/dmwatcher.ini

查看数据库状态

SQL> select status$,mode$ from v$instance;

LINEID STATUS$ MODE$

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

1 OPEN PRIMARY

SQL> select status$,mode$ from v$instance;

LINEID STATUS$ MODE$

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

1 OPEN STANDBY

主节点启动monitor,后期为规范格外部署一台服务器安装monnitor

/dm8/dmdbms/bin/dmmonitor /dmdata/dm8/data/DMDG/dmmonitor.ini

/dm8/dmdbms/bin/dmmonitor /dm8/dmdbms/bin/dmmonitor.ini

测试数据同步

create tablespace hsx datafile '/dmdata/dm8/data/DMDG/hsx.DBF' size 128 autoextend on maxsize 10240;

create user hsx identified by "Huangshixin123**" default tablespace hsx default index tablespace hsx;

grant dba to hsx;

主节点登录hsx用户

备节点查询表



https://eco.dameng.com

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论