StoneDB主从配置及切换实践方案

StoneDB主从配置及切换实践方案

本文主要介绍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.cnf

master

# 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主从配置的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望大家以后能多多支持我们!

StoneDB主从配置及切换实践方案