达梦 8 主从(DG)

2023-04-12

概述


本手册描述了在LINUX(RHEL 7)操作系统下安装达梦 8 数据库软件的操作过程。如无明确文字说明,均使用操作系统root用户执行命令。


文档目的

本手册为在LINUX操作系统环境下安装达梦 8 数据库提供指导和参考,本文大致会提到达梦 8 主从版 。


适用范围

本手册适用于在RedHat 7环境下安装并创建达梦 8 数据库。


使用对象

本手册的使用对象为安装达梦数据库的开发、测试、运维及相关人员。


安装环境


版本说明

操作系统版本


RedHat 7.6


数据库版本


达梦 8


注:实际安装当中,RedHat系统以大版本7为准


安装介质

安装介质


类型


说明


dm8_setup_rh7_64_ent_8.1.1.48_20191129


数据库


尽量选择稳定版本


服务IP


角色


备注


10.100.21.81


Master



10.100.21.82


Slave



10.100.21.93


monitor


监控


达梦主从原理


达梦主备集群顾名思义就是一主一备(也可以一主多备)是一种集成化的高可靠性解决方案,同时满足用户对数据安全性和高可用性的要求。解决由于硬件故障、自然灾害等原因导致的数据库服务长时间中断问题,满足用户不间断提供数据库服务的要求,即实现系统的双机热备功能。在使用的过程中,如果是实时同步模式的话,主机和备机的数据保持完全一致。主机产生一条新的记录时,在记录写入数据库文件之前,会把新产生的redo日志文件发送到备机,由备机重新执行接收到的redo日志,来保证主备集群数据的一致性。 如果主机发生故障,则备机会自动切换为主机,代替原主机的职能。以此保证服务的连续性。在原主机故障恢复之后,重新加入集群之后,则变为备机,由新主机继续执行相关的任务,并同步数据到备机。



达梦安装


su - dmdba


./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
请选择设置时区 [21]:
安装类型:
1 典型安装
2 服务器
3 客户端
4 自定义
请选择安装类型的数字序号 [1 典型安装]:
请选择安装目录 [/opt/dmdbms]:/dm/dmdbms/dm8
目录(/dm/dmdbms/dm8)下不为空,请选择其他目录。
请选择安装目录 [/opt/dmdbms]:/dm/dmdbms/dm8
可用空间: 44G
是否确认安装路径(/dm/dmdbms/dm8)? (Y/y:是 N/n:否)  [Y/y]:y
安装前小结
安装位置: /dm/dmdbms/dm8
所需空间: 1012M
可用空间: 44G
版本信息: 
有效日期: 
安装类型: 典型安装
是否确认安装? (Y/y:是 N/n:否):y

root:


/dm/dmdbms/dm8/script/root/root_installer.sh
chown -R dmdba:dinstall /dm


01.创建主库实例

10.100.21.81:


dminit path=/dm/dmdata db_name=hisdb instance_name=hisdb1 port_num=15236 LOG_SIZE=256 SYSDBA_PWD=dameng123 EXTENT_SIZE=16 PAGE_SIZE=16 charset=1

后台启动数据库


nohup dmserver /dm/dmdata/hisdb/dm.ini &

开启归档


ALTER DATABASE MOUNT;
ALTER DATABASE ADD ARCHIVELOG 'DEST=/dm/dmarch/hisdb,TYPE = local,FILE_SIZE =256,SPACE_LIMIT = 0';
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;
select arch_mode from v$database;
select * from v$dm_arch_ini;

02.备份主数据库

备份: checkpoint(100); -- 切检查点


cd /dm/dmdbms/dm8/bin
./dmrman 
backup database '/dm/dmdata/hisdb/dm.ini' full to hisdb_full01 backupset '/dm/dmback/hisdb_full01'
scp -r /dm/dmback/hisdb_full01 10.100.21.82:/dm/dmback/

03.备库初始化及还原主库数据

10.100.21.82:


su - dmdba
cd /dm/dmdbms/dm8/bin
./dminit path=/dm/dmdata db_name=hisdb instance_name=hisdb2 port_num=25236 LOG_SIZE=256 SYSDBA_PWD=dameng123 EXTENT_SIZE=16 PAGE_SIZE=16 charset=1
./dmrman
restore database '/dm/dmdata/hisdb/dm.ini' from backupset '/dm/dmback/hisdb_full01' 
recover database '/dm/dmdata/hisdb/dm.ini' from backupset '/dm/dmback/hisdb_full01'
recover database '/dm/dmdata/hisdb/dm.ini' update db_magic


04.修改主库的配置文件

su - dmdba


cd /dm/dmdata/hisdb


第一个配置文件


vi dm.ini


INSTANCE_NAME = hisdb1 #主库实例
PORT_NUM = 15236 #数据库实例监听端口
DW_PORT = 15237 #守护环境下,监听守护进程连接端口,为上面规划表中的 MAL_INST_DW_PORT 值
DW_ERROR_TIME = 60 #接收守护进程消息超时时间
ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态
ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间
MAL_INI = 1 #打开 MAL 系统
ARCH_INI = 1 #打开归档配置
HA_INST_CHECK_FLAG = 1 #检测是否多个实例进程同时启动
RLOG_SEND_APPLY_MON = 64 #统计最近 64 次的日志发送信息

第二个配置文件(新文件)


vi dmmal.ini


MAL_CHECK_INTERVAL = 5 #MAL 链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 #判定 MAL 链路断开的时间
[MAL_INST1]
MAL_INST_NAME = hisdb1 # 实 例 名 , 和 dm.ini 中 的 INSTANCE_NAME 一致
MAL_HOST = 10.100.21.81 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 15239 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 10.100.21.81 #实例的对外服务 IP 地址
MAL_INST_PORT = 15236 #实例的对外服务端口,和 dm.ini 中的 PORT_NUM 一致
MAL_INST_DW_PORT = 15237 #实例监听守护进程 TCP 连接的端口
MAL_DW_PORT = 15238 #实例对应的守护进程监听 TCP 连接的端口

[MAL_INST2]
MAL_INST_NAME = hisdb2 # 实 例 名 , 和 dm.ini 中 的 INSTANCE_NAME 一致
MAL_HOST = 10.100.21.82 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 25239 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 10.100.21.82 #实例的对外服务 IP 地址
MAL_INST_PORT = 25236 #实例的对外服务端口,和 dm.ini 中的PORT_NUM 一致
MAL_INST_DW_PORT = 25237 #实例监听守护进程 TCP 连接的端口
MAL_DW_PORT = 25238 #实例对应的守护进程监听 TCP 连接的端口

第三个配置文件


vi dmarch.ini


[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = hisdb2 #实时归档目标实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /dm/dmarch/hisdb #本地归档文件存放路径
ARCH_FILE_SIZE = 256 #单位 Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 0 # 单 位 Mb , 0 表 示 无 限 制 , 范 围 1024~4294967294M

第四个配置文件(新文件)


vi dmwatcher.ini


[GRP1]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = AUTO #自动切换模式,手工 MANUAL
DW_ERROR_TIME = 10 #远程守护进程故障认定时间
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
INST_ERROR_TIME = 10 #本地实例故障认定时间
INST_OGUID = 453331 #守护系统唯一 OGUID 值
INST_INI = /dm/dmdata/hisdb/dm.ini #dm.ini 配置文件路径
INST_AUTO_RESTART = 1 #打开实例的自动启动功能
INST_STARTUP_CMD = /dm/dmdbms/dm8/bin/dmserver #命令行方式启动
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阀值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阀值,默认关闭


05.修改备库的配置文件

10.100.21.82:


su - dmdba


cd /dm/dmdata/hisdb


第一个配置文件


vi dm.ini


INSTANCE_NAME = hisdb2 #主库实例
PORT_NUM = 25236 #数据库实例监听端口
DW_PORT = 25237 #守护环境下,监听守护进程连接端口,为上面规划表中的 MAL_INST_DW_PORT 值
DW_ERROR_TIME = 60 #接收守护进程消息超时时间
ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态
ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间
MAL_INI = 1 #打开 MAL 系统
ARCH_INI = 1 #打开归档配置
HA_INST_CHECK_FLAG = 1 #检测是否多个实例进程同时启动
RLOG_SEND_APPLY_MON = 64 #统计最近 64 次的日志发送信息

第二个配置文件(新文件)


vi dmmal.ini


MAL_CHECK_INTERVAL = 5 #MAL 链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 #判定 MAL 链路断开的时间
[MAL_INST1]
MAL_INST_NAME = hisdb1 # 实 例 名 , 和 dm.ini 中 的 INSTANCE_NAME 一致
MAL_HOST = 10.100.21.81 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 15239 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 10.100.21.81 #实例的对外服务 IP 地址
MAL_INST_PORT = 15236 #实例的对外服务端口,和 dm.ini 中的 PORT_NUM 一致
MAL_INST_DW_PORT = 15237 #实例监听守护进程 TCP 连接的端口
MAL_DW_PORT = 15238 #实例对应的守护进程监听 TCP 连接的端口

[MAL_INST2]
MAL_INST_NAME = hisdb2 # 实 例 名 , 和 dm.ini 中 的 INSTANCE_NAME 一致
MAL_HOST = 10.100.21.82 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 25239 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 10.100.21.82 #实例的对外服务 IP 地址
MAL_INST_PORT = 25236 #实例的对外服务端口,和 dm.ini 中的 PORT_NUM 一致
MAL_INST_DW_PORT = 25237 #实例监听守护进程 TCP 连接的端口
MAL_DW_PORT = 25238 #实例对应的守护进程监听 TCP 连接的端口

第三个配置文件


vi dmarch.ini


[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = hisdb1 #实时归档目标实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /dm/dmarch/hisdb #本地归档文件存放路径
ARCH_FILE_SIZE = 256 #单位 Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 0 # 单 位 Mb , 0 表 示 无 限 制 , 范 围 1024~4294967294M

第四个配置文件(新文件)


vi dmwatcher.ini


[GRP1]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = AUTO #自动切换模式,MANUAL 手工切换模式。
DW_ERROR_TIME = 10 #远程守护进程故障认定时间
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
INST_ERROR_TIME = 10 #本地实例故障认定时间
INST_OGUID = 453331 #守护系统唯一 OGUID 值
INST_INI = /dm/dmdata/hisdb/dm.ini #dm.ini 配置文件路径
INST_AUTO_RESTART = 1 #打开实例的自动启动功能
INST_STARTUP_CMD = /dm/dmdbms/dm8/bin/dmserver #命令行方式启动
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阀值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阀值,默认关闭


05.主库注册服务,配置OGUID

10.100.21.81:


root:


cd /dm/dmdbms/dm8/script/root/
./dm_service_installer.sh -t dmserver -dm_ini /dm/dmdata/hisdb/dm.ini -p hisdb
./dm_service_installer.sh -t dmwatcher -watcher_ini /dm/dmdata/hisdb/dmwatcher.ini -p hisdb

su - dmdba


cd /dm/dmdbms/dm8/bin

./dmserver /dm/dmdata/hisdb/dm.ini mount

disql SYSDBA/dameng123@10.100.21.81:15236

select status$ from v$database;
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);
exit;
DmServicehisdb start   

DmWatcherServicehisdb start


06.备库注册服务,配置OGUID

root:


cd /dm/dmdbms/dm8/script/root/
./dm_service_installer.sh -t dmserver -dm_ini /dm/dmdata/hisdb/dm.ini -p hisdb
./dm_service_installer.sh -t dmwatcher -watcher_ini /dm/dmdata/hisdb/dmwatcher.ini -p hisdb

su - dmdba


cd /dm/dmdbms/dm8/bin
./dmserver /dm/dmdata/hisdb/dm.ini mount

disql SYSDBA/dameng123@10.100.21.82:25236
select status$ from v$database;
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);
DmServicehisdb start
DmWatcherServicehisdb start

07.安装监视器

10.100.21.93:


su - dmdba


mkdir /dm/dmdbms/dm8/data


vi /dm/dmdbms/dm8/data/dmmonitor.ini


MON_DW_CONFIRM = 1 #确认监视器模式
MON_LOG_PATH = /dm/dmdbms/dm8/log #监视器日志文件存放路径
MON_LOG_INTERVAL = 60 #每隔 60s 定时记录系统信息到日志文件
MON_LOG_FILE_SIZE = 32 #每个日志文件最大 32M
MON_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间
[GRP1]
MON_INST_OGUID = 453331 #组 GRP1 的唯一 OGUID 值
MON_DW_IP = 10.100.21.81:15238
MON_DW_IP = 10.100.21.82:25238
#配置为监视器到组 GRP1 的守护进程的连接信息,以“IP:PORT”的形式配置
#IP 对应 dmmal.ini 中的 MAL_HOST, PORT 对应 dmmal.ini 中的 MAL_DW_PORT

注册服务:


su - root


cd /dm/dmdbms/dm8/script/root
./dm_service_installer.sh -t dmmonitor -monitor_ini /dm/dmdbms/dm8/data/dmmonitor.ini -p hisdb

启动监视器:


su - dmdba


DmMonitorServicehisdb start
DmMonitorServicehisdb stop

或者(前台展示)


/dm/dmdbms/dm8/bin/dmmonitor /dm/dmdbms/dm8/data/dmmonitor.ini

本文仅代表作者观点,版权归原创者所有,如需转载请在文中注明来源及作者名字。

免责声明:本文系转载编辑文章,仅作分享之用。如分享内容、图片侵犯到您的版权或非授权发布,请及时与我们联系进行审核处理或删除,您可以发送材料至邮箱:service@tojoy.com