#MYSQL单节点的mysql远远不能满于生成,以防止生产服务器宕机,磁盘空间溢满等种种缘由,须要有一个备用数据库,mysql
这时候主从库是不错的选择,在是数据库集群中也起到了很大的做用sql
#MySQL 主从复制概念:shell
MySQL 主从复制是指数据能够从一个MySQL数据库服务器主节点复制到一个或多个从节点。MySQL 默认采用异步复制方式,这样从节点不用一直访问主服务器来更新本身的数据,数据的更新能够在远程链接上进行,从节点能够复制主数据库中的全部数据库或者特定的数据库,或者特定的表。数据库
#通常主从架构服务器
一主一从和一主多从是最多见的主从架构,实施起来简单而且有效,不只能够实现HA,并且还能读写分离,进而提高集群的并发能力。架构
多主一从能够将多个mysql数据库备份到一台存储性能比较好的服务器上并发
双主复制
异步
双主复制,也就是互作主从复制,每一个master既是master,又是另一台服务器的slave。这样任何一方所作的变动,都会经过复制应用到另一方的数据库中性能
级联复制模式下,部分slave的数据同步不链接主节点,而是链接从节点。由于若是主节点有太多的从节点,就会损耗一部分性能用于replication,那么咱们可让3~5个从节点链接主节点,其它从节点做为二级或者三级与从节点链接,这样不只能够缓解主节点的压力,而且对数据一致性没有负面影响。spa
1.主从服务器要求
(1)版本一致
(2)初始化表,并在后台启动mysql
(3)可供mysql用户
2.主库配置
2.从库配置,从库不配置日志也是能够的,只配置server_id便可知足
3.查看主库的日志信息
mysql>show master status; +------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000004 | 308 | | | +------------------+----------+--------------+------------------+ 1 row in set (0.00 sec)
4.重启主从库,配置从库的slave
mysql>change master to master_host='192.168.145.222',master_user='mysync',master_password='q123456', master_log_file='mysql-bin.000004',master_log_pos=308; //注意不要断开,308数字先后无单引号。 Mysql>start slave; //启动从服务器复制功能
5.查看从库复制功能状态
mysql> show slave status\G *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 192.168.2.222 //主服务器地址 Master_User: mysync //受权账户名,尽可能避免使用root Master_Port: 3306 //数据库端口,部分版本没有此行 Connect_Retry: 60 Master_Log_File: mysql-bin.000004 Read_Master_Log_Pos: 600 //#同步读取二进制日志的位置,大于等于Exec_Master_Log_Pos Relay_Log_File: ddte-relay-bin.000003 Relay_Log_Pos: 251 Relay_Master_Log_File: mysql-bin.000004 Slave_IO_Running: Yes //此状态必须YES Slave_SQL_Running: Yes //此状态必须YES
注:Slave_IO及Slave_SQL进程必须正常运行,即YES状态,不然都是错误的状态(如:其中一个NO均属错误)。
6.进行验证,在主库建表,从库会同步数据过来,可编写shell脚本监控salve两个yes(Slave_IO及Slave_SQL进程),如发现只有一个或零个yes,就代表主从有问题了,发短信警报吧。