怀化市网站建设_网站建设公司_百度智能云_seo优化
2026/1/7 6:16:48 网站建设 项目流程

说明:该安装在Vware虚拟机中进行。

一、准备工具

1、虚拟机及IP规划

主机名

数据库名

实例名

业务IP

心跳IP

dm1

DAMENG

DM01

192.168.113.100

192.168.113.100

dm2

DAMENG

DM02

192.168.113.101

192.168.113.101

dm3

DAMENG

MON

192.168.113.102

192.168.113.102

2、端口规划

主机名

实例名

MAL_HOST

MAL_PORT

MAL_INST_HOST

MAL_INST_PORT

PORT_NUM

MAL_DW_PORT

MAL_INST_DW_HOST

dm1

DM01

192.168.113.100

61141

192.168.113.100

5236

5236

52141

33141

dm2

DM02

192.168.113.101

61142

192.168.113.101

5236

5236

52142

33142

3、关闭防火墙,主备都需要

systemctl status firewalld

systemctl stop firewalld

systemctl disable firewalld

二、主库配置

1、单机安装数据库略,可以参看之前编写的达梦数据库安装教程。

2、在主库创建实例DM01

su - dmdba

cd /opt/dmdbms/bin

./dminit path=/dmdata/data PAGE_SIZE=32 EXTENT_SIZE=32 CASE_SENSITIVE=y CHARSET=1 instance_name=DM01 SYSDBA_PWD=******** SYSAUDITOR_PWD=********

3、启动主库,进行数据库初始化,这里不需要用mount,启动再退出(exit)

cd /opt/dmdbms/bin

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

4、进行脱机备份

cd /opt/dmdbms/bin

./dmrman CTLSTMT="BACKUP DATABASE '/dmdata/data/DAMENG/dm.ini' FULL TO BACKUP_FILE1 BACKUPSET '/dmdata/dmbak/BACKUP'"

5、将备份的文件拷贝到备库中

scp -r /dmdata/dmbak/BACKUP/ root@192.168.113.101:/dmdata/dmbak/

三、备库配置

1、在主库创建实例DM02(创建实例之后不需要启动)

su - dmdba

cd /opt/dmdbms/bin

./dminit path=/dmdata/data PAGE_SIZE=32 EXTENT_SIZE=32 CASE_SENSITIVE=y CHARSET=1 instance_name=DM02 SYSDBA_PWD=******** SYSAUDITOR_PWD=*******

2、将备份文件恢复到备库中

su - dmdba

cd /opt/dmdbms/bin

./dmrman CTLSTMT="RESTORE DATABASE '/dmdata/data/DAMENG/dm.ini' FROM BACKUPSET '/dmdata/dmbak/BACKUP'"

./dmrman CTLSTMT="RECOVER DATABASE '/dmdata/data/DAMENG/dm.ini' FROM BACKUPSET '/dmdata/dmbak/BACKUP'"

./dmrman CTLSTMT="RECOVER DATABASE '/dmdata/data/DAMENG/dm.ini' UPDATE DB_MAGIC"

3、对主备库进行检查

启动主库和备库(以mount模式)

su - dmdba

cd /opt/dmdbms/bin

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

在主库和备库上分别重新再开一个终端

su - dmdba

cd /opt/dmdbms/bin

./disql SYSDBA/Gengzhi123456!@localhost:5236

select permanent_magic;

select file_lsn,cur_lsn from v$rlog;

主库:

备库:

四、修改ini文件配置参数

1、修改dm.ini(主备库都需要修改)

su - dmdba

vi /dmdata/data/DAMENG/dm.ini

主要修改ALTER_MODE_STATUS、ENABLE_OFFLINE_TS、MAL_INI、ARCH_INI四个参数

(1)主库

INSTANCE_NAME = DM01 #主库实例名

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

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

ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态/OGUID --dm.ini默认为1,主备库需要修改为0

ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间 --dm.ini默认为1,此处主备库都修改为2

MAL_INI = 1 #打开 MAL 系统 --dm.ini默认为0,主备库需要修改为1

ARCH_INI = 1 #打开归档配置 --dm.ini默认为0,主备库需要修改为1

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

(2)备库

INSTANCE_NAME = DM02 #备库实例名

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

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

ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态/OGUID --dm.ini默认为1,主备库需要修改为0

ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间 --dm.ini默认为1,此处主备库都修改为2

MAL_INI = 1 #打开 MAL 系统 --dm.ini默认为0,主备库需要修改为1

ARCH_INI = 1 #打开归档配置 --dm.ini默认为0,主备库需要修改为1

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

2、dmarch.ini

su - dmdba

vi /dmdata/data/DAMENG/dmarch.ini

(1)主库

[ARCHIVE_REALTIME1]

ARCH_TYPE = REALTIME #实时归档类型

ARCH_DEST = DM02 #实时归档目标实例名 --主库填写备库实例名,备库填写主库实例名

[ARCHIVE_LOCAL1]

ARCH_TYPE = LOCAL #本地归档类型

ARCH_DEST = /dmdata/arch/ #本地归档文件存放路径 --根据规划填写归档路径

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

ARCH_SPACE_LIMIT = 4096 #单位 Mb, 0 表示无限制,范围 1024~4294967294M (必须改成非0)

(2)备库

[ARCHIVE_REALTIME1]

ARCH_TYPE = REALTIME #实时归档类型

ARCH_DEST = DM01 #实时归档目标实例名 --主库填写备库实例名,备库填写主库实例名

[ARCHIVE_LOCAL1]

ARCH_TYPE = LOCAL #本地归档类型

ARCH_DEST = /dmdata/arch/ #本地归档文件存放路径 --根据规划填写归档路径

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

ARCH_SPACE_LIMIT = 4096 #单位 Mb, 0 表示无限制,范围 1024~4294967294M (必须改成非0)

3、dmmal.ini

su - dmdba

vi /dmdata/data/DAMENG/dmmal.ini

主库与备库想同:

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

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

[MAL_INST1]

MAL_INST_NAME = DM01 #主库实例名,和 dm.ini 中的 INSTANCE_NAME 一致

MAL_HOST = 192.168.113.100 #MAL 系统监听 TCP 连接的 IP 地址 --规划主库的IP

MAL_PORT = 61141 #MAL 系统监听 TCP 连接的端口 --规划的端口

MAL_INST_HOST = 192.168.113.100 #实例的对外服务 IP 地址 --规划主库的IP

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

MAL_DW_PORT = 52141 #实例对应的守护进程监听 TCP 连接的端口 --规划的端口

MAL_INST_DW_PORT = 33141 #实例监听守护进程 TCP 连接的端口 --规划的端口

[MAL_INST2]

MAL_INST_NAME = DM02 #备库实例名,和 dm.ini 中的 INSTANCE_NAME 一致

MAL_HOST = 192.168.113.101 #--规划的备库IP

MAL_PORT = 61142 #--规划的端口

MAL_INST_HOST = 192.168.113.101 # --规划的备库IP

MAL_INST_PORT = 5236 #--规划的端口

MAL_DW_PORT = 52142 #--规划的端口

MAL_INST_DW_PORT = 33142 #--规划的端口

4、dmwatcher.ini

su - dmdba

vi /dmdata/data/DAMENG/dmwatcher.ini

主库与备库想同

[GRP1]

DW_TYPE = GLOBAL #全局守护类型

DW_MODE = AUTO #自动切换模式

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

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

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

INST_OGUID = 453331 #守护系统唯一 OGUID 值 --设置的OGUID值

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

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

INST_STARTUP_CMD = /opt/dmdbms/bin/dmserver #命令行方式启动

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

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

五、配置监视器

1、确认监视器dmmonitor.ini

su - dmdba

vi /opt/dmdbms/bin/dmmonitor.ini

MON_DW_CONFIRM = 1 #确认监视器模式 #0:非确认(故障手切) 1:确认(故障自切)

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

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

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

MON_LOG_SPACE_LIMIT = 0 #日志上限,单位 MB,0表示不限制

[GRP1]

MON_INST_OGUID = 453331 #组 GRP1 的唯一 OGUID 值

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

#注意这里 IP 对应 dmmal.ini 中的 MAL_HOST, PORT 对应 dmmal.ini 中的 MAL_DW_PORT

MON_DW_IP = 192.168.113.100:52141

MON_DW_IP = 192.168.113.101:52142

2、非确认监视器dmmonitor_manual.ini

在配置监视器时,一般配置好确认监视器后,建议再配置一个非确认监视器的配置文件,在主名发生切换时,可以通过前台的方式启动非确认监视器进行手动切换。非确认监视器是通过将监视器配置文件中 MON_DW_CONFIRM 参数值修改为 0来实现,示例如下:

su - dmdba

vi /opt/dmdbms/bin/dmmonitor_manual.ini

MON_DW_CONFIR =0 #0:非确认(故障手切)1:确认(故障自切)

MON_LOG_PATH =home/dmdba #监视器日志文件存放路径,必须和确认监视器的不一样

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

MON_LOG_FILE_SIZE=32 #单个日志大小,单位 MB

MON_LOG_SPACE_LIMIT=0#日志上限,单位 MB,0表示不限制

[GRP1]

MON_INST_OGUID=453331 #组GRP1的唯一OGUID值

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

#注意这里 IP 对应 dmmal.ini 中的 MAL_HOST, PORT 对应 dmmal.ini 中的 MAL_DW_PORT

MON_DW_IP = 192.168.113.100:52141

MON_DW_IP = 192.168.113.101:52142

3、启动非确认监视器

这里如果用root启动,需要去bin目录下执行,否则报找不到文件或目录

/opt/dmdbms/bin/dmmonitor /opt/dmdbms/bin/dmmonitor_manual.ini

六、启动服务并修改参数OGUID

主备库中都要执行

su - dmdba

cd /opt/dmdbms/bin

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

1、在主库中执行

cd /opt/dmdbms/bin

./disql

#逐行执行如下sql

SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',1);

SP_SET_OGUID(453331);

ALTER DATABASE PRIMARY;

SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',0);

SELECT OGUID FROM V$INSTANCE;

2、在备库中执行

cd /opt/dmdbms/bin

./disql

#逐行执行如下sql

SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',1);

SP_SET_OGUID(453331);

ALTER DATABASE STANDBY;

SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',0);

SELECT OGUID FROM V$INSTANCE;

七、注册服务

以root用户

cd /opt/dmdbms/script/root

1、主库

(1)服务器服务

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

(2)监控服务

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

2、备库

(1)服务器服务

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

(2)监控服务

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

3、监视器

./dm_service_installer.sh -t dmmonitor -monitor_ini /opt/dmdbms/bin/dmmonitor.ini -p MON

八、集群启动

使用dmdba用户,启动顺序:数据库实例->守护进程->监视器

1、启动数据库

主库

cd /opt/dmdbms/bin

./DmServiceDM01 start

备库

cd /opt/dmdbms/bin

./DmServiceDM02 start

2、启动守护进程

主库

./DmWatcherServiceDM01 start

备库

./DmWatcherServiceDM02 start

3、启动监视器

前台启动方式:

cd /opt/dmdbms/bin

./dmmonitor /opt/dmdbms/bin/dmmonitor.ini

后台启动方式:

cd /opt/dmdbms/bin

./DmMonitorServiceMON start

4、验证主备库数据是否同步

主库

cd /opt/dmdbms/bin

./disql

#逐条执行sql

create table table01(id int);

insert into table01 values (2024);

commit;

备库

select * from table01;

达梦数据库主备教程,更多相关内容请移步达梦官方网站:

https://eco.dameng.com

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询