麒麟操作系统达梦数据库集群安装
文章目录
- [1. 环境介绍](#1. 环境介绍)
- [2. 端口划分](#2. 端口划分)
- [3. 安装前准备工作](#3. 安装前准备工作)
- [4. 下载DM](#4. 下载DM)
- [5. 安装DM](#5. 安装DM)
- [6. 主库进行脱机备份](#6. 主库进行脱机备份)
-
- [6.1 说明](#6.1 说明)
- [6.2 执行](#6.2 执行)
-
- [6.2.1 主库](#6.2.1 主库)
- [6.2.2 备库](#6.2.2 备库)
- [7. 配置文件准备](#7. 配置文件准备)
-
- [7.1 主库 82](#7.1 主库 82)
- [7.2 备库 83](#7.2 备库 83)
- [7.3 备库 84](#7.3 备库 84)
- [8. 启动主备服务](#8. 启动主备服务)
-
- [8.1 主备库](#8.1 主备库)
- [8.2 设置 OGUID 和 数据库模式](#8.2 设置 OGUID 和 数据库模式)
-
- [8.2.1 主库](#8.2.1 主库)
- [8.2.2 从库](#8.2.2 从库)
- [9. 启动守护进程](#9. 启动守护进程)
- [10 启动监视器](#10 启动监视器)
-
- [10.1 从库](#10.1 从库)
- [11. 服务注册](#11. 服务注册)
-
- [11.1 注册](#11.1 注册)
- [11.2 服务启动](#11.2 服务启动)
- [11.3 服务重启](#11.3 服务重启)
1. 环境介绍
| 操作系统 | Kylin Linux Advanced Server V10 (Lance) | Kylin Linux Advanced Server V10 (Lance) | Kylin Linux Advanced Server V10 (Lance) |
|---|---|---|---|
| 内核版本 | Linux 4.19.90-52.22.v2207.ky10.aarch64 | Linux 4.19.90-52.22.v2207.ky10.aarch64 | Linux 4.19.90-52.22.v2207.ky10.aarch64 |
| IP | 192.168.31.82 (主) | 192.168.31.83 (从) | 192.168.31.84 (从) |
| DM | DM8 | DM8 | DM8 |
| 实例名称 | DMTEST | DMTEST | DMTEST |
| 数据库名称 | DBSERVER | DBSERVER | DBSERVER |
2. 端口划分
sh
MAL_INST_PORT 5237 数据库实例监听端口
MAL_PORT 61141 MAL 系统监听 TCP 连接的端口
MAL_DW_PORT 33141 实例监听守护进程 TCP 连接的端口
MAL_INST_DW_PORT 52141 实例本地的守护进程监听 TCP 连接的端口
3. 安装前准备工作
sh
# 关闭防火墙
systemctl stop friewalld
systemctl disable friewalld
# 达梦数据库官方文档
https://eco.dameng.com/document/dm/zh-cn/pm/installation-introduction.html
# 新建dmdba
# 1 创建用户所在的组
groupadd dinstall -g 2001
# 2 创建用户
useradd -G dinstall -m -d /home/dmdba -s /bin/bash -u 2001 dmdba
# 3 修改用户密码 用户名 dmdba 密码最少8位,本次使用yuanfang@888
passwd dmdba
# echo dmdba |passwd --stdin dmdba yuanfang@888
# 为dmdba修改文件打开最大数
vi /etc/security/limits.d/dm.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
# 切换到dmdba用户,查看是否生效
su - dmdba
ulimit -a
# 注意上一步执行了su -dmdba 记得切换回来 如果没有执行则不需要切换
# 使用root用户创建 需要把文件得所有者跟改为 dmdba这个用户
# 实例安装目录
mkdir -p /dmdata/data
# 归档日志存放目录
mkdir -p /dmdata/arch
# 备份文件存放目录
mkdir -p /dmdata/dmbak
# 修改目录权限
chown -R dmdba:dinstall /dmdata
chown -R dmdba:dinstall /dmdata/data
chown -R dmdba:dinstall /dmdata/arch
chown -R dmdba:dinstall /dmdata/dmbak
# 给路径下的文件设置 755 权限
chmod -R 755 /dmdata/data
chmod -R 755 /dmdata/arch
chmod -R 755 /dmdata/dmbak
4. 下载DM
sh
mkdir -p /opt/software/dm && cd /opt/software/dm
# dM下载地址
https://www.dameng.com/list_110.html
wget https://download.dameng.com/eco/adapter/DM8/202407/dm8_20240712_HWarm920_kylin10_64.zip
# 解压
unzip dm8_20240712_HWarm920_kylin10_64.zip
# 创建挂载目录
mkdir -p /mnt/dm
# 挂载镜像 切换到 root 用户,将 DM 数据库的 iso 安装包保存在任意位置,例如 /opt 目录下,执行如下命令挂载镜像:
mount -o loop dm8_20240712_HWarm920_kylin10_64.iso /mnt/dm
5. 安装DM
sh
# 命令行安装 切换至 dmdba 在 /mnt/dm 命令行安装数据库程序
su - dmdba
cd /mnt/dm
# 执行安装
./DMInstall.bin -i
# 步骤
1
n
y
21
1
y
# 数据库安装大概 1~2 分钟 数据库安装完成后,需要切换至 root 用户执行上图中的命令 直接exit
su -
/home/dmdba/dmdbms/script/root/root_installer.sh
# 再切换到dmdba 或者 直接exit
su - dmdba
cd /home/dmdba/dmdbms/bin
./dminit path=/dmdata/data PAGE_SIZE=32 EXTENT_SIZE=32 CASE_SENSITIVE=0 CHARSET=1 DB_NAME=DMTEST INSTANCE_NAME=DBSERVER PORT_NUM=5237
# 又切换到root
su -
cd /home/dmdba/dmdbms/script/root/
./dm_service_installer.sh -t dmserver -dm_ini /dmdata/data/DMTEST/dm.ini -p DMTEST
# 切换到dmdba
su - dmdba
cd /home/dmdba/dmdbms/bin
# 启动数据库
systemctl start DmServiceDMTEST
# 停止数据库
systemctl stop DmServiceDMTEST
# 查看状态
systemctl status DmServiceDMTEST
# 数据库初始账号 密码
SYSDBA SYSDBA
# 修改密码
ALTER USER SYSDBA IDENTIFIED BY yuanfang_2024
ALTER USER SYSDBA IDENTIFIED BY "需要改的密码";
6. 主库进行脱机备份
6.1 说明
脱机备份前要关闭数据库实例,否则备份会出错
备份的目的是为了确保主备数据库在自动同步前数据是一致的
如果上面执行了 systemctl start DmServiceDMTEST 请执行systemctl stop DmServiceDMTEST
6.2 执行
6.2.1 主库
sh
# 切换到dmdba用户
su dmdba
cd /home/dmdba/dmdbms/bin
BACKUP DATABASE '/dmdata/data/DMTEST/dm.ini' FULL BACKUPSET '/dmdata/dmbak/full_database';
[dmdba@192.168.31.82 bin]$ ./dmrman
dmrman V8
RMAN> BACKUP DATABASE '/dmdata/data/DMTEST/dm.ini' FULL BACKUPSET '/dmdata/dmbak/full_database';
BACKUP DATABASE '/dmdata/data/DMTEST/dm.ini' FULL BACKUPSET '/dmdata/dmbak/full_database';
file dm.key not found, use default license!
Processing backupset /dmdata/dmbak/full_database
[Percent:100.00%][Speed:0.00M/s][Cost:00:00:02][Remaining:00:00:00]
backup successfully!
time used: 00:00:03.247
# 主库复制到文件到备库
scp -r /dmdata/dmbak/full_database 192.168.31.89:/dmdata/dmbak/full_database
scp -r /dmdata/dmbak/full_database 192.168.31.90:/dmdata/dmbak/full_database
[dmdba@192.168.31.82 bin]$ scp -r /dmdata/dmbak/full_database 192.168.31.83:/dmdata/dmbak/full_database
The authenticity of host '192.168.31.83 (192.168.31.83)' can't be established.
ECDSA key fingerprint is SHA256:7nScQ84Y8rsrCLMv76E6PWFl/ODFaGJIPsvnGXvkG2M.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.31.83' (ECDSA) to the list of known hosts.
Authorized users only. All activities may be monitored and reported.
dmdba@192.168.31.83's password:
full_database.bak 100% 26MB 276.7MB/s 00:00
full_database.meta 100% 106KB 134.4MB/s 00:00
6.2.2 备库
sh
# 切换到dmdba用户
# 备库进入/home/dmdba/dmdbms/bin进行恢复
./dmrman
RESTORE DATABASE '/dmdata/data/DMTEST/dm.ini' FROM BACKUPSET '/dmdata/dmbak/full_database';
RECOVER DATABASE '/dmdata/data/DMTEST/dm.ini' FROM BACKUPSET '/dmdata/dmbak/full_database';
RECOVER DATABASE '/dmdata/data/DMTEST/dm.ini' UPDATE DB_MAGIC;
[dmdba@192.168.31.83 bin]$ ./dmrman
dmrman V8
RMAN> RESTORE DATABASE '/dmdata/data/DMTEST/dm.ini' FROM BACKUPSET '/dmdata/dmbak/full_database';
RESTORE DATABASE '/dmdata/data/DMTEST/dm.ini' FROM BACKUPSET '/dmdata/dmbak/full_database';
file dm.key not found, use default license!
[Percent:100.00%][Speed:0.00M/s][Cost:00:00:02][Remaining:00:00:00]
restore successfully.
time used: 00:00:02.479
RMAN> RECOVER DATABASE '/dmdata/data/DMTEST/dm.ini' FROM BACKUPSET '/dmdata/dmbak/full_database';
RECOVER DATABASE '/dmdata/data/DMTEST/dm.ini' FROM BACKUPSET '/dmdata/dmbak/full_database';
recover successfully!
time used: 424.180(ms)
RMAN> RECOVER DATABASE '/dmdata/data/DMTEST/dm.ini' UPDATE DB_MAGIC;
RECOVER DATABASE '/dmdata/data/DMTEST/dm.ini' UPDATE DB_MAGIC;
recover successfully!
time used: 00:00:01.054
7. 配置文件准备
配置文件都放在 /dmdata/data 下
注意:dm.ini的配置信息比较多,请注意,不要修改错了
7.1 主库 82
sh
# 实例配置文件:dm.ini
vi /dmdata/data/DMTEST/dm.ini
# ##实例名,建议使用"组名_守护环境_序号"的命名方式,总长度不能超过16
INSTANCE_NAME = GRP1_RT_01 #修改实例名
MAL_INI = 1 #打开 MAL 系统
ARCH_INI = 1 #打开归档配置
ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间
# 归档配置文件:dmarch.ini
vi /dmdata/data/DMTEST/dmarch.ini
[ARCHIVE_REALTIME2]
ARCH_TYPE = REALTIME #归档类型
ARCH_DEST = GRP1_RT_02 #归档目标实例名(主库侧填写备库实例名)
[ARCHIVE_REALTIME3]
ARCH_TYPE = REALTIME #归档类型
ARCH_DEST = GRP1_RT_03 #归档目标实例名(主库侧填写备库实例名)
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /dmdata/arch #本地归档文件存放路径
ARCH_FILE_SIZE = 128 #单位 MB,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 0 #单位 MB,0 表示无限制,范围 1024~4294967294 MB
# MAL系统配置文件 dmmal.ini
vi /dmdata/data/DMTEST/dmmal.ini
MAL_CHECK_INTERVAL = 5 # MAL链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 # 判定 MAL链路断开的时间
[MAL_INST1]
MAL_INST_NAME = GRP1_RT_01 #与 dm.ini中的 INSTANCE_NAME一致
MAL_HOST = 192.168.31.82 #MAL系统监听 TCP 内部网络 IP
MAL_PORT = 61141 # MAL系统监听 TCP连接的端口
MAL_INST_HOST = 192.168.31.82 #实例的对外服务 IP地址
MAL_INST_PORT = 5237 #与 dm.ini中的 PORT_NUM一致
MAL_DW_PORT = 52141 #实例对应的守护进程监听 TCP 端口
MAL_INST_DW_PORT = 33141
[MAL_INST2]
MAL_INST_NAME = GRP1_RT_02 #与 dm.ini中的 INSTANCE_NAME 一致
MAL_HOST = 192.168.31.83 # MAL系统监听 TCP内部网络 IP
MAL_PORT = 61141 # MAL系统监听 TCP连接的端口
MAL_INST_HOST = 192.168.31.83 #实例的对外服务 IP地址
MAL_INST_PORT = 5237 #与 dm.ini中的 PORT_NUM一致
MAL_DW_PORT = 52141 #实例对应的守护进程监听 TCP端口
MAL_INST_DW_PORT = 33141
[MAL_INST3]
MAL_INST_NAME = GRP1_RT_03 #与 dm.ini中的 INSTANCE_NAME 一致
MAL_HOST = 192.168.31.84 # MAL系统监听 TCP内部网络 IP
MAL_PORT = 61141 # MAL系统监听 TCP连接的端口
MAL_INST_HOST = 192.168.31.84 #实例的对外服务 IP地址
MAL_INST_PORT = 5237 #与 dm.ini中的 PORT_NUM一致
MAL_DW_PORT = 52141 #实例对应的守护进程监听 TCP端口
MAL_INST_DW_PORT = 33141
# 守护进程配置文件 dmwatcher.ini
vi /dmdata/data/DMTEST/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 值
INST_INI = /dmdata/data/DMTEST/dm.ini # dm.ini 配置文件路径
INST_AUTO_RESTART = 1 #打开实例的自动启动功能
INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver #命令行方式启动
7.2 备库 83
sh
# 实例配置文件:dm.ini
vi /dmdata/data/DMTEST/dm.ini
##实例名,建议使用"组名_守护环境_序号"的命名方式,总长度不能超过16
INSTANCE_NAME = GRP1_RT_02
MAL_INI = 1 #打开 MAL 系统
ARCH_INI = 1 #打开归档配置
ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间
# 归档配置文件:dmarch.ini
vi /dmdata/data/DMTEST/dmarch.ini
[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME #归档类型
ARCH_DEST = GRP1_RT_01 #归档目标实例名(主库侧填写备库实例名)
[ARCHIVE_REALTIME3]
ARCH_TYPE = REALTIME #归档类型
ARCH_DEST = GRP1_RT_03 #归档目标实例名(主库侧填写备库实例名)
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /dmdata/arch #本地归档文件存放路径
ARCH_FILE_SIZE = 128 #单位 MB,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 0 #单位 MB,0 表示无限制,范围 1024~4294967294 MB
# MAL系统配置文件 dmmal.ini
vi /dmdata/data/DMTEST/dmmal.ini
MAL_CHECK_INTERVAL = 5 # MAL链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 # 判定 MAL链路断开的时间
[MAL_INST1]
MAL_INST_NAME = GRP1_RT_01 #与 dm.ini中的 INSTANCE_NAME一致
MAL_HOST = 192.168.31.82 #MAL系统监听 TCP 内部网络 IP
MAL_PORT = 61141 # MAL系统监听 TCP连接的端口
MAL_INST_HOST = 192.168.31.82 #实例的对外服务 IP地址
MAL_INST_PORT = 5237 #与 dm.ini中的 PORT_NUM一致
MAL_DW_PORT = 52141 #实例对应的守护进程监听 TCP 端口
MAL_INST_DW_PORT = 33141
[MAL_INST2]
MAL_INST_NAME = GRP1_RT_02 #与 dm.ini中的 INSTANCE_NAME 一致
MAL_HOST = 192.168.31.83 # MAL系统监听 TCP内部网络 IP
MAL_PORT = 61141 # MAL系统监听 TCP连接的端口
MAL_INST_HOST = 192.168.31.83 #实例的对外服务 IP地址
MAL_INST_PORT = 5237 #与 dm.ini中的 PORT_NUM一致
MAL_DW_PORT = 52141 #实例对应的守护进程监听 TCP端口
MAL_INST_DW_PORT = 33141
[MAL_INST3]
MAL_INST_NAME = GRP1_RT_03 #与 dm.ini中的 INSTANCE_NAME 一致
MAL_HOST = 192.168.31.84 # MAL系统监听 TCP内部网络 IP
MAL_PORT = 61141 # MAL系统监听 TCP连接的端口
MAL_INST_HOST = 192.168.31.84 #实例的对外服务 IP地址
MAL_INST_PORT = 5237 #与 dm.ini中的 PORT_NUM一致
MAL_DW_PORT = 52141 #实例对应的守护进程监听 TCP端口
MAL_INST_DW_PORT = 33141
# 守护进程配置文件 dmwatcher.ini
vi /dmdata/data/DMTEST/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 值
INST_INI = /dmdata/data/DMTEST/dm.ini # dm.ini 配置文件路径
INST_AUTO_RESTART = 1 #打开实例的自动启动功能
INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver #命令行方式启动
# 监视器配置文件 dmmonitor.ini
# 集群任意节点(一般在备库),配置监视器配置文件 dmmonitor.ini。
vi /dmdata/data/DMTEST/dmmonitor.ini
MON_DW_CONFIRM = 1 #确认监视器模式
MON_LOG_PATH = /dmdata/data/log #监视器日志文件存放路径
MON_LOG_INTERVAL = 60 #每隔 60 s 定时记录系统信息到日志文件
MON_LOG_FILE_SIZE = 32 #每个日志文件最大 32 MB
MON_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间
[GRP1]
MON_INST_OGUID = 453331 #组 GRP_RW 的唯一 OGUID 值
#以下配置为监视器到组 GRP_RW 的守护进程的连接信息,以"IP:PORT"的形式配置
#IP 对应 dmmal.ini 中的 MAL_HOST,PORT 对应 dmmal.ini 中的 MAL_DW_PORT
MON_DW_IP = 192.168.31.82:52141
MON_DW_IP = 192.168.31.83:52141
MON_DW_IP = 192.168.31.84:52141
7.3 备库 84
sh
# 实例配置文件:dm.ini
vi /dmdata/data/DMTEST/dm.ini
##实例名,建议使用"组名_守护环境_序号"的命名方式,总长度不能超过16
INSTANCE_NAME = GRP1_RT_03
MAL_INI = 1 #打开 MAL 系统
ARCH_INI = 1 #打开归档配置
ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间
# 归档配置文件:dmarch.ini
vi /dmdata/data/DMTEST/dmarch.ini
[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME #归档类型
ARCH_DEST = GRP1_RT_01 #归档目标实例名(主库侧填写备库实例名)
[ARCHIVE_REALTIME2]
ARCH_TYPE = REALTIME #归档类型
ARCH_DEST = GRP1_RT_02 #归档目标实例名(主库侧填写备库实例名)
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /dmdata/arch #本地归档文件存放路径
ARCH_FILE_SIZE = 128 #单位 MB,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 0 #单位 MB,0 表示无限制,范围 1024~4294967294 MB
# MAL系统配置文件 dmmal.ini
vi /dmdata/data/DMTEST/dmmal.ini
MAL_CHECK_INTERVAL = 5 # MAL链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 # 判定 MAL链路断开的时间
[MAL_INST1]
MAL_INST_NAME = GRP1_RT_01 #与 dm.ini中的 INSTANCE_NAME一致
MAL_HOST = 192.168.31.82 #MAL系统监听 TCP 内部网络 IP
MAL_PORT = 61141 # MAL系统监听 TCP连接的端口
MAL_INST_HOST = 192.168.31.82 #实例的对外服务 IP地址
MAL_INST_PORT = 5237 #与 dm.ini中的 PORT_NUM一致
MAL_DW_PORT = 52141 #实例对应的守护进程监听 TCP 端口
MAL_INST_DW_PORT = 33141
[MAL_INST2]
MAL_INST_NAME = GRP1_RT_02 #与 dm.ini中的 INSTANCE_NAME 一致
MAL_HOST = 192.168.31.83 # MAL系统监听 TCP内部网络 IP
MAL_PORT = 61141 # MAL系统监听 TCP连接的端口
MAL_INST_HOST = 192.168.31.83 #实例的对外服务 IP地址
MAL_INST_PORT = 5237 #与 dm.ini中的 PORT_NUM一致
MAL_DW_PORT = 52141 #实例对应的守护进程监听 TCP端口
MAL_INST_DW_PORT = 33141
[MAL_INST3]
MAL_INST_NAME = GRP1_RT_03 #与 dm.ini中的 INSTANCE_NAME 一致
MAL_HOST = 192.168.31.84 # MAL系统监听 TCP内部网络 IP
MAL_PORT = 61141 # MAL系统监听 TCP连接的端口
MAL_INST_HOST = 192.168.31.84 #实例的对外服务 IP地址
MAL_INST_PORT = 5237 #与 dm.ini中的 PORT_NUM一致
MAL_DW_PORT = 52141 #实例对应的守护进程监听 TCP端口
MAL_INST_DW_PORT = 33141
# 守护进程配置文件 dmwatcher.ini
vi /dmdata/data/DMTEST/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 值
INST_INI = /dmdata/data/DMTEST/dm.ini # dm.ini 配置文件路径
INST_AUTO_RESTART = 1 #打开实例的自动启动功能
INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver #命令行方式启动
switchover GRP1.DBSERVER_01
8. 启动主备服务
注意
一定要以Mount方式启动数据库实例,否则系统启动时会重构回滚表空间,生成Redo日志;并且,启动后应用可能连接到数据库实例进行操作,破坏主备库的数据一致性。数据守护配置结束后,守护进程会自动Open数据库。
8.1 主备库
sh
cd /home/dmdba/dmdbms/bin
./dmserver /dmdata/data/DMTEST/dm.ini mount
[dmdba@192.168.31.82 bin]$ ./dmserver /dmdata/data/DMTEST/dm.ini mount
file dm.key not found, use default license!
version info: develop
csek2_vm_t = 1416
nsql_vm_t = 328
prjt2_vm_t = 176
ltid_vm_t = 216
nins2_vm_t = 1048
nset2_vm_t = 272
ndlck_vm_t = 192
ndel2_vm_t = 776
slct2_vm_t = 208
nli2_vm_t = 192
aagr2_vm_t = 280
pscn_vm_t = 288
dist_vm_t = 896
DM Database Server 64 V8 03134284194-20240703-234060-20108 startup...
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
Database mode = 0, oguid = 0
License will expire on 2025-07-03
file lsn: 43408
ndct db load finished, code:0
ndct second level fill fast pool finished
ndct third level fill fast pool finished
ndct second level fill fast pool finished
ndct third level fill fast pool finished
ndct fill fast pool finished
nsvr_startup end.
uthr_pipe_create, create pipe[read:17, write:18]
uthr_pipe_create, create pipe[read:19, write:20]
uthr_pipe_create, create pipe[read:22, write:23]
uthr_pipe_create, create pipe[read:21, write:24]
uthr_pipe_create, create pipe[read:25, write:26]
uthr_pipe_create, create pipe[read:27, write:28]
uthr_pipe_create, create pipe[read:30, write:31]
uthr_pipe_create, create pipe[read:29, write:32]
uthr_pipe_create, create pipe[read:33, write:34]
uthr_pipe_create, create pipe[read:35, write:36]
uthr_pipe_create, create pipe[read:37, write:38]
uthr_pipe_create, create pipe[read:39, write:40]
uthr_pipe_create, create pipe[read:41, write:42]
uthr_pipe_create, create pipe[read:43, write:44]
uthr_pipe_create, create pipe[read:45, write:46]
uthr_pipe_create, create pipe[read:47, write:48]
aud sys init success.
aud rt sys init success.
systables desc init success.
ndct_db_load_info finished, code:0.
SYSTEM IS READY.
8.2 设置 OGUID 和 数据库模式
8.2.1 主库
sh
# 启动命令行工具 DIsql,登录主库设置 OGUID 值。
# 重新打开一个终端
cd /home/dmdba/dmdbms/bin
# dm.ini文件中的port_num 端口号是多少,如果修改了默认端口号,请按照以下方式来登录:
# ./disql SYSDBA/SYSDBA@IP:port
# 默认 ./disql SYSDBA/SYSDBA
./disql SYSDBA/SYSDBA@192.168.31.82:5237
[dmdba@192.168.31.82 bin]# ./disql SYSDBA/SYSDBA@192.168.31.82:5237
服务器[192.168.31.82:5237]:处于普通配置状态
登录使用时间 : 2.611(ms)
disql V8
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);
服务器[192.168.31.82:5237]:处于普通配置状态
登录使用时间 : 2.611(ms)
disql V8
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
DMSQL 过程已成功完成
已用时间: 11.720(毫秒). 执行号:1.
SQL> sp_set_oguid(453331);
DMSQL 过程已成功完成
已用时间: 3.237(毫秒). 执行号:2.
SQL> alter database primary;
操作已执行
已用时间: 8.033(毫秒). 执行号:0.
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
DMSQL 过程已成功完成
已用时间: 10.209(毫秒). 执行号:3.
SQL>
8.2.2 从库
sh
# 启动命令行工具 DIsql,登录主库设置 OGUID 值。
# 重新打开一个终端
cd /home/dmdba/dmdbms/bin
# dm.ini文件中的port_num 端口号是多少,如果修改了默认端口号,请按照以下方式来登录:
# ./disql SYSDBA/SYSDBA@IP:port
# 默认 ./disql SYSDBA/SYSDBA
./disql SYSDBA/SYSDBA@192.168.31.83:5237
[dmdba@192.168.31.83 bin]# ./disql SYSDBA/SYSDBA@192.168.31.83:5237
服务器[192.168.31.82:5237]:处于普通配置状态
登录使用时间 : 2.611(ms)
disql V8
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);
服务器[192.168.31.83:5237]:处于普通配置状态
登录使用时间 : 2.753(ms)
disql V8
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
DMSQL 过程已成功完成
已用时间: 9.990(毫秒). 执行号:1.
SQL> sp_set_oguid(453331);
DMSQL 过程已成功完成
已用时间: 2.860(毫秒). 执行号:2.
SQL> alter database standby;
操作已执行
已用时间: 2.891(毫秒). 执行号:0.
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
DMSQL 过程已成功完成
已用时间: 9.830(毫秒). 执行号:3.
SQL>
9. 启动守护进程
启动各个主备库上的守护进程 另起一个终端切换成dmdba用户
sh
# 主备服务器都需要启动
cd /home/dmdba/dmdbms/bin
./dmwatcher /dmdata/data/DMTEST/dmwatcher.ini
[dmdba@192.168.31.82 bin]$ ./dmwatcher /dmdata/data/DMTEST/dmwatcher.ini
DMWATCHER[4.0] V8
DMWATCHER[4.0] IS READY
10 启动监视器
10.1 从库
重新打开一个终端 切换到dmdba用户执行
sh
cd /home/dmdba/dmdbms/bin
./dmmonitor /dmdata/data/DMTEST/dmmonitor.ini
[dmdba@192.168.31.83 bin]$ ./dmmonitor /dmdata/data/DMTEST/dmmonitor.ini
[monitor] 2024-09-18 18:37:48: DMMONITOR[4.0] V8
[monitor] 2024-09-18 18:37:49: DMMONITOR[4.0] IS READY.
[monitor] 2024-09-18 18:37:49:
#-----------------------------------------------------------------------------------------------#
GET MONITOR CONNECT INFO FROM DMWATCHER(GRP1_RT_01), THE FIRST LINE IS SELF INFO.
DW_CONN_TIME MON_CONFIRM MID MON_IP MON_VERSION
2024-09-18 18:37:49 TRUE 1590844349 ::ffff:192.168.31.83 DMMONITOR[4.0] V8
#-----------------------------------------------------------------------------------------------#
[monitor] 2024-09-18 18:37:49: 收到守护进程(GRP1_RT_01)消息
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2024-09-18 18:37:49 OPEN OK GRP1_RT_01 OPEN PRIMARY VALID 2 43446 43446
[monitor] 2024-09-18 18:37:49: 收到守护进程(GRP1_RT_02)消息
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN
2024-09-18 18:37:49 OPEN OK GRP1_RT_02 OPEN STANDBY VALID 2 43446 43446
# 监视器显示以上数据说明主从搭建成功
11. 服务注册
11.1 注册
上述服务启动都是前台启动,关闭窗口服务就会退出,可以将启动命令注册为系统服务,便于操作。
使用 root 用户,到数据库安装目录的 script/root 下,执行。
sh
cd /home/dmdba/dmdbms/script/root/
# 注册守护进程服务 主从库都执行
./dm_service_installer.sh -t dmwatcher -p DM -watcher_ini /dmdata/data/DMTEST/dmwatcher.ini
# 注册数据库实例服务 主从库都执行
./dm_service_installer.sh -t dmserver -p DM -dm_ini /dmdata/data/DMTEST/dm.ini
# 注册监视器服务 (只需在监视器服务器上执行)
./dm_service_installer.sh -t dmmonitor -p DM -monitor_ini /dmdata/data/DMTEST/dmmonitor.ini
11.2 服务启动
sh
# 启动数据库实例
systemctl start DmServiceDM
# 启动守护进程
systemctl start DmWatcherServiceDM
# 启动监视器 (只需在监视器服务器上执行)
systemctl start DmMonitorServiceDM
# 查看服务运行状态
systemctl status DmServiceDM
systemctl status DmWatcherServiceDM
systemctl status DmMonitorServiceDM
11.3 服务重启
重启顺序
主备集群重启有顺序要求:
启动:主备库实例 → 主备库守护进程 → 监视器
关闭:监视器 → 主备库守护进程 → 主备库实例
markdown
1.关闭监视器:systemctl stop DmMonitorServiceDM
2.关闭主库守护进程:systemctl stop DmWatcherServiceDM
3.关闭备库守护进程:systemctl stop DmWatcherServiceDM
4.关闭主库实例:systemctl stop DmServiceDM
5.关闭备库实例:systemctl stop DmServiceDM
6.启动主库实例:systemctl start DmServiceDM
7.启动备库实例:systemctl start DmServiceDM
8.启动主库守护进程:systemctl start DmWatcherServiceDM
9.启动备库守护进程:systemctl start DmWatcherServiceDM
10.启动监视器:systemctl start DmMonitorServiceDM
# 注意启动和关闭顺序!!