工作原理

首先锁定并备份主服务器数据库,从服务器导入备份的数据库,实现两个数据库的初态一样。然后把主服务器上执行过的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. [Asp.net 5] Localization-简单易用的本地化

    本地化也叫国际化,就是做多语言程序时,可以一键式将当前语言切换到另外一种语言.对于跨国企业或者和国外有业务往来的公司特别重要:就算一个普通公司的门户如果支持中.英.繁体,也会让人觉得高大上.有没有呀, ...

  2. .NET Task揭秘(一)

    Task为.NET提供了基于任务的异步模式,它不是线程,它运行在线程池的线程上.本着开源的精神, 本文以解读基于.NET4.5 Task源码的方式来揭秘Task的实现原理.   Task的创建 Tas ...

  3. 关于大数据企业信息查询的API该怎么写

    最近在看API相关的案例,做的是.net开发的工作 对API开发这块很是迷茫,不知道从哪入手,园子里面的朋友有没有研究这块的给点建议 公司目前准备做一款企业数据查询的网站,让我负责API接口这块,基于 ...

  4. Tomcat指定的服务已存在

    解压Tomcat8.0后,运行service.bat install,结果安装未成功,进入logs文件夹,查看错误日志,提示: 指定的服务已存在. Failed to install service ...

  5. PHP正则表达式

    1.PHP中两个常用的正则函数 a.preg_match 正则函数,以perl语言为基础 语法:preg_match( mode,string subject,array matches) 说明:mo ...

  6. Servlet转码问题

    HttpServletRequest获取页面数据 提交表单时,Servlet直接从页面通过HttpServletRequest对象的getParameter(String arg0)获取参数时 默认编 ...

  7. ajax大全

    简介 对于WEB应用程序:用户浏览器发送请求,服务器接收并处理请求,然后返回结果,往往返回就是字符串(HTML),浏览器将字符串(HTML)渲染并显示浏览器上. 传统的web应用简单的操作需要加载全局 ...

  8. [转]使用Jenkins搭建持续集成(CI)环境

    转自:魔のkyo的工作室 首先从官网http://jenkins-ci.org/下载 Java Web Archive (.war) 例如我保存到 D:\jenkins\jenkins.war 运行J ...

  9. JavaScript 变量声明提前

    <JavaScript权威指南>中指出:JavaScript变量在声明之前已经可用,JavaScript的这个特性被非正式的称为声明提前(hoisting),即JavaScript函数中声 ...

  10. JAVA模板方法设计模式(从现实生活角度理解代码原理)

    概述: 定义一个功能的框架(骨架),一部分功能是确定的,一部分功能是不确定的,先把确定的部分实现,把不确定的部分延迟到子类中实现. 实现该模式的关键步骤: 第一步:抽象类,实现模板方法,定义功能(确定 ...