MySQL Connector/J 支持服务器故障转移。当底层活动连接发生与连接相关的错误时,就会发生故障转移
参考官网地址
jdbc:mysql://[primary host][:port],[secondary host 1][:port]
Connector/J 长期以来一直提供一种有效方法,用于在集群或主从复制部署中跨多个 MySQL 服务器实例分配读/写负载
参考 官网网站
jdbc:mysql:loadbalance://[host1][:port],[host2][:port]
1、主库会生成多个 binlog 日志文件。
2、从库的 I/O 线程请求指定文件和指定位置的 binlog 日志文件(位点)。
3、主库 dump 线程获取指定位点的 binlog 日志。
4、主库按照从库发送给来的位点信息读取 binlog,然后推送 binlog 给从库。
5、从库将得到的 binlog 写到本地的 relay log (中继日志) 文件中。
6、从库的 SQL 线程读取和解析 relay log 文件。
7、从库的 SQL 线程重放 relay log 中的命令。
binlog 配置方式
主库上执行SHOW MASTER STATUS
查看同步的文件以及偏移量
从库设置主库的地址以及指定同步的文件以及偏移量
change replication source to source_host='xxx', source_user='root', source_password='root', source_port=3306, source_log_file='mysql-bin.000003', source_log_pos=12, source_connect_retry=30;
1、首次开启主从复制步骤复杂
GTID是一个基于原始mysql服务器生成的一个已经被成功执行的全局事务ID,它由服务器ID以及事务ID组合而成
GTID表示为一对坐标,由冒号(:)分隔,如下所示:
GTID = source_id:transaction_id
实现方案:
选择配置比较高的一台为主服务器,提供读写功能,另一台 从服务器作为 BackUP 热备,同时通过复制与主服务器数据保持一致,二者均开启 bin-log 功能。Keepalived 自带服务监控功能,实现故障时 VIP 的无缝切换,当活跃节点出现故障时,通过 VIP+keepalived脚本执行实现向另一台主数据库的切换,以此实现 MySQL 架构的高可用
从节点一般会设置为只读模式,线上一般通过keeplive实现高可用
可参考脚本,如果主节点宕机,将从节点的只读变成可读可写,使用高可用
STATUS=$(mysqladmin -uroot -proot ping|grep -c alive)
if [ $STATUS -eq 1 ];then
mysql -uroot -proot -e
stop slave;
set global super_read_only=0;
set global read_only=0;"