北青永恒 - MySQL
type: channel
link: http://kococ.cn/tag/MySQL/
items: MySQL高可用晋升

MySQL高可用晋升
type: item
date: 2019-02-05T23:54:00+08:00
description: 企业高可用性标准全年无故障率(非计划内故障停机)99.9% ----> 0.001*365*24*60=525.6 min 99.99% ----> 0.0001*365*24*60=52.56 min 99.999% ----> 0.0001*365*24*60=5.256 min 高可用架构方案负载均衡:有一定的高可用性 LVS Nginx 主备系统:有高可用性,但是需要切换,是单活的架构 KA , MHA, MMM 真正高可用(多活系统): NDB Cluster Oracle RAC Sysbase cluster , InnoDB Cluster（MGR）,PXC , MGC 主从复制简介1.1. 基于二进制日志复制的 1.2. 主库的修改操作会记录二进制日志 1.3. 从库会请求新的二进制日志并回放,最终达到主从数据同步 1.4. 主从复制核心功能: 辅助备份,处理物理损坏 扩展新型的架构:高可用,高性能,分布式架构等 主从复制前提(搭建主从的过程)2.1 两台以上mysql实例 ,server_id,server_uuid不同 2.2 主库开启二进制日志 2.3 专用的复制用户 2.4 保证主从开启之前的某个时间点,从库数据是和主库一致(补课) 2.5 告知从库,复制user,passwd,IP port,以及复制起点(change master to) 2.6 线程(三个):Dump thread IO thread SQL thread 开启(start slave) 主从复制搭建(Classic replication)清理主库数据rm -rf /data/3307/data/* 重新初始化3307mysqld --initialize-insecure --user=mysql --basedir=/app/mysql --datadir=/data/3307/data 修改my.cnf ,开启二进制日志功能[root@db01 3307]# vim /data/3307/my.cnf log_bin=/data/3307/data/mysql-bin 启动所有节点[root@db01 3307]# systemctl start mysqld3307 [root@db01 3307]# systemctl start mysqld3308 [root@db01 3307]# systemctl start mysqld3309 [root@db01 3307]# ps -ef |grep mysqld mysql 3684 1 4 09:59 ? 00:00:00 /app/mysql/bin/mysqld --defaults-file=/data/3307/my.cnf mysql 3719 1 7 09:59 ? 00:00:00 /app/mysql/bin/mysqld --defaults-file=/data/3308/my.cnf mysql 3754 1 8 09:59 ? 00:00:00 /app/mysql/bin/mysqld --defaults-file=/data/3309/my.cnf [root@db01 3307]# mysql -S /data/3307/mysql.sock -e "select @@server_id" [root@db01 3307]# mysql -S /data/3308/mysql.sock -e "select @@server_id" [root@db01 3307]# mysql -S /data/3309/mysql.sock -e "select @@server_id" 主库中创建复制用户[root@db01 3307]# mysql -S /data/3307/mysql.sock db01 [(none)]>grant replication slave on *.* to repl@'10.0.0.%' identified by '123'; db01 [(none)]>select user,host from mysql.user; 备份主库并恢复到从库[root@db01 3307]# mysqldump -S /data/3307/mysql.sock -A --master-data=2 --single-transaction -R --triggers >/backup/full.sql -- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=653; [root@db01 3307]# mysql -S /data/…