本文主要介绍StoneDB主从配置和切换练习方案的相关信息,有需要的朋友可以参考一下。
: 目录
1.操作系统环境检查。关闭防火墙1.2。关闭SELINUX1.3 .设置交换分区1.4。修改操作系统限制1.5。创建用户2。部署MySQL2.1下载安装包2.2卸载mariadb2.3上传tar包并解压2.4创建目录2.5配置参数文件my.cnfmasterslave12.6初始化实例2.7启动实例3、部署StoneDB3.1下载安装包3.2上传tar包并解压3.3检查依赖文件3.4创建目录3.5配置参数文件my.cnf3.6初始化实例3.7启动实例4、 配置主从4.1创建复制用户4.2备份主库4.3传输备份文件4.4从1节点4.5从2节点4.6建立主从复制从1节点从2节点5、配置复制管理器5.1配置hosts文件5.2配置机密性5.3配置yum源5.4安装复制管理器5.5主库创建监控用户5.6配置config.toml5.7启动复制管理器5.8 WEB登录6。 建议StoneDB的主从切换可以手动切换,也可以自动切换。自动切换通常需要使用第三方中间件。本文介绍了常用的中间件复制管理器。当主设备停机时,它可以自动切换到从设备,以确保业务的正常运行。故障节点恢复后,它可以加入主节点和从节点。
服务器配置说明
IP
Memory
CPU
OS version
192 . 168 . 30 . 408 G8 ccentos Linux版本7.9192 . 168 . 30 . 418 G8 ccentos Linux版本7.9192 . 168 . 30 . 428 G8 ccentos Linux版本7.9192 . 168 . 30 . 4616 g16 CCE注意:一般来说,主从环境下每台服务器的配置建议保持一致。但是,由于StoneDB在OLAP场景中无论是重放binlog还是查询都会消耗更多的系统资源,所以建议将StoneDB配置得比MySQL稍高一些。
主从环境描述
IP
DATABASE
ROLE
DB version
192 . 168 . 30 . 40 MySQL master MySQL 5.7192 . 168 . 30 . 41/Replication Manager/192 . 168 . 30 . 42 mysqlslavemysql 5.7192 . 168 . 30 . 46 stonedbslavestonedb 5.7注意:MySQL与StoneDB的版本建议一致。
推荐一主两从的架构,其中StoneDB不参与主从切换:
1)master(192.168.30.40)使用InnoDB引擎,可以读写,为OLTP场景提供读写服务;
2)slave1(192.168.30.42)使用只读的InnoDB引擎。同时作为备用。当master宕机时,可以切换到slave1,保证业务的正常运行;
3)slave2(192.168.30.46)使用天目引擎,为只读,提供OLAP场景读取服务。
1、操作系统环境检查
操作系统环境检查的步骤需要在所有四个节点上执行。
1.1 关闭防火墙# systemctl停止防火墙d
# systemctl禁用防火墙d
1.2 关闭SELINUX# vim /etc/selinux/config
SELINUX=禁用
1.3 设置Swap分区修改虚拟机的值。Swappiness设置为1,这意味着尽量不要使用swap。
# vi /etc/sysctl.conf
vm.swappiness=1
1.4 修改操作系统的限制# ulimit -a
核心文件大小(块,-c) 0
数据段大小(千字节,-d)无限制
调度优先级(-e) 0
文件大小(块,-f)无限制
待定信号(-i) 1031433
最大锁定内存(千字节,-l) 64
最大内存大小(千字节,-m)无限制
打开文件(-n) 65535
管道大小(512字节,-p) 8
POSIX消息队列(字节,-q) 819200
实时优先级(-r) 0
堆栈大小(千字节,-s) 10240
cpu时间(秒,-t)无限制
最大用户进程数(-u) 1024
虚拟内存(千字节,-v)无限制
文件锁定(-x)无限制
修改操作系统的硬件和软件限制。
# vim /etc/security/limits.conf
*软nofile 65535
*硬文件65535
mysql软nproc 1028056
mysql硬nproc 1028056
1.5 创建用户# groupadd mysql
# useradd -g mysql mysql
#密码mysql
不需要创建Replication Manager节点。完成上述步骤后,重启操作系统。
2、部署MySQL
在主节点和slave1节点上安装MySQL。
2.1 下载安装包https://downloads.mysql.com/archives/community/从官网下载MySQL 5.7的安装包。
2.2 卸载mariadb# rpm -qa|grep mariadb
mariadb-5.5.56-2.el7.x86_64
玛丽亚db-服务器-5。5 .56-2 .el7。x86 _ 64
玛丽亚db-libs-5。5 .56-2 .el7。x86 _ 64
# yum remove mariadb*
# rpm -qa|grep mariadb
2.3 上传tar包并解压# tar-zxvf MySQL-5。7 .36-Linux-glibc 2.12-x86 _ 64。焦油。gz-C/usr/本地/
# cd /usr/local/
# mv MySQL-5。7 .36-Linux-glibc 2.12-x86 _ 64 MySQL
2.4 创建目录# mkdir -p /mysql/data/
# mkdir -p /mysql/log
# chown -R mysql:mysql /mysql/
2.5 配置参数文件 my.cnfmaster
# vim /etc/my.cnf
[客户]
端口=3306
socket=/mysql/data/mysql.sock
[mysqld]
端口=3306
basedir=/usr/local/mysql
datadir=/mysql/data
socket=/mysql/data/mysql.sock
PID _ file=/MySQL/data/mysqld。PID
log _ error=/MySQL/log/mysqld。原木
log_bin=/mysql/log/mybinlog
server_id=40
character_set_server=utf8mb4
collation _ server=utf8mb 4 _ general _ ci
max_connections=1000
binlog_format=row
默认存储引擎=innodb
read_only=0
innodb _ buffer _ pool _ size=4096000000
innodb _ log _ file _ size=1024000000
innodb_log_files_in_group=3
innodb_io_capacity=4000
innodb_io_capacity_max=8000
#开启GTID模式
gtid_mode=开
enforce_gtid_consistency=1
#并行复制
binlog _ transaction _ dependency _ tracking=WRITESET
transaction _ write _ set _ extraction=xxhash 64
slave1
# vim /etc/my.cnf
[客户]
端口=3306
socket=/mysql/data/mysql.sock
[mysqld]
端口=3306
basedir=/usr/local/mysql
datadir=/mysql/data
socket=/mysql/data/mysql.sock
PID _ file=/MySQL/data/mysqld。PID
log _ error=/MySQL/log/mysqld。原木
log_bin=/mysql/log/mybinlog
server_id=42
character_set_server=utf8mb4
collation _ server=utf8mb 4 _ general _ ci
max_connections=1000
binlog_format=row
默认存储引擎=innodb
read_only=1
innodb _ buffer _ pool _ size=4096000000
innodb _ log _ file _ size=1024000000
innodb_log_files_in_group=3
innodb_io_capacity=4000
innodb_io_capacity_max=8000
#开启GTID模式
gtid_mode=开
enforce_gtid_consistency=1
#并行复制
从属并行类型=逻辑时钟
奴隶_并行_工人=4
2.6 初始化实例/usr/local/MySQL/bin/mysqld-defaults-file=/etc/my。CNF-初始化-用户=MySQL
2.7 启动实例/usr/local/MySQL/bin/mysqld _ safe-defaults-file=/etc/my。CNF-用户=MySQL
注:管理员用户的临时密码在mysqld.log中,第一次登陆后需要修改管理员用户的密码。
3、部署StoneDB
3.1 下载安装包https://stonedb.io/zh/docs/download/从官网下载StoneDB 5.7的安装包。
3.2 上传tar包并解压# cd /
# tar-zxvf stonedb-ce-5.7-v 1。0 .0 .el7。x86 _ 64。焦油。地面零点
用户可根据安装规范将安装包上传至服务器,解压出来的目录是stonedb57,示例中的安装路径是/stonedb57。
3.3 检查依赖文件# cd /stonedb57/install/bin
# ldd mysqld
# ldd mysql
如果检查返回有关键字未找到,说明缺少文件,需要安装对应的依赖包。例如:
libsnappy.so.1=未找到
在人的本质上使用命令“须藤apt搜索库爽快”检查,说明需要安装libsnappy-dev。在美国红帽子的公司出品的计算机操作系统或者CentOS上使用命令百胜搜索所有爽快检查,说明需要安装爽快的,爽快的。
3.4 创建目录mkdir -p /stonedb57/install/data
mkdir-p/stonedb 57/install/binlog
mkdir -p /stonedb57/install/log
mkdir -p /stonedb57/install/tmp
mkdir-p/stonedb 57/install/redolog
mkdir-p/stonedb 57/安装/撤消日志
chown -R mysql:mysql /stonedb57
3.5 配置参数文件 my.cnf# vim /stonedb57/install/my.cnf
[客户]
端口=3306
socket=/stonedb 57/install/tmp/MySQL。短袜
[mysqld]
端口=3306
basedir=/stonedb57/install/
datadir=/stonedb 57/install/data
socket=/stonedb 57/install/tmp/MySQL。短袜
PID _ file=/stonedb 57/install/data/mysqld。PID
log _ error=/stonedb 57/install/log/mysqld。原木
log _ bin=/stonedb 57/install/bin log/bin log
server_id=46
character_set_server=utf8mb4
collation _ server=utf8mb 4 _ general _ ci
max_connections=1000
binlog_format=row
默认存储引擎=天目
read_only=1
innodb _ buffer _ pool _ size=2048000000
innodb _ log _ file _ size=1024000000
innodb_log_files_in_group=3
innodb_io_capacity=4000
innodb_io_capacity_max=8000
innodb _ log _ group _ home _ dir=/stonedb 57/install/redo log/
innodb _ undo _ directory=/stonedb 57/install/undo log/
innodb_undo_log_truncate=1
innodb_undo_tablespaces=3
innodb_undo_logs=128
#开启GTID模式
gtid_mode=开
enforce_gtid_consistency=1
#并行复制
从属并行类型=逻辑时钟
奴隶_并行_工人=8
3.6 初始化实例/stonedb 57/install/bin/mysqld-defaults-file=/stonedb 57/install/my。CNF-初始化-用户=MySQL
3.7 启动实例/stonedb 57/install/bin/mysqld _ safe-defaults-file=/stonedb 57/install/my。CNF-用户=MySQL
注:管理员用户的临时密码在mysqld.log中,第一次登陆后需要修改管理员用户的密码。
4、配置主从
4.1 创建复制用户创建由" mysql123 "标识的用户repl“@“%”;
在*上授予复制从属服务器. *到 repl @ %
4.2 备份主库/usr/local/MySQL/bin/MySQL dump-u root-pmy SQL 123-single-transaction-set-gtid-purged=on-B aa/tmp/aa。结构化查询语言
4.3 传输备份文件scp/tmp/aa。SQL root @ 192。168 .30 .42:/tmp
scp/tmp/aa。SQL root @ 192。168 .30 .43:/tmp
注:如果数据较大,建议使用我的翻车机。
4.4 slave1节点/usr/local/MySQL/bin/MySQL-u root-pmy SQL 123-S/mysqldb/data/MySQL。短袜
source /tmp/aa.sql
注:恢复前需要确保gtid _已执行为空。
4.5 slave2节点在恢复前,需要修改存储引擎,注释锁表语句。
sed-I的/解锁表/-解锁表/g /tmp/aa.sql
sed-I的/锁表`/-锁表`/g /tmp/aa.sql
sed-I s/ENGINE=InnoDB/ENGINE=Tianmu/g /tmp/aa。结构化查询语言
/stonedb 57/install/bin/MySQL-u root-pmy SQL 123-S/stonedb 57/install/tmp/MySQL。短袜
source /tmp/aa.sql
注:恢复前需要确保gtid _已执行为空。
4.6 建立主从复制slave1节点
将母版更改为
主人主机=192.168.30.40 ,
主端口=3306,
MASTER_USER=repl ,
MASTER_PASSWORD=mysql123 ,
MASTER _ AUTO _ POSITION=1;
启动从机;
显示从属状态G
slave2节点
将母版更改为
主人主机=192.168.30.40 ,
主端口=3306,
MASTER_USER=repl ,
MASTER_PASSWORD=mysql123 ,
MASTER _ AUTO _ POSITION=1;
启动从机;
显示从属状态G
5、配置Replication Manager
5.1 配置hosts文件在所有节点都要配置
# vim /etc/hosts
哈密01
哈密02
哈密03
HAST05
5.2 配置免密在复制管理器节点配置
ssh-keygen
ssh-copy-id HAMI01
ssh-copy-id HAMI03
ssh-copy-id HAST05
ssh HAMI01
宋承宪哈密03
ssh HAST05
注:若嘘免密登录表示免密配置成功。
5.3 配置yum源# vim/etc/yum。回购。d/信号18。被卖方收回的汽车
[信号18]
name=Signal18存储库
基本网址=http://回购。信号18。io/centos/2.1/$发行版/$基础版/
gpgcheck=0
启用=1
5.4 安装Replication Manager# yum install -y复制管理器-osc
# rpm -qa|grep复制
复制管理器-osc-2.2.20-1.x86_64
5.5 主库创建监控用户创建由" mysql123 "标识的用户rep _ monitor“@”;
授权重新加载、进程、超级、复制从属、复制客户端、事件发生于*。*到rep _ monitor @ %
将mysql .事件上的挑选权限授予rep _ monitor @ %
将mysql.user上的挑选权限授予rep _ monitor @ %
性能模式上的授权选择.*到rep _ monitor @ %
5.6 配置config.toml# vim/etc/replication-manager/config。汤姆
# 集群名称
[斯通迪布-哈]
# 主从节点
d B-服务器-主机= 192。168 .30 .40:3306,192.168.30.42:3306,192.168.30.46:3306
# 主节点
d B-servers-preferred-master= 192。168 .30 .40:3306
# 监控用户
d b-servers-credential= rep _ monitor:MySQL 123
db-servers-connect-timeout=2
# 复制用户
复制凭据=repl:mysql123
# StoneDB不被用于切换
d B- servers-ignored-hosts= 192。168 .30 .46:3306
##############
##故障转移##
##############
# 故障自动切换
故障转移模式="自动"
# 30年代内再次发生故障不切换,防止硬件问题或网络问题
故障转移时间限制=30
[默认]
#########
##日志##
#########
log-file=/var/log/replication-manager。“日志”
日志-心跳=假
log-syslog=false
monitoring-datadir=/var/lib/replication-manager
日志级别=1
复制-多主=假
复制-多层-从属=假
故障转移只读状态=真
http-server=true
http-bind-address=0.0.0.0
http-port=10001
5.7 启动Replication Manager# systemctl启动复制管理器
# netstat -lntp|grep复制
TCP 6 0 0:10001:* list EN 13128/replication-m
TCP 6 0 0:10005:* list EN 13128/replication-m
5.8 WEB登录3358192.168.30.41: 10001默认用户名和密码是admin/repman
6、建议项
1)建议设置为GTID模式;
2)建议主从配置为半同步模式;
3)StoneDB不参与主从切换。
这篇关于StoneDB主从配置和切换练习方案的文章到此为止。关于StoneDB主从配置的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望大家以后能多多支持我们!