DM8达梦数据库数据守护(Data Watch)实时主备环境搭建与切换测试
1、环境准备:
本示例中组名为“GRP1”,配置为实时主备,主库命名为“DM1”,备库命名为“DM2”
主机类型 |
IP地址 |
实例名 |
操作系统 |
主库 |
10.10.15.85(外) 10.10.20.85(内) |
dmdb1 |
kylin |
备库 |
10.10.15.84(外) 10.10.20.84(内) |
Dmdb2 |
kylin |
监视器 |
10.10.15.83(外) 10.10.20.83(内) |
|
kylin |
2、端口规划
实例名 |
PORT_NUM |
MAL_INST_DW_PORT |
MAL_HOST |
MAL_PORT |
MAL_DW_PORT |
DM1 |
5235 |
5237 |
10.10.20.85 |
5238 |
5239 |
DM2 |
5235 |
5237 |
10.10.20.84 |
5238 |
5239 |
MAL系统是基于TCP协议实现的一种内部通信机制,DM通过MAL系统实现Redo日志传输,以及其他一些实例间的消息通讯。
守护进程(dmwatcher)是数据库实例和监视器之间信息流转的桥梁。数据库实例向本地守护进程发送信息,接收本地守护进程的消息和命令;
监视器(dmmonitor)接收守护进程的消息,并向守护进程发送命令;数据库实例与监视器之间没有直接的消息交互;
守护进程解析并执行监视器发起的各种命令(Switchover/Takeover/Open force等),并在必要时通知数据库实例执行相应的操作。
MAL_DW_PORT:守护进程监听端口,其他守护进程或监视器使用MAL_HOST + MAL_DW_PORT创建TCP连接。监视器配置文件dmmonitor.ini中,MON_DW_IP就是一组MAL_HOST: MAL_DW_PORT。
MAL_INST_DW_PORT:实例对守护进程的监听端口,守护进程使用MAL_HOST + MAL_INST_DW_PORT创建到实例的TCP连接。
3、安装数据库
安装系统包
root@tidb-03:/home# cat /etc/apt/sources.list
deb http://archive.kylinos.cn/kylin/KYLIN-ALL 4.0.2sp2-server-ft2000 main restricted universe multiverse
root@tidb-03:/home# apt install x11-xserver-utils
root@tidb-01:~# apt-get install java*
root@Kylin:~# java -version
openjdk version "1.8.0_191"
OpenJDK Runtime Environment (build 1.8.0_191-8u191-b12-0kord0.16.04.1-b12)
OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)
root@Kylin:~# groupadddinstall
root@Kylin:~# useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
root@Kylin:~# passwddmdba
输入新的UNIX密码:
重新输入新的UNIX密码:
passwd:已成功更新密码
groupadddinstall
useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
passwddmdba
mkdir -p /app/dm8/
chown -R dmdba.dinstall /app/dm8/
chmod -R 775 /app/dm8/
cat>> /etc/security/limits.conf<< EOF
dmdbasoftnproc2047
dmdbahardnproc16384
dmdbasoftnofile1024
dmdbahardnofile65536
EOF
cat>> /etc/pam.d/login << EOF
session required /lib64/security/pam_limits.so
EOF
kernel.shmall = 2097152
kernel.shmmax = 4294967296
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 359670
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 1048576
net.core.rmem_max = 1048576
net.core.wmem_default = 262144
net.core.wmem_max = 262144
vi .profile
export DM_HOME=/app/dm8/
export PATH=$DM_HOME/dmdbms/bin::$PATH:$HOME/bin:
export DM_SID=dmdb
上传介质
mount -o loop dm8_setup_FT_arm64_ent_8.1.0.147_20190328.iso /mnt/
cchown -R dmdba:dinstall /home/dm*
chmod -R 775 /home/dm*
chown -R dmdba:dinstall /app/*
chmod -R 775 /app/*
root@Kylin:/dm8# su - dmdba
dmdba@Kylin:~$ cd /mnt/
root@tidb-05:~# su - dmdba
dmdba@tidb-05:~$ export DISPLAY=10.10.11.46:0
dmdba@tidb-05:~$ xhost +
access control disabled, clients can connect from any host
xhost:must be on local machine to enable or disable access control.
dmdba@tidb-05:~$ cd /mnt/
dmdba@tidb-05:/mnt$ ls
DMInstall.binDM_Install_en.pdfDM_Install_zh.pdfrelease_en.txtrelease_zh.txt
root@tidb-05:~# /app/dm8/script/root/root_installer.sh
移动/app/dm8/bin/dm_svc.conf到/etc目录
修改服务器权限
创建DmAPService服务
Created symlink from /etc/systemd/system/multi-user.target.wants/DmAPService.service to /lib/systemd/system/DmAPService.service.
创建服务(DmAPService)完成
启动DmAPService服务
到此数据库软件安装完成。
dmdba@tidb-05:/app/dm8/bin$ ./dmi
dmimondminit
dmdba@tidb-05:/app/dm8/bin$ ./dminit PATH=/app/dm8/data/ DB_NAME=dmdb INSTANCE_NAME=dmdb1 PORT_NUM=5235
initdb V8.1.0.147-Build(2019.03.27-104581)ENT
db version: 0x7000a
filedm.key not found, use default license!
License will expire in 14 day(s) on 2020-07-21
log file path: /app/dm8/data/dmdb/dmdb01.log
log file path: /app/dm8/data/dmdb/dmdb02.log
write to dir [/app/dm8/data/dmdb].
createdm database success. 2020-07-07 15:59:29