达梦 8 主从(DG)
概述
本手册描述了在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



