mysql 主从复制原理标签:主主 mysql高可用 html 多主一从 并行复制 replicat 应该 src 性能 本文系统来源:http://www.cnblogs.com/erbing/p/7262277.html
1.1 Keepalived Keepalived,见名知意,即保持存活,其目的是解决单点故障,当一台服务器宕机或者故障时自动切换到其他的服务器中。Keepalived是基于VRRP协议实现的。VRRP协议是用于实现路由器冗余的协议,VRRP协议将两台或多台路由器设备虚拟成虚拟设备,可以对外提供虚拟路由器IP(一个或多个),即漂移IP(VIP)。 1.2 ProxySQL ProxySQL是一个高性能,高可用性的MySQL代理服务,用于实现数据库的代理和读写分离的功能。 ...
半同步复制 普通的replication,即mysql的异步复制,依靠mysql二进制日志也即binary log进行数据复制。比如两台机器,一台主机(master),另外一台是从机(slave)。正常的复制为:事务一(t1)写入binlog buffer;dumper 线程通知slave有新的事务t1;binlog buffer 进行checkpoint;slave的io线程接收到t1并写入到自己的的relay log;slave的sql线程写入到本地数据库。 这时,master和slave都能看到这条新的事务,即使master挂了,sl...
#################### mysql 主从复制 ####################1、MySQL 主从复制基本工作原理 :主服务器将改变记录记录到她的二进制日志中,从服务器将主服务器的二进制日志复制到它的中级日志中去,然后通过中级日志改变它的数据,这样就实现了主从复制。2、Slave 的两个线程:I/O 线程:将主服务器的二进制日志写入到中继日志中去sql 线程:读取中继日志的内容,更新数据。一、环境准备主服务器:redhat6.5 IP:172.25.24.1 安装 mysql ...
1、 解压到/usr/local目录# tar -zxvf mysql-5.7.18-linux-glibc2.5-i686.tar.gz -C /usr/local2、 mysql-5.7.18-linux-glibc2.5-i686文件夹重命名为mysql# cd /usr/local# mv mysql-5.7.18-linux-glibc2.5-i686/ mysql3、 新建mysql用户组和mysql用户# groupadd mysql# useradd -r -g mysql mysql4、 新建数据目录# cd /usr/local/mysql# mkdir data5、 更改所有者以及授权755# cd /usr/local# chown -R mysql:mysql mysql/#...
重新应用到mysql数据库中。3、实现主从复制,master需要打开my.cnf中的binlog日志功能。具体操作是增加以下参数:[mysqld]log-bin =/data/3306/mysql-bin --从数据库可以不设置。避免影响性能。当然设置了也没关系。注意该语句需要放在[mysqld]模块下。4、用于主从复制的所有数据库实例的server-id都不能相同。这点必须注意。注意:my.cnf中参数是不能重复的。修改后需要重启数据库5、建立用于复制的账号:登陆到主数据库,然后执...
CentOS6.7安装mysql5.7.181、 解压到/usr/local目录# tar -zxvf mysql-5.7.18-linux-glibc2.5-i686.tar.gz -C /usr/local2、 mysql-5.7.18-linux-glibc2.5-i686文件夹重命名为mysql# cd /usr/local# mv mysql-5.7.18-linux-glibc2.5-i686/ mysql3、 新建mysql用户组和mysql用户# groupadd mysql# useradd -r -g mysql mysql4、 新建数据目录# cd /usr/local/mysql# mkdir data5、 更改所有者以及授权755# cd /usr/local# chown -R ...
CentOS6.7安装mysql5.7.181、 解压到/usr/local目录# tar -zxvf mysql-5.7.18-linux-glibc2.5-i686.tar.gz -C /usr/local2、 mysql-5.7.18-linux-glibc2.5-i686文件夹重命名为mysql# cd /usr/local# mv mysql-5.7.18-linux-glibc2.5-i686/ mysql3、 新建mysql用户组和mysql用户# groupadd mysql# useradd -r -g mysql mysql4、 新建数据目录# cd /usr/local/mysql# mkdir data5、 更改所有者以及授权755# cd /usr/local# chow...
# For advice on how to change settings please see# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html[mysqld]# Remove leading # and set to the amount of RAM for the most important data# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.# innodb_buffer_pool_size = 128M# Remove leading # to turn on a very important data integrity option: logging# changes...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 291 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 293,加载远程过来的binlog 在上个step2之后,立即加载binlog,获得数据显示 #sh load_data_frombinlog.sh $dir if [ ! -n "$1" ]; thenecho -e "需输入日期参数如:2017060909\n"echo -e "需输入日期参数如:2017060909\n" >> $loadlogfile# exit filoadlogf...
2 --replicate-ignore-db 3 --replicate-do-table 4 --replicate-wild-do-table 5 --replicate-ignore-table 6 --replicate-wild-ignore-table 以上6个规则的前2个是库级别的规则,后4个是表级别的规则。使用注意点: 1:库级别的规则,只针对binlog_format=‘STATEMENT‘或‘MIXED‘。2:如果是binlog_format=‘ROW‘,不受库级别规则限制,只受表级别规则限制。 3:表级别的规则,针对所有模式。 4:binlog_format=‘STAT...
主2:192.168.1.20 3306 db3 从: 192.168.1.30 3306 假如之前实现的是过滤复制,复制的是主1的db1 和 主2的db3,已经运行一段时间了。现在想增加主1上的db2,该如何实现? 具体实现方法如下: 1. 使用mysqldump 导出 db2(记录pos1),并导入多源从库。 2. 停止多源从库的sql线程(STOP SLAVE SQL_THREAD ),并记录此刻同步到主1的位置pos2。 3. 使用mysqlbinlog 将pos1 到 pos2 的变更应用到从库。(mysqlbinlog --s...
Binlog_gtid_simple_recovery=TURE(默认值) 这个参数控制了当mysql启动或重启时,mysql在搜寻GTIDs时是如何迭代使用binlog文件的。 这个选项设置为真,会提升mysql执行恢复的性能。因为这样mysql-server启动和binlog日志清理更快。该参数为真时,mysql-server只需打开最老的和最新的这2个binlog文件,gtid_purged参数的值和gtid_executed参数的值可以根据这些文件中的Previous_gtids_log_event 或者 Gtid_log_event计算得...
今天监控显示mysql主从复制出错了,信息如下:mysql> show slave status\G; *************************** 1. row ***************************Slave_IO_State: Master_Host: 192.168.33.230Master_User: replMaster_Port: 3306Connect_Retry: 60Master_Log_File: master-bin.000774Read_Master_Log_Pos: 202924128Relay_Log_File: 192-168-33-236-relay-bin.000065Relay_Log_Pos: 202924292Relay_Master_Log_File: master-bin.0007...
1 row affected (0.00 sec)mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | cp_test | | mysql | | performance_schema | +--------------------+ 4 rows in set (0.00 sec)mysql> 2.在服务器B上远程访问服务器A,并将服务器A上的数据库备份到服务器B(本人只是作为测试,所以就跳过了锁表) 执行时间3分钟[root@zhangmeng ~]# mysqldum...