mysql 主从同步
mysql 主从同步
Mysql 读写分离
MySQL的扩展
- 读写分离
- 复制:每个节点都有相同的数据集
- 向外扩展
- 二进制日志
- 单向
复制的功用:
-
数据分布
-
负载均衡读
-
备份
-
高可用和故障切换
-
MySQL升级测试
读写分离应用:
mysql-proxy:Oracle
https://downloads.mysql.com/archives/proxy/
Atlas:Qihoo
https://github.com/Qihoo360/Atlas/blob/master/README_ZH.md
dbproxy:美团
https://github.com/Meituan-Dianping/DBProxy
Cetus:网易乐得
https://github.com/Lede-Inc/cetus
Amoeba:
https://sourceforge.net/projects/amoeba/
Mysql 主从复制
Scale Up 纵向扩展:让服务器性能,尽可能的提高,买更好的硬盘,内存,CPU
Scale Out 横向扩展:读写分离 复制
横向扩展的本质:拆 ,不停的拆分 各个功能,把数据库的服务,把用户请求 分散在多台服务器上 分布式
复制 单向: 只允许主往从复制,不允许从往主复制。
主从复制有的时候延迟也会比较长,可能延迟1个小时。
需要一个调度器,来调度读写分离
实现:在主服务器上对数据进行增删改的同时,会生成事务日志和二进制日志。事务日志和二进制日志的组成,就可以知道当前对数据库执行的具体操作。这时候从主服务器开启一个线程,dump Thread
这个线程会把二进制中的数据,通过tcp 长连接,传递到从服务器的io thread ,从服务器收到后,存到relay log 中(relay log 是从服务器上自动生成的),然后从服务器把它通过sql thread 来应用到数据库中,这样从服务器也就获得了相同的数据。
mysql 垂直分区
将用户数据,按不同的类别,拆分开来。
水平分区
按照用户的UID,来拆分。比如1-10W,服务器1,10W-20W,服务器2 需要一个分片管理器
主从复制原理
主从复制线程:
主节点:
dump Thread:为每个Slave的I/O Thread启动一个dump线程,用于向其
发送binary log events
从节点:
I/O Thread:向Master请求二进制日志事件,并保存于中继日志中
SQL Thread:从中继日志中读取日志事件,在本地完成重放
跟复制功能相关的文件:
master.info:用于保存slave连接至master时的相关信息,例如账号、密码、服务器地址等 (主服务器上需要一个只有复制权限的账户,用于从服务器使用。)
relay-log.info:保存在当前slave节点上已经复制的当前二进制日志和本地replay log日志的对应关系
主从复制特点
同步复制:表示主服务器接收到数据变更请求后,告知从服务器,从服务器全部更改完成后,再告诉主服务器,主服务器再接收下一次的请求,这种往往需要的时间太长,真实企业环境中不使用。
异步复制
表示主服务器只关注自己的数据变更,变更完成后即接收下一次的请求,每次变更数据都会发送请求给从服务器,不关注从服务器是否已经同步变更数据完成了。
主从数据不一致比较常见
主从复制中的几个模型
分别为:
一主一从
一台主服务器带一台从属服务器,最基本的配置要求。如果主服务器瘫痪,就只能使用该从服务器,并且就没有更多的备份了。
一主多从
一台主服务器配合多台从服务器,当主服务器宕机后,可以提升从服务器为主服务器。并存在数据冗余。
级联从属
主 --> 从 --> 从
如果想实现这样的架构,称为级联复制,那么要把二级从服务器的二进制日志开起来
有效降低主服务器配置多台从设备后所需要承担的压力
多主一从
别作死,数据会爆。
在从服务器上搭建多个mysql实例,每个实例作为不同的其他mysql的从服务器。
主主架构和环形架构完全不推荐真实企业环境使用。百度了解即可。
复制架构中注意的问题
复制架构中应该注意的问题:
1、限制从服务器为只读
在从服务器上设置read_only=ON (防止无关人员的误操作。)
set global read_only=ON;
注意:此限制对拥有SUPER权限的用户均无效,此限制对拥有SUPER权限的用户均无效,此限制对拥有SUPER权限的用户均无效 (root 用户是可以删的。)
阻止所有用户, 包括主服务器复制的更新 (该方法企业实战中,不采用!!!除非出现重大事故问题。)
mysql> FLUSH TABLES WITH READ LOCK;
RESET SLAVE
在从服务器清除master.info ,relay-log.info, relay log ,开始新的relay
log ,注意:需要先STOP SLAVE
RESET SLAVE ALL 清除所有从服务器上设置的主服务器同步信息如:
PORT, HOST, USER和 PASSWORD 等
如何保证主从复制的事务安全
参看https://mariadb.com/kb/en/library/server-system-variables/
在master节点启用参数:
sync_binlog=1 每次写后立即同步二进制日志到磁盘,性能差 如果数据安全非常重要,可以开启,如果追求性能,就写0
如果用到的为InnoDB存储引擎:
innodb_flush_log_at_trx_commit=1 每次事务提交立即同步日志写磁盘
数据库主服务器的更改,正常情况下是并发的。然而binlog 往从服务器中复制数据,是串行的,而不是并行的。
他会把多个并行任务,变成一个串行任务。所以可能造成拥堵
可以根据 master.info中的信息,判断哪台从服务器的数据更新,未来如果要提升为主,可以用最新的来进行提升。
innodb_support_xa=ON 默认值,分布式事务MariaDB10.3.0废除
sync_master_info=# #次事件后master.info同步到磁盘
在slave节点启用服务器选项:
skip_slave_start=ON 不自动启动slave
在slave节点启用参数:
sync_relay_log=# #次写后同步relay log到磁盘
sync_relay_log_info=# #次事务后同步relay-log.info到磁盘
#从主服务器读到的日志文件位置
Read_Master_Log_Pos: 3007782
Relay_Log_File: localhost-relay-bin.000011
#中继日志位置
Relay_Log_Pos: 3006933
Relay_Master_Log_File: mysql-bin.000005
#已经执行到的日志文件位置
Exec_Master_Log_Pos: 3007782
Relay_Log_Space: 3007246
主从配置
配置主从服务器ID的时候,要注意保证每个服务器的ID不一致即可。
可以把grant账号再从服务器也创建一份,可能未来主服务器宕机的话,需要提升从服务器为主服务器。
主服务器配置
vim /etc/my.cnf
#启用主从复制,必须,开启二进制日志功能
log_bin=/data/binlog/
#指定实例id
server_id=1
log-basename=master
#授权一个拥有Mysql复制权限的账户
grant replication slave on *.* to repluser@'192.168.30.%' identified by 'slave';
从服务器配置
vim /etc/my.cnf
#为当前节点设置一个全局惟的ID号
server_id=2
#通常企业环境中,从服务器是只读的,用户只读取数据,除非要做级联复制,否则没必要开启二进制日志功能。
#启动中继日志,可开可不开
#relay log的文件路径,默认值hostname-relay-bin
relay_log=relay-log
#默认值 hostname -relay-bin.index
relay_log_index=relay-log.index
重启mysql服务器,进入交互界面,设置主服务器
CHANGE MASTER TO MASTER_HOST='192.168.30.17', #(主服务器地址)
MASTER_USER='repluser', # (主服务器用于从复制的账户)
MASTER_PASSWORD='slave', #(密码)
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=245; #(表示从主服务器的哪个二进制日志,哪个位置开始进行复制备份)
#查看从服务器状态
show slave status;
#开启从服务器
START SLAVE
Seconds_Behind_Master 主服务器和从服务器的时间差
假设从服务器重启了,这时候主服务器,又执行了大量的操作,新增了大量的数据,同时生成了大量的二进制日志文件,那么从服务器现在会发生什么操作?
从服务器启动会,会自动寻找主服务器,并且去同步未同步的数据。Slave_IO 与 Slave_SQL 这两个线程,只要开启后,未来只要Mysql服务启动,他就会自动启动。
主节点有大量数据时,配置slave节点
主节点已经运行了一段时间,且有大量数据时,如何配置并启动slave节点
1.通过备份恢复数据至从服务器
2.复制起始位置为备份时,二进制日志文件及其POS
主服务器
vim /etc/my.cnf
log_bin
#为当前节点设置一个全局惟的ID号
server_id=1
innode_file_per_table 独立表空间
#授权一个拥有Mysql复制权限的账户
grant replication slave on *.* to repluser@'192.168.30.%' identified by 'slave';
systemctl restart mariadb
mysqldump -A -F --single-transaction --master-data=1 >all.sql
scp all.sql 192.168.30.27:/data/backup/
从服务器
vim /etc/my.cnf
#为当前节点设置一个全局惟的ID号
server_id=2
#修改收到的all.sql
找到CHANGE MASTER TO 这一行,进行修改
CHANGE MASTER TO MASTER_HOST='192.168.30.17', #(主服务器地址)
MASTER_USER='repluser', # (主服务器用于从复制的账户)
MASTER_PASSWORD='slave', #(密码)
MASTER_LOG_FILE='mysql-bin.000002',
MASTER_LOG_POS=245; # 这两项就用all.sql里面默认的
#修改完成后导入该sql 到mysql 中
mysql < all.sql
#重启服务
systemctl restart mariadb
#查看从服务器状态
show slave status;
#开启同步服务
start slave;
主从级联复制
主 --> 从 --> 从 从 从
拓扑图
级联复制至少需要三台服务器
默认从服务器,不记录主服务器的二进制文件内容,只会直接把内容转换为数据记录在数据库内。
我们需要通过设置, 把从服务器 从主服务器获取到的二进制日志内容,可以保持在从服务器中,并且把他分发到他自身下级的从服务器中去。
如果要启用级联复制,需要在从服务器启用以下配置
vim /etc/my.cnf
[mysqld]
log_bin
log_slave_updates
建立主服务器 192.168.30.17
vim /etc/my.cnf
[mysqld]
server_id=1
login_bin
log-basename=master
innodb_file_per_table
grant replication slave on *.* to repluser@'192.168.30.%' identified by 'centos';
建立级联服务器 192.168.30.27
由于该服务器虽然属于主服务器的从属设备,但是这是级联,他相当于他下级的主服务器,所以必须开启二进制功能和级联配置
vim /etc/my.cnf
[mysqld]
server_id=2
login_bin
log-basename=master-slave
log_slave_updates
read-only
#重启mysql服务器,
systemctl restart mariadb
#丛服务器在复制主数据时,最好先刷新一次二进制日志
flush logs
#进入交互界面,设置主服务器
CHANGE MASTER TO MASTER_HOST='192.168.30.17', #(主服务器地址)
MASTER_USER='repluser', # (主服务器用于从复制的账户)
MASTER_PASSWORD='centos', #(密码)
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=400; #(表示从主服务器的哪个二进制日志,哪个位置开始进行复制备份)
#建立一个账户,供级联从使用
grant replication slave on *.* to repluser@'192.168.30.%' identified by 'centos';
#看看级联的日志位置
show master logs;
#开启从服务器服务
start slave;
停止从复制
stop slave;
清空slave 把从主服务器开始复制的二进制位置等信息清空,但是主服务器的设备信息还会保留
reset slave;
清空所有的slave 复制信息 (CHANGE MASTER 中所有信息) ,当需要重新开始复制的时候使用。
reset slave all;
重启开始从服务器复制
reset slave all;
rm -rf /var/lib/mysql/*
systemctl restart mariadb
#进入交互界面,设置主服务器
CHANGE MASTER TO MASTER_HOST='192.168.30.17', #(主服务器地址)
MASTER_USER='repluser', # (主服务器用于从复制的账户)
MASTER_PASSWORD='centos', #(密码)
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=400; #(表示从主服务器的哪个二进制日志,哪个位置开始进行复制备份)
#开启从服务器服务
start slave;
建立多个从服务器 192.168.30.37/ 192.168.30.47 /192.168.30.57
vim /etc/my.cnf
server_id=3
read-only
systemctl start mariadb
#进入交互界面,设置主服务器
CHANGE MASTER TO MASTER_HOST='192.168.30.27',
MASTER_USER='repluser',
MASTER_PASSWORD='centos',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=245;
#查看信息是否正确
show slave stauts\G;
start slave;
级联服务器做的操作,会同步到他的从服务器中,但是不会同步到主服务器中。搭建了主从,所有的修改都应该在主服务器上,不应该在任意的从服务器上。
编辑主从的CHANGE MASTER TO MASTER_HOST的时候,所有参数都给我看看清楚!!!IP地址,对方机器上的二进制日志文件名!!对方机器上的二进制日志文件名!!对方机器上的二进制日志文件名!! 要先查看一下上级设备的二进制文件名是否正确!!!
从服务器更改目标主服务器
从服务器上执行命令
stop slave;
reset slave all;
#查看要更改目标的主服务器的二进制日志位置
show master logs;
#修改从服务器的从属
CHANGE MASTER TO MASTER_HOST='192.168.30.17',
MASTER_USER='repluser',
MASTER_PASSWORD='centos',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=28478364;
#开启服务
start slave;
主服务器断电 上电后,从服务器无法继续同步主服务器内容
修复解决
主服务器操作
#全备一次
mysqldump -F -A --single-transaction --master-data=1 > all.sql
#复制到远程从服务器
scp all.sql 192.168.30.27
#确保修复完成后,可以删除不需要的二进制日志
purge binary logs to 'mysql-bin.000003'
从服务器操作
stop slave;
reset slave all;
#修改all.sql
CHANGE MASTER TO MASTER_HOST='192.168.30.17', #(主服务器地址)
MASTER_USER='repluser', # (主服务器用于从复制的账户)
MASTER_PASSWORD='centos', #(密码)
MASTER_LOG_FILE='mysql-bin.000003',
MASTER_LOG_POS=245; #(表示从主服务器的哪个二进制日志,哪个位置开始进行复制备份,这两个字段的值用all.sql中默认的,因为他就表示现在主服务器未来二进制日志开始的位置)
#导入恢复
mysql < all.sql
#重新启动
start slave;
主主复制模型 (生产中不要使用,会导致数据混乱,一致性差)
主主复制:互为主从
容易产生的问题:数据不一致;因此慎用
考虑要点:自动增长id
配置一个节点使用奇数id
auto_increment_offset=1 开始点
auto_increment_increment=2 增长幅度
另一个节点使用偶数id
auto_increment_offset=2
auto_increment_increment=2
主主复制的配置步骤:
(1) 各节点使用一个惟一server_id
(2) 都启动binary log和relay log
(3) 创建拥有复制权限的用户账号
(4) 定义自动增长id字段的数值范围各为奇偶
(5) 均把对方指定为主节点,并启动复制线程
主主搭建实战,主要需要注意,设置主服务器的时候,要查看对方的二进制文件的起始点,防止设置的起点错误。
主服务器A
vim /etc/my.cnf
log_bin
server_id=1
auto_increment_offset=1
auto_increment_increment=2
这样这台设备的主键增长就是1,3,5,7
#建立一个账户,供对方使用
grant replication slave on *.* to repluser@'192.168.30.%' identified by 'centos';
#互相设置对方为主
CHANGE MASTER TO MASTER_HOST='192.168.30.27', #(主服务器地址)
MASTER_USER='repluser', # (主服务器用于从复制的账户)
MASTER_PASSWORD='centos', #(密码)
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=245;
#开始同步
start slave;
主服务器B
vim /etc/my.cnf
log_bin
server_id=1
auto_increment_offset=2
auto_increment_increment=2
这样这台设备的主键增长就是2,4,6,8
#互相设置对方为主
CHANGE MASTER TO MASTER_HOST='192.168.30.17', #(主服务器地址)
MASTER_USER='repluser', # (主服务器用于从复制的账户)
MASTER_PASSWORD='centos', #(密码)
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=245;
#开始同步
start slave;
搭建完主主后,要在两个数据库中插入有自增表的数据,观察ID。
如果不指定自增ID,他会按照配置文件中的自增规则来递增,也可以强制指定ID。如果两边同时插入同ID的数据,就会出现数据不同步的情况。
半同步复制
介于完全同步与异步之间
半同步机制:找一台同服务器,让他与主服务器,始终保持同步。也就是说,当主服务器更改过一次数据,那么他会通知这台从服务器,只有这台从服务器也修改成功了,从服务器才会通知主服务器修改成功,主服务器才会通知用户更改成功,用户才能进行其他操作。而其他的从服务器就可以异步来进行同步,不需要这样
完成半同步复制需要在主服务器和从服务器都安装一个小软件。
配置半同步复制
安装完成后查看
show plugins;
查看相关变量
show global variables like '%semi%';
查看相关状态变量
show status like '%semi%';
默认so路径:
/usr/lib64/mysql/plugin/semisync_master.so; 主服务器半同步插件
/usr/lib64/mysql/plugin/semisync_slave.so; 从服务器半同步插件
主服务器配置
#安装该插件
INSTALL PLUGIN rpl_semi_sync_master SONAME'semisync_master.so';
#启动插件
set global rpl_semi_sync_master_enabled=1;
从服务器配置
#安装该插件
INSTALL PLUGIN rpl_semi_sync_slave SONAME'semisync_slave.so';
#启动插件
SET global rpl_semi_sync_slave_enabled=1;
如果之前从服务启动的话,需要重启一下从服务
stop slave;
start slave;
要注意,如果有多个从服务器的话,都要安装该插件。这样,只要有一个从服务器的数据同步了,就会通知主服务器同步成功。主服务器就可以接收新的请求。
复制过滤器
通过配置复制过滤器,让我们的从服务器,只复制主服务器上指定的db数据库数据,而忽略一些不需要复制的数据。
两种实现方式:
(1) 服务器选项:主服务器仅向二进制日志中记录与特定数据库相关的事件 ,也就是比如主服务器有A,B,C三个数据库,那么只记录,A,C两个数据库的二进制日志,而不记录B的,非常不推荐!!!这样未来B发生更改的时候就没有二进制日志了!!!损坏可能无法恢复到最新的数据!!
注意:此项和binlog_format相关
参看:https://mariadb.com/kb/en/library/mysqld-options/#-binlog-ignore-db
binlog-do-db = 数据库白名单列表,多个数据库需多行实现
binlog-ignore-db = 数据库黑名单列表
注:bin-do-db,bin-ignore-db 为互斥关系,只需设置其中一项即可
vim /etc/my.cnf
#黑名单案例
binlog-ignore-db=db1
binlog-ignore-db=db2
binlog-ignore-db=db3
问题:基于二进制还原将无法实现;不建议使用
(2) 从服务器SQL_THREAD在replay中继日志中的事件时,仅读取与特定数据库(特定表)相关的事件并应用于本地
问题:会造成网络及磁盘IO浪费,但是相比第一种,可靠性大大提升
从服务器上的复制过滤器相关变量
查看过滤器相关变量
show variables like 'replicate%';
set global replicate_ignore_db=db1;
下面填写的参数变量均为要操作的:主服务器的数据库
replicate-do-db= 指定复制库的白名单
replicate-ignore-db= 指定复制库黑名单,处于黑名单中的数据库,从服务器不会对二进制日志进行复制转换为数据
replicate-do-table= 指定复制表的白名单
replicate-ignore-table= 指定复制表的黑名单
replicate-wild-do-table= foo%.bar% 支持通配符
replicate-wild-ignore-table=
**注意:
该功能存在一个坑,如果是在主服务器设置二进制过滤,如果不使用use 针对特定的数据库,跨数据库操作,或者二进制日志的模式不是行模式,那么即使设置了黑名单,从服务器还是会同步主服务器的记录过去。·
生产环境中建议使用从服务器指定库的黑名单,不要去主服务器设置忽略库的二进制日志。
mysql 复制加密
如果主从服务器物理间隔很远,异地传输,那么就需要使用加密传输。保证数据安全性。
需要用到证书 所以需要先搭建一个CA
基于SSL复制:
在默认的主从复制过程或远程连接到MySQL/MariaDB所有的链接通信中的数据都是明文的,外网里访问数据或则复制,存在安全隐患。通过SSL/TLS加密的方式进行复制的方法,来进一步提高数据的安全性。
CA 服务器
mkdir /etc/my.cnf.d/ssl/
cd /etc/my.cnf.d/ssl/
#生成私钥
openssl genrsa 2048 > cakey.pem
#生成自签名证书
openssl req -new -x509 -key cakey.pem -out cacert.pem -days 3650
#生成私钥 + 请求文件一起 直接生成请求证书
openssl req -newkey rsa:2048 -days 365 -nodes -keyout master.key > master.csr
#直接给该证书颁发认证 并指定我们刚才生成的CA文件和CA私钥 ,否则命令会从/etc/pki/CA中去找
openssl x509 -req -in master.csr -CA cacert.pem -CAkey cakey.pem -set-serial 01 > master.crt
#创建一个从服务器用的证书
openssl req -newkey rsa:2048 -days 365 -nodes -keyout slave.key > slave.csr
openssl x509 -req -in slave.csr -CA cacert.pem -CAkey cakey.pem -set-serial 02 > slave.crt
#验证证书合法性
openssl verify -CAfile cacert.pem master.crt
openssl verify -CAfile cacert master.crt slave.crt
把文件复制到远程主服务器和从服务器上,这里直接全部扔过去了,不筛选了
scp -r /etc/my.cnf.d/ssl/ 192.168.30.17:/etc/my.cnf.d/
scp -r /etc/my.cnf.d/ssl/ 192.168.30.27:/etc/my.cnf.d/
#主服务需要保留 也就是CA的证书,master的证书和私钥
cacert.pem
master.crt
master.key
#从服务器保留
cacert.pem
slave.crt
slave.key
主服务器设置
vim /etc/my.cnf
logbin
server_id=1
ssl
ssl-ca=/etc/my.cnf.d/ssl/cacert.pem
ssl-cert=/etc/my.cnf.d/ssl/master.crt
ssl-key=/etc/my.cnf.d/ssl/master.key
grant replication slave on *.* to repluser@'192.168.30.%' identified by 'centos' require ssl; (require ssl 一定要加,表示这个用户连接复制的时候,只允许通过ssl加密的方式,不加密是不允许连接复制的。)
远程服务器设置
可以通过change master 来改,也可以通过配置文件来更改
#使用加密的方式连接主机进行操作
mysql -uroot -pcentos -h192.168.30.17 --ssl-ca=cacert.pem --ssl-cert=slave.crt --ssl-key=slave.key
#第一种方式 把证书信息放到change master 中去
vim /etc/my.cnf
sserver_id=2
ssl
CHANGE MASTER TO
MASTER_HOST='192.168.30.17',
MASTER_USER='rep',
MASTER_PASSWORD='centos',
MASTER_LOG_FILE='mariadb-bin.000001',
MASTER_LOG_POS=245,
MASTER_SSL=1,
MASTER_SSL_CA = '/etc/my.cnf.d/ssl/cacert.pem',
MASTER_SSL_CERT = '/etc/my.cnf.d/ssl/slave.crt',
MASTER_SSL_KEY = '/etc/my.cnf.d/ssl/slave.key'; //这四行是从服务器所需要用的证书信息
#设置完成后查看一下状态,能看到证书信息说明成功
show slave status
start slave;
#第二种方式,把证书信息放到 my.cnf 配置文件中去
vim /etc/my.cnf
sserver_id=2
ssl
ssl-ca=/etc/my.cnf.d/ssl/cacert.pem
ssl-cert=/etc/my.cnf.d/ssl/slave.crt
ssl-key=/etc/my.cnf.d/ssl/slave.key
#change master 中就不需要ssl信息了
CHANGE MASTER TO
MASTER_HOST='192.168.30.17',
MASTER_USER='rep',
MASTER_PASSWORD='centos',
MASTER_LOG_FILE='mariadb-bin.000001',
MASTER_LOG_POS=245,
MASTER_SSL=1;
#看看状态
show slave status;
#启动从服务器
start slave;
复制的监控和维护
清理日志
PURGE { BINARY | MASTER } LOGS { TO 'log_name' | BEFORE
datetime_expr }
RESET MASTER 清理所有二进制日志
RESET SLAVE 清理同步信息
复制监控
SHOW MASTER STATUS
SHOW BINLOG EVENTS
SHOW BINARY LOGS
SHOW SLAVE STATUS
SHOW PROCESSLIST
(3) 从服务器是否落后于主服务
Seconds_Behind_Master: 0
(4) 如何确定主从节点数据是否一致
percona-tools
(5) 数据不一致如何修复
删除从数据库,重新复制
主从复制优缺点
主服务器压力稍大
一旦主服务器坏了,我们只能手动找最新的从服务器,然后把他提升为主,还要找二进制日志位置。
作者: DreamDZhu
出处: https://www.cnblogs.com/ddz-linux/>
关于作者:专注Linux运维的萌新,目标:独立管理后宫三千服务器,请多多赐教!
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出, 原文链接 如有问题, 可邮件(852749070@qq.com)咨询.
互相尊重版权,才能有更好的未来。