DM8读写分离安装配置文档

DM-RWC-8读写分离安装配置文档
1 环境说明
操作系统:CentOS7
主机:写
IP地址:10.127.96.2
MAL_INST_HOST:77.77.13.26
备机:读
IP地址:10.127.96.3
MAL_INST_HOST:77.77.13.27
监视器:
IP地址:10.127.96.4
数据库软件:
dm8_20200907_x86_rh7_64_ent_8.1.1.126.iso
2 系统调整
以下调整为主、备库服务器
2.1 文件系统
挂载数据盘
pvcreate /dev/sdb
vgcreate ds /dev/sdb
lvcreate -L 19G -n data ds
mkfs -t xfs /dev/ds/data
echo “/dev/ds/data /data xfs defaults 0 0” >> /etc/fstab
mkdir /data
mount /data
mkdir /data/home
mkdir /data/soft
mkdir /data/database
mkdir /data/dmdbms
2.2 用户及组
groupadd -g 500 dmgrp
useradd -u 500 -g 500 -d /data/home/dmdba dmdba
echo “dmdba:dmdba” | chpasswd
chown -R dmdba:dmgrp /data/database
chown -R dmdba:dmgrp /data/dmdbms
chmod 777 /data/soft
2.3 IP地址
添加内部通信网卡,并配置同段的私有地址。
本测试中使用77.77.13.0网段。

3 DM数据库软件安装
3.1 系统环境检查
分别在服务器检查以下内容:
#获取系统位数(64位)
getconf LONG_BIT

#查询操作系统release信息(CentOS7)
#若不存在此命令,需安装redhat-lsb。yum -y install redhat-lsb
lsb_release -a

#查询系统信息
cat /etc/issue

#查询系统名称(内核需2.6以上)
uname -a

#操作系统限制

data seg size设置为1048576(即1GB)以上或unlimited(无限制)

file size设置为unlimited(无限制)

open files设置为65536以上或unlimited(无限制)

virtual memory设置为1048576(即1GB)以上或unlimited(无限制)

ulimit -a

#内存检查
#操作系统至少剩余1G内存
free -g

#磁盘空间检查
#安装目录至少剩余1G空间,建议安装目录为/data/dmdbms
#临时目录需至少剩余1G空间,临时目录为/tmp
df -h /data
df -h /tmp

说明
如果/tmp目录不能保证1GB的存储空间,用户可以扩展/tmp目录存储空间或者通过设置环境变量DM_INSTALL_TMPDIR指定安装程序的临时目录(dmdba用户)。具体命令如下所示:
mkdir -p /mount_point/dir_name
DM_INSTALL_TMPDIR=/mount_point/dir_name
export DM_INSTALL_TMPDIR

3.2 挂载光盘
上传ISO介质至/data/soft目录。
root用户执行命令挂载ISO镜像
mount -t iso9660 dm8_20200907_x86_rh7_64_ent_8.1.1.126.iso /mnt
3.3 软件安装(命令行模式)
切换至dmdba用户
su - dmdba
进入安装目录
cd /mnt
执行安装程序
su – dmdba
cd /mnt
export LANG=zh_CN.UTF-8
./DMInstall.bin -i
[dmdba@dbserver1 mnt]$ ./DMInstall.bin -i
请选择安装语言(C/c:中文 E/e:英文) [C/c]:c --------安装语言
解压安装程序…
欢迎使用达梦数据库安装程序

是否输入Key文件路径? (Y/y:是 N/n:否) [Y/y]:n ------测试环境暂无key文件

是否设置时区? (Y/y:是 N/n:否) [Y/y]:y ------设置时区
设置时区:
[ 1]: GTM-12=日界线西
[ 2]: GTM-11=萨摩亚群岛
[ 3]: GTM-10=夏威夷
[ 4]: GTM-09=阿拉斯加
[ 5]: GTM-08=太平洋时间(美国和加拿大)
[ 6]: GTM-07=亚利桑那
[ 7]: GTM-06=中部时间(美国和加拿大)
[ 8]: GTM-05=东部部时间(美国和加拿大)
[ 9]: GTM-04=大西洋时间(美国和加拿大)
[10]: GTM-03=巴西利亚
[11]: GTM-02=中大西洋
[12]: GTM-01=亚速尔群岛
[13]: GTM=格林威治标准时间
[14]: GTM+01=萨拉热窝
[15]: GTM+02=开罗
[16]: GTM+03=莫斯科
[17]: GTM+04=阿布扎比
[18]: GTM+05=*堡
[19]: GTM+06=达卡
[20]: GTM+07=曼谷,河内
[21]: GTM+08=中国标准时间
[22]: GTM+09=汉城
[23]: GTM+10=关岛
[24]: GTM+11=所罗门群岛
[25]: GTM+12=斐济
[26]: GTM+13=努库阿勒法
[27]: GTM+14=基里巴斯
请选择设置时区 [21]:21 ---------选择东8区

安装类型:
1 典型安装
2 服务器
3 客户端
4 自定义
请选择安装类型的数字序号 [1 典型安装]:4 --------自定义安装
1 服务器组件
2 客户端组件
2.1 DM管理工具
2.2 DM性能监视工具
2.3 DM数据迁移工具
2.4 DM控制台工具
2.5 DM审计分析工具
2.6 SQL交互式查询工具
3 驱动
4 用户手册
5 数据库服务
5.1 实时审计服务
5.2 作业服务
5.3 实例监控服务
5.4 辅助插件服务
请选择安装组件的序号 (使用空格间隔) [1 2 3 4 5]:1 2.6 -------安装服务器组件和SQL交互式查询工具
所需空间: 893M

请选择安装目录 [/data/home/dmdba/dmdbms]:/data/dmdbms -------指定安装目录
可用空间: 1856G
是否确认安装路径(/data/dmdbms)? (Y/y:是 N/n:否) [Y/y]:y -------确认安装目录

安装前小结
安装位置: /data/dmdbms
所需空间: 893M
可用空间: 1856G
版本信息:
有效日期:
安装类型: 自定义
是否确认安装? (Y/y:是 N/n:否):y ---------确认安装
2019-08-29 09:45:04
[INFO] 安装 default 模块…
2019-08-29 09:45:04
[INFO] 安装达梦数据库…
2019-08-29 09:45:07
[INFO] 安装 server 模块…
2019-08-29 09:45:07
[INFO] 安装 client 模块…
2019-08-29 09:45:10
[INFO] 移动ant日志文件。
2019-08-29 09:45:10
[INFO] 安装达梦数据库完成。

请以root系统用户执行命令:
/data/dmdbms/script/root/root_installer.sh -------执行脚本,需root用户

安装结束

[dmdba@dmrwc01 mnt]$
请以root系统用户执行命令:
/data/dmdbms/script/root/root_installer.sh
创建实例
4.1 主库
4.1.1 初始化数据库
添加环境变量
vi .bash_profile
PATH=$PATH:/data/dmdbms/bin:.

使用脚本创建实例
export LANG=zh_CN.UTF-8
hxgrp_rundb.sh
#!/bin/sh

#初始数据库存放的路径
DBPATH=/data/database/hxgrp_rundb/dbdir
#控制文件路径
CTL_PATH=/data/database/hxgrp_rundb/dbdir/RUNDB/dm.ctl
#日志文件路径
LOG_PATH1=/data/database/hxgrp_rundb/dblog/hxgrp_rundb-01.log
LOG_PATH2=/data/database/hxgrp_rundb/dblog/hxgrp_rundb-02.log
#数据页大小(8),可选值:4、8、16、32,单位:K
PAGE_SIZE=8
#日志文件大小(256),单位为:M,范围为:64M ~ 2G
LOG_SIZE=256
#大小敏感(Y),可选值:Y/N,1/0
CASE_SENSITIVE=0
#字符集(0),可选值:0[GB18030],1[UTF-8],2[EUC-KR]
CHARSET=1
#VARCHAR类型长度是否以字符为单位(N),可选值:Y/N,1/0
LENGTH_IN_CHAR=1
#设置SYSDBA密码(SYSDBA),密码长度为9到48
SYSDBA_PWD=dmdba2020
#设置SYSAUDITOR密码(SYSAUDITOR),密码长度为9到48
SYSAUDITOR_PWD=dmdba2020
#数据库名(DAMENG)
DB_NAME=RUNDB
#实例名(DMSERVER)
INSTANCE_NAME=HXGRP_RUNDB_01
#监听端口号(5236)
PORT_NUM=15236
#设置时区(+08:00)
TIME_ZONE=+08:00
#是否覆盖所有同名文件(0) 0:不覆盖1:部分覆盖2:完全覆盖
AUTO_OVERWRITE=2
#指定初始化过程中生成的日志文件所在路径
ELOG_PATH=/tmp

main(){
. ~/.bash_profile
dminit PATH= D B P A T H C T L P A T H = {DBPATH} CTL_PATH= DBPATHCTLP​ATH={CTL_PATH} LOG_PATH= L O G P A T H 1 L O G P A T H = {LOG_PATH1} LOG_PATH= LOGP​ATH1LOGP​ATH={LOG_PATH2} PAGE_SIZE= P A G E S I Z E L O G S I Z E = {PAGE_SIZE} LOG_SIZE= PAGES​IZELOGS​IZE={LOG_SIZE} CASE_SENSITIVE= C A S E S E N S I T I V E C H A R S E T = {CASE_SENSITIVE} CHARSET= CASES​ENSITIVECHARSET={CHARSET} LENGTH_IN_CHAR= L E N G T H I N C H A R S Y S D B A P W D = {LENGTH_IN_CHAR} SYSDBA_PWD= LENGTHI​NC​HARSYSDBAP​WD={SYSDBA_PWD} SYSAUDITOR_PWD= S Y S A U D I T O R P W D D B N A M E = {SYSAUDITOR_PWD} DB_NAME= SYSAUDITORP​WDDBN​AME={DB_NAME} INSTANCE_NAME= I N S T A N C E N A M E P O R T N U M = {INSTANCE_NAME} PORT_NUM= INSTANCEN​AMEPORTN​UM={PORT_NUM} TIME_ZONE= T I M E Z O N E A U T O O V E R W R I T E = {TIME_ZONE} AUTO_OVERWRITE= TIMEZ​ONEAUTOO​VERWRITE={AUTO_OVERWRITE} ELOG_PATH=${ELOG_PATH}
}

main
4.1.2 配置dm.ini
此文件为数据库实例配置文件
文件目录为:/data/database/hxgrp_rundb/dbdir/RUNDB/dm.ini
INSTANCE_NAME = HXGRP_RUNDB_01
PORT_NUM = 15236 #数据库实例监听端口DM 数据守护与读写分离集群 V4.0
DW_INACTIVE_INTERVAL = 60 #接收守护进程消息超时时间
ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间
MAL_INI = 1 #打开 MAL 系统
ARCH_INI = 1 #打开归档配置
RLOG_SEND_APPLY_MON = 64 #统计最近 64 次的日志发送信息
4.1.3 配置dmmal.ini
查看dm.ini文件的CONFIG_PATH参数,需在指定目录创建此文件。

vi dmmal.ini
MAL_CHECK_INTERVAL = 5 #MAL 链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 #判定 MAL 链路断开的时间
[MAL_INST1]
MAL_INST_NAME = HXGRP_RUNDB_01 #实例名,和 dm.ini 中的 INSTANCE_NAME 一致
MAL_HOST = 77.77.13.26 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 35236 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 10.127.96.2 #实例的对外服务 IP 地址
MAL_INST_PORT = 15236 #实例的对外服务端口,和 dm.ini 中的 PORT_NUM 一致
MAL_DW_PORT = 45236 #实例对应的守护进程监听 TCP 连接的端口
MAL_INST_DW_PORT = 55236 #实例监听守护进程 TCP 连接的端口
[MAL_INST2]
MAL_INST_NAME = HXGRP_RUNDB_02
MAL_HOST = 77.77.13.26
MAL_PORT = 35236
MAL_INST_HOST = 10.127.96.3
MAL_INST_PORT = 15236
MAL_DW_PORT = 45236
MAL_INST_DW_PORT = 55236
4.1.4 配置dmarch.ini
查看dm.ini文件的CONFIG_PATH参数,需在指定目录创建此文件。
mkdir /data/database/hxgrp_rundb/archlog
vi dmarch.ini
[ARCHIVE_TIMELY1]
ARCH_TYPE = TIMELY #即时归档类型
ARCH_DEST = HXGRP_RUNDB_02 #即时归档目标实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /data/database/hxgrp_rundb/archlog #本地归档文件存放路径
ARCH_FILE_SIZE = 128 #单位Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 0 #单位Mb,0表示无限制,范围1024~4294967294M
4.1.5 配置dmwatcher.ini
存放位置没有限制,一般与dm.ini放置于相同目录。
vi dmwatcher.ini
[HXGRP]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = AUTO #自动切换模式
DW_ERROR_TIME = 10 #远程守护进程故障认定时间
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
INST_ERROR_TIME = 10 #本地实例故障认定时间
INST_OGUID = 291326 #守护系统唯一OGUID值
INST_INI = /data/database/hxgrp_rundb/dbdir/RUNDB/dm.ini #dm.ini配置文件路径
INST_AUTO_RESTART = 1 #打开实例的自动启动功能
INST_STARTUP_CMD = /data/dmdbms/bin/dmserver #命令行方式启动
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阀值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阀值,默认关闭

4.1.6 启动主库
初始化数据库
/data/dmdbms/bin/dmserver /data/database/hxgrp_rundb/dbdir/RUNDB/dm.ini

以mount方式启动数据库,进行初始化配置
/data/dmdbms/bin/dmserver /data/database/hxgrp_rundb/dbdir/RUNDB/dm.ini mount
4.1.7 设置OGUID
切换至dmdba用户。
启动命令行工具DIsql,登录主库设置OGUID值。
disql sysdba/dmdba2020@10.127.96.2:15236

配置OGUID
SQL>SP_SET_PARA_VALUE(1, ‘ALTER_MODE_STATUS’, 1);
SQL>sp_set_oguid(291326);
SQL>SP_SET_PARA_VALUE(1, ‘ALTER_MODE_STATUS’, 0);

4.1.8 修改数据库模式
启动命令行工具DIsql,登录主库修改数据库为Primary模式
SQL>alter database primary;

4.1.9 创建系统服务
创建系统服务(root)
/data/dmdbms/script/root/dm_service_installer.sh -t dmserver -dm_ini /data/database/hxgrp_rundb/dbdir/RUNDB/dm.ini -p DMSERVER -m mount

启动数据库(root)
systemctl start DmServiceDMSERVER

4.2 备库
4.2.1 初始化数据库
#!/bin/sh

#初始数据库存放的路径
DBPATH=/data/database/hxgrp_rundb/dbdir
#控制文件路径
CTL_PATH=/data/database/hxgrp_rundb/dbdir/RUNDB/dm.ctl
#日志文件路径
LOG_PATH1=/data/database/hxgrp_rundb/dblog/hxgrp_rundb-01.log
LOG_PATH2=/data/database/hxgrp_rundb/dblog/hxgrp_rundb-02.log
#数据页大小(8),可选值:4、8、16、32,单位:K
PAGE_SIZE=8
#日志文件大小(256),单位为:M,范围为:64M ~ 2G
LOG_SIZE=256
#大小敏感(Y),可选值:Y/N,1/0
CASE_SENSITIVE=0
#字符集(0),可选值:0[GB18030],1[UTF-8],2[EUC-KR]
CHARSET=1
#VARCHAR类型长度是否以字符为单位(N),可选值:Y/N,1/0
LENGTH_IN_CHAR=1
#设置SYSDBA密码(SYSDBA),密码长度为9到48
SYSDBA_PWD=dmdba2020
#设置SYSAUDITOR密码(SYSAUDITOR),密码长度为9到48
SYSAUDITOR_PWD=dmdba2020
#数据库名(DAMENG)
DB_NAME=RUNDB
#实例名(DMSERVER)
INSTANCE_NAME=HXGRP_RUNDB_02
#监听端口号(5236)
PORT_NUM=15236
#设置时区(+08:00)
TIME_ZONE=+08:00
#是否覆盖所有同名文件(0) 0:不覆盖1:部分覆盖2:完全覆盖
AUTO_OVERWRITE=2
#指定初始化过程中生成的日志文件所在路径
ELOG_PATH=/tmp

main(){
. ~/.bash_profile
dminit PATH= D B P A T H C T L P A T H = {DBPATH} CTL_PATH= DBPATHCTLP​ATH={CTL_PATH} LOG_PATH= L O G P A T H 1 L O G P A T H = {LOG_PATH1} LOG_PATH= LOGP​ATH1LOGP​ATH={LOG_PATH2} PAGE_SIZE= P A G E S I Z E L O G S I Z E = {PAGE_SIZE} LOG_SIZE= PAGES​IZELOGS​IZE={LOG_SIZE} CASE_SENSITIVE= C A S E S E N S I T I V E C H A R S E T = {CASE_SENSITIVE} CHARSET= CASES​ENSITIVECHARSET={CHARSET} LENGTH_IN_CHAR= L E N G T H I N C H A R S Y S D B A P W D = {LENGTH_IN_CHAR} SYSDBA_PWD= LENGTHI​NC​HARSYSDBAP​WD={SYSDBA_PWD} SYSAUDITOR_PWD= S Y S A U D I T O R P W D D B N A M E = {SYSAUDITOR_PWD} DB_NAME= SYSAUDITORP​WDDBN​AME={DB_NAME} INSTANCE_NAME= I N S T A N C E N A M E P O R T N U M = {INSTANCE_NAME} PORT_NUM= INSTANCEN​AMEPORTN​UM={PORT_NUM} TIME_ZONE= T I M E Z O N E A U T O O V E R W R I T E = {TIME_ZONE} AUTO_OVERWRITE= TIMEZ​ONEAUTOO​VERWRITE={AUTO_OVERWRITE} ELOG_PATH=${ELOG_PATH}
}

main

4.2.2 配置dm.ini
修改INSTANCE_NAME为HXGRP_RUNDB_02
文件目录为:/data/database/hxgrp_rundb/dbdir/RUNDB/dm.ini
INSTANCE_NAME = HXGRP_RUNDB_02
PORT_NUM = 15236 #数据库实例监听端口DM 数据守护与读写分离集群 V4.0
DW_INACTIVE_INTERVAL = 60 #接收守护进程消息超时时间
ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间
MAL_INI = 1 #打开 MAL 系统
ARCH_INI = 1 #打开归档配置
RLOG_SEND_APPLY_MON = 64 #统计最近 64 次的日志发送信息

4.2.3 配置dmmal.ini
vi dmmal.ini
MAL_CHECK_INTERVAL = 5 #MAL 链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 #判定 MAL 链路断开的时间
[MAL_INST1]
MAL_INST_NAME = HXGRP_RUNDB_01 #实例名,和 dm.ini 中的 INSTANCE_NAME 一致
MAL_HOST = 77.77.13.26 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 35236 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 10.127.96.2 #实例的对外服务 IP 地址
MAL_INST_PORT = 15236 #实例的对外服务端口,和 dm.ini 中的 PORT_NUM 一致
MAL_DW_PORT = 45236 #实例对应的守护进程监听 TCP 连接的端口
MAL_INST_DW_PORT = 55236 #实例监听守护进程 TCP 连接的端口
[MAL_INST2]
MAL_INST_NAME = HXGRP_RUNDB_02
MAL_HOST = 77.77.13.26
MAL_PORT = 35236
MAL_INST_HOST = 10.127.96.3
MAL_INST_PORT = 15236
MAL_DW_PORT = 45236
MAL_INST_DW_PORT = 55236

4.2.4 配置dmarch.ini
修改目标实例名
mkdir /data/database/hxgrp_rundb/archlog
vi dmarch.ini
[ARCHIVE_TIMELY1]
ARCH_TYPE = TIMELY #即时归档类型
ARCH_DEST = HXGRP_RUNDB_01 #即时归档目标实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /data/database/hxgrp_rundb/archlog #本地归档文件存放路径
ARCH_FILE_SIZE = 128 #单位Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 0 #单位Mb,0表示无限制,范围1024~4294967294M

4.2.5 配置dmwatcher.ini
存放位置没有限制,一般与dm.ini放置于相同目录。
vi dmwatcher.ini
[HXGRP]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = AUTO #自动切换模式
DW_ERROR_TIME = 10 #远程守护进程故障认定时间
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
INST_ERROR_TIME = 10 #本地实例故障认定时间
INST_OGUID = 291326 #守护系统唯一OGUID值
INST_INI = /data/database/hxgrp_rundb/dbdir/RUNDB/dm.ini #dm.ini配置文件路径
INST_AUTO_RESTART = 1 #打开实例的自动启动功能
INST_STARTUP_CMD = /data/dmdbms/bin/dmserver #命令行方式启动
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阀值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阀值,默认关闭
4.2.6 脱机备份、脱机还原方式

  1. 正常关闭数据库
  2. 进行脱机备份
    /data/dmdbms/bin
    ./dmrman CTLSTMT=“BACKUP DATABASE ‘/data/database/hxgrp_rundb/dbdir/RUNDB/dm.ini’ FULL TO BACKUP_FILE1 BACKUPSET ‘/data/database/BACKUP_FILE_01’”
  3. 拷贝备份文件到备库所在机器
  4. 执行脱机数据库还原与恢复
    ./dmrman CTLSTMT=“RESTORE DATABASE ‘/data/database/hxgrp_rundb/dbdir/RUNDB/dm.ini’ FROM BACKUPSET ‘/data/database/BACKUP_FILE_01’”
    ./dmrman CTLSTMT=“RECOVER DATABASE ‘/data/database/hxgrp_rundb/dbdir/RUNDB/dm.ini’ FROM BACKUPSET ‘/data/database/BACKUP_FILE_01’”
    ./dmrman CTLSTMT=“RECOVER DATABASE ‘/data/database/hxgrp_rundb/dbdir/RUNDB/dm.ini’ UPDATE DB_MAGIC”
    4.2.7 联机备份、脱机还原方式
  5. 对主库进行联机备份操作
    SQL> BACKUP DATABASE BACKUPSET ‘/dm/data/BACKUP_FILE_01’;
  6. 拷贝备份文件到备库所在机器
  7. 执行脱机数据库还原与恢复
    ./dmrman CTLSTMT=“RESTORE DATABASE ‘/dm/data/DAMENG/dm.ini’ FROM BACKUPSET
    ‘/dm/data/BACKUP_FILE_01’”
    ./dmrman CTLSTMT=“RECOVER DATABASE ‘/dm/data/DAMENG/dm.ini’ FROM BACKUPSET
    ‘/dm/data/BACKUP_FILE_01’”
    ./dmrman CTLSTMT=“RECOVER DATABASE ‘/dm/data/DAMENG/dm.ini’ UPDATE DB_MAGIC”
    4.2.8 启动备库
    以mount方式启动备库
    /data/dmdbms/bin/dmserver /data/database/hxgrp_rundb/dbdir/RUNDB/dm.ini mount

4.2.9 设置OGUID
切换至dmdba用户
启动命令行工具DIsql,登录主库设置OGUID值。
disql sysdba/dmdba2020@10.127.96.3:15236

配置OGUID
SQL>SP_SET_PARA_VALUE(1, ‘ALTER_MODE_STATUS’, 1);
SQL>sp_set_oguid(291326);
SQL>SP_SET_PARA_VALUE(1, ‘ALTER_MODE_STATUS’, 0);
4.2.10 修改数据库模式
启动命令行工具DIsql,登录主库修改数据库为Standby模式
SQL>SP_SET_PARA_VALUE(1, ‘ALTER_MODE_STATUS’, 1);
SQL>alter database Standby;
SQL>SP_SET_PARA_VALUE(1, ‘ALTER_MODE_STATUS’, 0);

4.2.11 创建系统服务
创建系统服务(root)
/data/dmdbms/script/root/dm_service_installer.sh -t dmserver -dm_ini /data/database/hxgrp_rundb/dbdir/RUNDB/dm.ini -p DMSERVER -m mount

启动数据库(root)
systemctl start DmServiceDMSERVER

5 配置监视器
5.1 用户及组
mkdir -p /data/home
mkdir -p /data/dmdbms
mkdir -p /data/soft
chmod 777 /data/soft
groupadd -g 500 dmgrp
useradd -u 500 -g 500 -d /data/home/dmdba dmdba
echo “dmdba:dmdba” | chpasswd
chown -R dmdba:dmgrp /data/dmdbms
5.2 软件安装
上传ISO介质至/data/soft目录。
root用户执行命令挂载ISO镜像
mount -t iso9660 /data/soft/dm7_setup_rh7_64_ent_7.6.0.142_20190312.iso /mnt
切换至dmdba用户
su - dmdba
进入安装目录
cd /mnt
执行安装程序
export LANG=zh_CN.UTF-8
./DMInstall.bin -i
仅安装服务器组件即可。
5.3 配置dmmonitor.ini
cd /data/dmdbms
mkdir /data/database/monitorlog
vi dmmonitor.ini
MON_DW_Confirm = 1 #确认监视器模式
MON_LOG_PATH = /data/database/monitorlog #监视器日志文件存放路径
MON_LOG_INTERVAL = 60 #每隔60s定时记录系统信息到日志文件
MON_LOG_FILE_SIZE = 32 #每个日志文件最大32M
MON_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间
[HXGRP]
MON_INST_OGUID = 291326 #组HXGRP的唯一OGUID值
#以下配置为监视器到组HXGRP的守护进程的连接信息,以“IP:PORT”的形式配置
#IP对应dmmal.ini中的MAL_HOST,PORT对应dmmal.ini中的MAL_DW_PORT
MON_DW_IP = 77.77.13.26:45236
MON_DW_IP = 77.77.13.27:45236
6 启动守护进程
启动各个主备库上的守护进程:
创建系统服务(root)
/data/dmdbms/script/root/dm_service_installer.sh -t dmwatcher -watcher_ini /data/database/hxgrp_rundb/dbdir/RUNDB/dmwatcher.ini -p DMWATCHER

启动服务(root)
systemctl start DmWatcherServiceDMWATCHER
守护进程启动后,进入Startup状态,此时实例都处于Mount状态。守护进程开始广播自身和其监控实例的状态信息,结合自身信息和远程守护进程的广播信息,守护进程将本地实例Open,并切换为Open状态。
7 启动监视器
创建系统服务(root)
/data/dmdbms/script/root/dm_service_installer.sh -t dmmonitor -monitor_ini /data/dmdbms/dmmonitor.ini -p DMMONITOR

启动服务(root)
systemctl start DmMonitorServiceDMMONITOR
监视器提供一系列命令,支持当前守护系统状态查看以及故障处理,可输入help命令,查看各种命令说明使用,结合实际情况选择使用。
至此读写分离集群搭建完毕,在搭建步骤和各项配置都正确的情况下,在监视器上执行show命令,可以监控到所有实例都处于Open状态,所有守护进程也都处于Open状态,即为正常运行状态。
8 DEM配置
8.1 功能描述
监控数据库、主机运行状态,主备关系等管理功能。
8.2 环境准备
中间件:tomcat
数据库:dm
操作系统:可与确认监视器部署在同一台服务器,或单独准备服务器
9 常用操作
9.1 创建表空间
使用disql工具连接主库
create tablespace “DMS_DATA” datafile ‘/data/database/hxgrp_rundb/tablespaces/dms_data01’ size 128 autoextend off, ‘/data/database/hxgrp_rundb/tablespaces/dms_data02’ size 128 autoextend off CACHE = NORMAL;
9.2 创建用户
create user “BSPRUN” identified by “bsprun@123” limit failed_login_attemps 3, password_lock_time 1, password_grace_time 10;
grant “RESOURCE” to “BSPRUN”;
9.3 建表
CREATE TABLE “BSPRUN”.“TEST01”
(
“ID” CHAR(10),
“NAME” CHAR(10)) STORAGE(ON “DMS_DATA”, CLUSTERBTR) ;

10 测试用例
10.1 故障转移测试
10.1.1 切换测试
关闭主机,备机接管写功能。但是写入数据后,会造成脑裂的情况。需将备机数据恢复至主机,才能加入集群。主机做数据恢复之前,不可启动主机数据库。否则整套集群不好使。
若备机无数据变化。启动主机后,可正常加入集群,此时,备机角色不变,主机以standby角色加入。
10.1.2 进行中会话
测试进行中的会话,是否会受到数据库切换的影响。

结论:受影响。
10.1.3 数据源连接池
测试数据库切换,是否会影响数据源连接,是否需要重启中间件。
10.1.4 切换时间
不停连接数据库并执行一条插入,一条查询,切换数据库后,看多长时间可以重新连接数据库,进行写操作和读操作。
约2分钟

上一篇:iostat


下一篇:Python 路径库pathlib常用函数