工作原理

首先锁定并备份主服务器数据库,从服务器导入备份的数据库,实现两个数据库的初态一样。然后把主服务器上执行过的sql语句都记录到二进制日志 Binarylog 中,从服务器会来读取这个log, 自己再执行一遍对应的sql语句, 这样它们就一直同步了。

IP

主服务器IP:192.168.0.41

从服务器IP:192.168.0.42

主服务器配置

[mysqld]
#主从备份
log-bin=mysql-bin
binlog_format=mixed
server-id= read-only=
binlog-do-db=mydb
binlog-ignore-db=mysql
binlog-ignore-db=test
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
#双主备份
#auto-increment-increment=
#auto-increment-offset=

binlog_format = MIXED

#binlog日志格式,mysql默认采用statement,建议使用mixed

log-bin = /data/mysql/mysql-bin.log

#binlog日志文件

expire_logs_days = 7

#binlog过期清理时间

max_binlog_size = 100m

#binlog每个日志文件大小

binlog_cache_size = 4m

#binlog缓存大小

max_binlog_cache_size = 512m

#最大binlog缓存大小

从服务器配置

[mysqld]
#主从备份
#log-bin=mysql-bin
#binlog_format=mixed
server-id= replicate-do-db=mydb
replicate-ignore-db=mysql
replicate-ignore-db=test
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
replicate-wild-ignore-table=mydb.%
replicate-wild-ignore-table=mydb.tmp%
replicate-wild-ignore-table=mysql.%
replicate-wild-ignore-table=test.%
replicate-wild-ignore-table=information_schema.%
replicate-wild-ignore-table=performance_schema.%
relay_log=mysql-relay-bin
log-slave-updates=ON

创建备份用户

grant replication slave on *.* to 'backup'@'192.168.0.42' identified by '';

binary日志

查看主服务器binary日志,开启同步要用

mysql> show master status\G
*************************** . row ***************************
File: mysql-bin.
Position:
Binlog_Do_DB: mydb
Binlog_Ignore_DB: mysql,information_schema,performance_schema,test
row in set (0.00 sec)

开启同步

在从服务器执行如下命令开启同步并重启mysql

mysql> CHANGE MASTER TO
    MASTER_HOST='192.168.0.41',
    MASTER_USER='backup',
    MASTER_PASSWORD='',
    MASTER_LOG_FILE='mysql-bin.000001',
    MASTER_LOG_POS=;

注:开启同步时,默认主从服务器初态一样

验证同步

在从服务器执行如下命令验证同步

mysql> show slave status\G
*************************** . row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.0.41
Master_User: cifang
Master_Port:
Connect_Retry:
Master_Log_File: mysql-bin.
Read_Master_Log_Pos:
Relay_Log_File: mysql-relay-bin.
Relay_Log_Pos:
Relay_Master_Log_File: mysql-bin.
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB: mydb
Replicate_Ignore_DB: mysql,information_schema,performance_schema,test
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno:
Last_Error:
Skip_Counter:
Exec_Master_Log_Pos:
Relay_Log_Space:
Until_Condition: None
Until_Log_File:
Until_Log_Pos:
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master:
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno:
Last_IO_Error:
Last_SQL_Errno:
Last_SQL_Error:
row in set (0.00 sec)

Master_Log_File: 主服务器上的日志文件名

Read_Master_Log_Pos: 主服务器的日志记录位置

Slave_IO_Running: 主从服务器连接线程状态

Slave_SQL_Running:从服务器执行sql的线程

注:如果主从服务器的日志文件名和记录位置一致,且两个状态都为Yes,表示主从备份正常。

其他

查找当前有哪些二进制日志文件:

mysql> show binary logs;

删除mysql-bin.000001之前的所有二进制日志文件

mysql> purge binary logs to 'mysql-bin.000001';
Query OK, rows affected (0.08 sec)

查看最前的二进制日志文件内容

show binlog events;

注:通过以上命令可以找到主从断开的位置,以便重新关联

Mysql 主从热备份的更多相关文章

  1. MySQL 主从热备份(读写分离)

    MySQL的主从备份,听个名词很高大上,其实都是MySQL原本就实现的了,你只需要简单配置一下就可以实现. 第一步:保持主从两个数据库是同步的,最好事先手动同步一下: 第二步:停止两个数据库,分别更改 ...

  2. 学一点 MYSQL 双机异地热备份—-MYSQL主从,主主备份原理及实践

    简单介绍mysql双机,多机异地热备简单原理实战. 双机热备的概念简单说一下,就是要保持两个数据库的状态自动同步.对任何一个数据库的操作都自动应用到另外一个数据库,始终保持两个数据库数据一致. 这样做 ...

  3. 学一点 mysql 双机异地热备份----快速理解mysql主从,主主备份原理及实践

    双机热备的概念简单说一下,就是要保持两个数据库的状态 自动同步.对任何一个数据库的操作都自动应用到另外一个数据库,始终保持两个数据库数据一致. 这样做的好处多. 1. 可以做灾备,其中一个坏了可以切换 ...

  4. MySQL双机热备份

    系统: CentOS release 6.6 (Final) MySQL: mysql  Ver 14.14 Distrib 5.1.73, for redhat-linux-gnu (x86_64) ...

  5. Mysql的热备份[转载]

    学一点 mysql 双机异地热备份----快速理解mysql主从,主主备份原理及实践 双机热备的概念简单说一下,就是要保持两个数据库的状态自动同步.对任何一个数据库的操作都自动应用到另外一个数据库,始 ...

  6. Mysql主从备份、主主备份

    简单介绍mysql双机,多机异地热备简单原理实战. 双机热备的概念简单说一下,就是要保持两个数据库的状态自动同步.对任何一个数据库的操作都自动应用到另外一个数据库,始终保持两个数据库数据一致. 这样做 ...

  7. 在 CentOS7 上部署 MySQL 主从

    在 CentOS7 上部署 MySQL 主从 通过 SecureCRT 连接至 MySQL 主服务器: 找到 my.cnf 文件所在的目录: mysql --help | grep my.cnf 一般 ...

  8. 高性能Mysql主从架构的复制原理及配置详解

    温习<高性能MySQL>的复制篇. 1 复制概述 Mysql内建的复制功能是构建大型,高性能应用程序的基础.将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台 ...

  9. MySQL主从同步

    脚本 [root@test scripts]# cat ss.sh #!/bin/bash . /etc/init.d/functions MYUSER=root MYPASS=c565f972 SO ...

随机推荐

  1. GO语言面向对象

    当初开发go语言的时候就是因为C++的特性太过于繁杂,从而使得很多C++的开发者因为C++的特性而头疼,go语言成功的精简了C++的特性,使其很简洁,很少的特性,却可以完成很多的事情. go语言中并没 ...

  2. Visual Studio Code 1.0发布,支持中文在内9种语言

    Visual Studio Code 1.0发布,支持中文在内的9种语言:Simplified Chinese, Traditional Chinese, French, German, Italia ...

  3. LINQ to SQL语句(16)之对象标识

    对象标识 运行库中的对象具有唯一标识.引用同一对象的两个变量实际上是引用此对象的同一实例.你更改一个变量后,可以通过另一个变量看到这些更改. 关系数据库表中的行不具有唯一标识.由于每一行都具有唯一的主 ...

  4. 使用SignalR实现即时通讯功能

    教程简介 SignalR的好处是可以让多个客户端之间进行互动,比如这篇教程就展示了当你在页面上拖动矩形方块的同时,其它打开这个页面的用户也将会看到你拖动的轨迹以及最终的结果,当然他们也可以通过拖动该方 ...

  5. 基于CkEditor实现.net在线开发之路(6)vs开发工具配合一起开发

    上一章讲解了利用CKEditor实现了一个简单的列表功能的查询,CKEditor编辑器是由js实现的,js是一门非常强大的语法,但是要用它实现Vs开发工具那样强大编辑器的功能,估计不可能,这就使得CK ...

  6. MySQL练习2

    学习MySQL过程中做的练习题,感觉是不错的例子就记录下来. 练习要使用到的表: 表一:员工表–> yg y_id y_name y_sex y_age y_address b_id 1 赵老大 ...

  7. php实现设计模式之 抽象工厂模式

    <?php /*抽象工厂模式:提供一个创建一系统相关或相互依赖对象的接口,而无需指定它们具体的类 * 创建型模式 */ //抽象小米工厂,能制造小米一,小米二 abstract class mi ...

  8. C#综合揭秘——通过修改注册表建立Windows自定义协议

    引言 本文主要介绍注册表的概念与其相关根项的功能,以及浏览器如何通过连接调用自定义协议并与客户端进行数据通信.文中讲及如何通过C#程序.手动修改.安装项目等不同方式对注册表进行修改.其中通过安装项目对 ...

  9. 从CSS实现正片叠底看=>混合模式mix-blend-mode

    兼容性:这个东西说多了也没意思,像HTML5和CSS3这种兼容性时刻变化的东东,我们最好在自己支持的设备上实验,不支持,就在想办法呗,这个东西就是为了方便和好玩 所有属性: mix-blend-mod ...

  10. Bootstrap之样式风格与下拉菜单

    背景颜色 bg-primary 字体颜色 text-primary 文字居中 text-center 按钮 btn btn-primary btn-default默认 btn-link链接 按钮大小 ...