程序笔记   发布时间:2022-07-19  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了DM8_读写分离集群部署大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
一、读写分离的作用和意义
一般情况下,应用系统中查询等只读操作的比例远大于 Insert/delete/update 等
DML 操作,修改对象定义等 DDL 操作的比例则更低。但是,这些操作往往混杂在一起,在高并发、高压力情况下,会导致数据库性能下降,响应时间变长。借助读写分离集群,将只读操作自动分发到备库执行,可以充分利用备库的硬件资源,降低主库的并发访问压力,进而提升数据库的吞吐量。
二、读写分离的思路
实现读写分离集群的基本思路是:利用备库提供只读服务、无法修改数据的特性,优先将所有操作发送到备库执行,一旦备库执行报错,则发送到主库重新执行。通过备库“试错”这么一个步骤,自然地将只读操作分流到备库执行。
三、读写分离部署
1、部署环境
系统:centos7
CPU架构:x86_64
虚拟机软件:virtualbox
虚拟机:192.168.43.31(主库)
192.168.43.44(备库)
192.168.43.86(监视器)
2、安装数据库
单库安装,不明白的可以看我写过的一个安装过程
https://www.cnblogs.com/qiongjie/p/14855429.html
3、初始化实例
数据库的安装目录:/dm8
实例目录:/dm8/dmrw
初始化实例:(主备库各执行一次)
./dminit path=/dm8 db_name=dmrw page_size=32
使用dminit初始化的实例,需要先前台起一次数据库服务,服务正常退出即可
./dmserver /dm8/dmrw/dm.ini
4、主库进行脱机备份,备库还原与恢复
主库备份:
./dmRMAN ctlstmt="BACkup database '/dm8/dmrw/dm.ini' BACkupset '/dm8/bakfull'
"
主库备份发送到备库
scp -r /dm8/bakfull/ 192.168.43.44:/dm8
备库进行主库备份的还原和恢复以及db_magic更新
./dmRMAN ctlstmt="restore database '/dm8/dmrw/dm.ini' from BACkupset '/dm8/bakfull/'"
./dmRMAN ctlstmt="recover database '/dm8/dmrw/dm.ini' from BACkupset '/dm8/bakfull/'"
./dmRMAN ctlstmt="recover database '/dm8/dmrw/dm.ini' update db_magic"
5、配置主库
1)修改实例的dm.ini文件参数
INSTANCE_NAME = dmrw1
@H_712_0@mAL_INI = 1
ARCH_INI = 1
ALTER_MODE_STATUS = 0
ENABLE_OFFLINE_TS = 2
2)创建并配置归档文件dmarch.ini(实例所在目录)
[ARCHIVE_TIMELYE]
ARCH_TYPE = TIMELY #即时归档类型
ARCH_DEST = dmrw2 #即时归档目标实例名(主库侧填写备库实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /dm8/arch #本地归档文件存放路径
ARCH_FILE_SIZE = 128 #单位 MB,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 10240 #单位 MB,0 表示无限制,范围 1024~4294967294 MB
3)配置MAL系统配置文件dmmal.ini
@H_712_0@mAL_checK_INTERVAL = 5 #MAL 链路检测时间间隔
@H_712_0@mAL_CONN_FAIL_INTERVAL = 5 #判定 MAL 链路断开的时间
[MAL_INST1]
@H_712_0@mAL_INSt_name = dmrw1 #与 dm.ini 中的 INSTANCE_NAME 一致
@H_712_0@mAL_HOST = 192.168.43.31 #MAL 系统监听 TCP 内部网络 IP
@H_712_0@mAL_PORT = 61141 #MAL 系统监听 TCP 连接的端口 @H_712_0@mAL_INST_HOST = 192.168.43.31 #实例的对外服务 IP 地址 @H_712_0@mAL_INST_PORT = 5236 #与 dm.ini 中的 PORT_NUM 一致 @H_712_0@mAL_DW_PORT = 52141 #实例对应的守护进程监听 TCP 端口 @H_712_0@mAL_INST_DW_PORT = 33141
[MAL_INST2]
@H_712_0@mAL_INSt_name = dmrw2 #与 dm.ini 中的 INSTANCE_NAME 一致 @H_712_0@mAL_HOST = 192.168.43.44 # MAL 系统监听 TCP 内部网络 IP @H_712_0@mAL_PORT = 61141 #MAL 系统监听 TCP 连接的端口 @H_712_0@mAL_INST_HOST = 192.168.43.44 #实例的对外服务 IP 地址 @H_712_0@mAL_INST_PORT = 5236 #与 dm.ini 中的 PORT_NUM 一致 @H_712_0@mAL_DW_PORT = 52141 #实例对应的守护进程监听 TCP 端口 @H_712_0@mAL_INST_DW_PORT = 33141
4)配置守护进程文件dmwatcher.ini
[GRP_RW]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = AUTO #自动切换模式
DW_ERROR_TIME = 10 #远程守护进程故障认定时间
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
INST_ERROR_TIME = 10 #本地实例故障认定时间
INST_OGUID = 453331 #守护系统唯一 OGUID 值
INST_INI = /dm8/dm.ini #dm.ini 配置文件路径
INST_AUTO_RESTART = 1 #打开实例的自动启动功能
INST_STARTUP_CMD = /dm8/bin/dmserver #命令行方式启动
 
#要求dmmal.ini和dmwatcher.ini文件主备库一致,所以直接发送到备库即可
scp dmmal.ini dmwatcher.ini 192.168.43.44:/dm8/dmrw
5)以mount方式启动数据库
./dmserver /dm8/dm.ini mount
新终端使用disql工具连接数据库
./disql SYSDBA/SYSDBA
修改主库的oguid:sp_set_oguid(453331);
修改主库模式为pri@R_673_11035@:alter database pri@R_673_11035@;
6)启动守护进程
./dmwatcher /dm8/dmrw/dmwatcher.ini
数据库会自动从mount转换成open状态;
 
6、配置备库
1)修改实例的dm.ini文件参数
INSTANCE_NAME = dmrw2
@H_712_0@mAL_INI = 1
ARCH_INI = 1
ALTER_MODE_STATUS = 0
ENABLE_OFFLINE_TS = 2
2)创建并配置归档文件dmarch.ini(实例所在目录)
[ARCHIVE_TIMELY]
ARCH_TYPE = TIMELY #即时归档类型
ARCH_DEST = dmrw1 #即时归档目标实例名(备库侧填写主库实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /home/dmdba/dmdbms/arch #本地归档文件存放路径
ARCH_FILE_SIZE = 128 #单位 MB,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 10240 #单位 MB,0 表示无限制,范围 1024~4294967294 MB
3)查看主库发过来的文件:dmmal.ini和dmwatcher.ini
4)以mount方式启动数据库
./dmserver /dm8/dm.ini mount
新终端使用disql工具连接数据库
./disql SYSDBA/SYSDBA
修改备库的oguid:sp_set_oguid(453331);
修改备库模式为standby:alter database standby;
5)启动守护进程
./dmwatcher /dm8/dmrw/dmwatcher.ini
数据库会自动从mount转换成open状态;
7、监视器配置
第三台虚拟机可以不用初始化实例,安装数据库即可;
在安装目录下,新建监视器配置文件:dmmonitor.ini
@H_712_0@mON_DW_CONFIRM = 1 #确认监视器模式 @H_712_0@mON_LOG_PATH = /dm8/log #监视器日志文件存放路径 @H_712_0@mON_LOG_INTERVAL = 60 #每隔 60 s 定时记录系统信息到日志文件 @H_712_0@mON_LOG_FILE_SIZE = 32 #每个日志文件最大 32 MB @H_712_0@mON_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间
[GRP_RW]
@H_712_0@mON_INST_OGUID = 453331 #组 GRP_RW 的唯一 OGUID 值
#以下配置为监视器到组 GRP_RW 的守护进程的连接信息,以“IP:PORT”的形式配置
#IP 对应 dmmal.ini 中的 MAL_HOST,PORT 对应 dmmal.ini 中的 MAL_DW_PORT
@H_712_0@mON_DW_IP = 192.168.43.31:52141 @H_712_0@mON_DW_IP = 192.168.43.44:52141
启动监视器:
./dmmonitor /dm8/dmmonitor.ini
用show查看两个实例的情况:

DM8_读写分离集群部署

8、注册服务
验证配置没有问题后,把前台起的服务注册一下:
使用root用户,到安装目录的script/root下
守护进程:
./dm_service_installer.sh -t dmwatcher -p dmrw -watcher_ini/dm/dmrw/dmwatcher.ini
数据库服务进程:
./dm_service_installer.sh -t dmserver -p dmrw -dm_ini /dm8/dmrw/dm.ini
监视器进程:在192.168.43.86上注册
./dm_service_installer.sh -t dmmonitor -p confirm -monitor_ini /dm8/dmmonitor.ini
9、验证读写分离集群
主库创建测试表插入数据:

DM8_读写分离集群部署

备库查询数据:

DM8_读写分离集群部署

大佬总结

以上是大佬教程为你收集整理的DM8_读写分离集群部署全部内容,希望文章能够帮你解决DM8_读写分离集群部署所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:hiveloadphpsqlvirtual参数安装工具并发数据库程序员资源
猜你在找的程序笔记相关文章
其他相关热搜词更多
phpJavaPython程序员load如何string使用参数jquery开发安装listlinuxiosandroid工具javascriptcap