开门见山,首先,主服务器的mysql版本不能高于从服务器的版本 ,可以是一样的,其次端口号必须统一。

好了,现在开始配置双机热备(随后将会提到循环备份以及互备)我使用的版本为redhat5.4两台ip为192.168.1.10、192.168.0.11,备份数据库为test。

热备中数据库分类:master主数据库、slave从数据库

一、两台mysql均可以在本地登录,并设定好密码,打开防火墙3306端口否则,无法进行通讯。

vi /etc/sysconfig/iptables

#在里面添加3306端口

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

:wq

二、在主数据库中添加用于备份的账号

mysql> GRANT REPLICATION SLAVE ON *.* #注意 这里是星号

-> TO "backupUser"@"IP" IDENTIFIED BY "password";

backupUser填写建立的用户名,IP为从服务器IP,password就不用说了吧~

三、修改主服务器的my.cnf在配置文件中添加

server-id=1 #数据库id,默认1

log-bin=log-bin #日志文件的名称,这里可以制定日志到别的目录 如果没有设置则默认主机名的一个日志名称

binlog-do-db=db_name #记录日志的数据库 ,可选

binlog-ignore-db=mysql #不记录日志的数据库 可选

log-bin是mysql产生的二进制日志,热备份就是读取二进制日志使数据得到时时同步,建议在binlog-ignore中添加mysql这个库,因为在我测试中这个库也被同步过来了,所以...你懂得

四、重启服务器载入新配置文件

进入数据库

mysql -uroot -p

password:锁定数据库

mysql> FLUSH TABLES WITH READ LOCK;备份所需要的数据表

mysqldump -uroot -ppassword test > /home/backup/mysql/test.sql

#如果有多个就备份多个

锁定数据库是为了准备记录二进制日志的记录点,否则会在从机配置的时候不能正常读取二进制日志

查看在锁定数据库时二进制日志的记录点

mysql> show master status;

+----------------+----------+--------------+------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+----------------+----------+--------------+------------------+

| bin_log.000001 | 805 | | |

+----------------+----------+--------------+------------------+

1 row in set (0.00 sec)

用笔记录二进制日志名称、以及pos点  bin-log.000001、805

解锁数据表

mysql> UNLOCK TABLES;

下载备份sql然后上传到从机上去

五、首先修改从机mysql配置文件

vi /etc/my.cnf

#添加代码

server-id=2 //设置数据库id,可以随便设置。但不能重复

master-host=192.168.1.10 //主服务器的IP地址或者域名

master-port=3306 //主数据库的端口号

master-user=backup //同步数据库的用户

master-password=********* //同步数据库的密码

master-connect-retry=60 //如果从服务器发现主服务器断掉,重新连接的时间差

master-retry-count = 999 //尝试连接次数

replicate-do-db=database//表示同步的数据库如多个,请重复添加

binlog-ignore-db=mysql//不同步mysql数据库

设定好上述参数后重启从机mysql

六、进入从机mysql、停止slave(slave开机自动启动)

mysql> slave stop;更新master信息(之前配置文件中是基础数据,此处是详细配置包括后期更改master信息也可以在mysql>中进行更新,但是端口变更要修改配置文件)

mysql> change master to               #进入修改master                                 -> master_host='192.168.1.10',         #定义master地址

-> master_user='backup',               #定义备份时使用的用户

-> master_password=’password‘,         #定义备份用户的密码

-> master_log_file='bin_log.000001',   #指定从机数据在master中的二进制日志名称    -> master_log_pos=805;                 #指定从机数据在master中的二进制日志记录点Query OK, 0 rows affected (0.01 sec)更新完成,启动slave

mysql> slave start;

查看slave的运行状态

mysql> show slave status\G;

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: 192.168.38.7

Master_User: backup

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: bin_log.000001

Read_Master_Log_Pos: 53229

Relay_Log_File: localhost-relay-bin.000002

Relay_Log_Pos: 52665

Relay_Master_Log_File: bin_log.000001

Slave_IO_Running: Yes                可以看到此处两个yes代表主从已经开始运行

Slave_SQL_Running: Yes                可以做个数据测试了

Replicate_Do_DB:

Replicate_Ignore_DB:

Replicate_Do_Table:

Replicate_Ignore_Table:

Replicate_Wild_Do_Table:

Replicate_Wild_Ignore_Table:

Last_Errno: 0

Last_Error:

Skip_Counter: 0

Exec_Master_Log_Pos: 53229

Relay_Log_Space: 52824

Until_Condition: None

Until_Log_File:

Until_Log_Pos: 0

Master_SSL_Allowed: No

Master_SSL_CA_File:

Master_SSL_CA_Path:

Master_SSL_Cert:

Master_SSL_Cipher:

Master_SSL_Key:

Seconds_Behind_Master: 0

Master_SSL_Verify_Server_Cert: No

Last_IO_Errno: 0

Last_IO_Error:

Last_SQL_Errno: 0

Last_SQL_Error:

1 row in set (0.00 sec)

IO和SQL均为yes则表示连同,那么可以去测试了,到此双机热备结束。

下面简单介绍双机互备与循环备份的原理

Mysql双机互备(在完成以上的基础不要做数据库进行操作,不要对主进行读写)

原理讲解:如果slave端按照上面配置文件中进行添加那么,默认不开启二进制日志(bin-log)那么他将不产生二进制日志,也就是说slave会一直读取master的二进制日志来更新自己。那么我们就要让slave自己也产生二进制日志。

在slave端的my.cnf添加“bin-log = ”,添加完以后我们可以重启从机然后用

mysql> show master status;  #查看slave端自己的master日志

然后再master的上面,进行master change to这个操作,信息都是填slave上的信息,master_log_pos是刚才查看的。

另外,如果在生产机中做双机互备,需要进行锁表,并提前做好备份,以防止数据的丢失。

在生产机当中,分两种情况

1:已经有了主从模式的情况,就需要先对主进行锁表,然后再修改slave的my.cof(添加日志功能),查看slave端的日志pos点(show master status;),然后再主上面做master change to 的操作  ,然后重启mysql即可

2:没有做主从模式的情况,第一步是先做主从,但是主的表在看完日志pos后不要解锁,一直锁着,直到从做好,然后在做从到主,最后在解锁。

适用于A↔B   A→B→C(此方法还需要自己测试,然后应用到生产机)

如有问题请留言

mysql 双机备份_mysql双机热备详解及延伸备份相关推荐

  1. Nginx 反向代理、负载均衡、页面缓存、URL重写、读写分离及简单双机热备详解...

    大纲 一.前言 二.环境准备 三.安装与配置Nginx  (windows下nginx安装.配置与使用) 四.Nginx之反向代理 五.Nginx之负载均衡  (负载均衡算法:nginx负载算法 up ...

  2. mysql source 数据库_MySQL 数据库 source 命令详解及实例

    MySQL 数据库 source 命令详解及实例 MySQL 数据库 source 命令,该命令是数据库导入命令.source 命令的用法非常简单,首先你需要进入 MySQL 数据库的命令行管理界面, ...

  3. mysql decimal 类型_MySQL数据类型DECIMAL用法详解

    MySQLDECIMAL数据类型用于在数据库中存储精确的数值.我们经常将DECIMAL数据类型用于保留准确精确度的列,例如会计系统中的货币数据. 要定义数据类型为DECIMAL的列,请使用以下语法: ...

  4. explain mysql怎么用_mysql中explain用法详解

    EXPLAIN用于SELECT语句中的每个表返回一行信息.表以它们在处理查询过程中将被MySQL读入的顺序被列出 如果在select语句前放上关键词explain,mysql将解释它如何处理selec ...

  5. mysql配置文件完全_MySQL配置文件my.cnf详解

    以下是Mysql数据库服务器配置文件/etc/my.cnf的详细配置.应用场合是InnoDB引擎,4核CPU, 32位SUSE. [client] port= 3306 socket= /tmp/my ...

  6. mysql数据库导出_MySQL数据库导入导出详解[转发]

    1. 概述 MySQL数据库的导入,有两种方法: 1) 先导出数据库SQL脚本,再导入: 2) 直接拷贝数据库目录和文件. 在不同操作系统或MySQL版本情况下,直接拷贝文件的方法可能会有不兼容的情况 ...

  7. mysql 字符串解析_MySQL 动态字符串处理详解

    MySQL中,常常会看到一些关于动态字符串的处理,列如:DYNAMIC_STRING. 为了记录动态字符串的实际长度,缓冲区的最大长度,以及每次字符串需要调整时,及时分配新的内存,以及调整长度.MyS ...

  8. mysql事务实战_mysql事务隔离级别详解和实战

    A事务做了操作 没有提交 对B事务来说 就等于没做 获取的都是之前的数据 但是 在A事务中查询的话 查到的都是操作之后的数据 没有提交的数据只有自己看得到,并没有update到数据库. 查看InnoD ...

  9. php mysql 查询缓存_mysql 查询缓存使用详解

    MySQL server 有一个重要的特征:查询缓存(Query Cache). 当在使用中,查询缓存会存储一个 SELECT 查询的文本与被传送到客 户端的相应结果.如果之后接收到一个同样的查询,服 ...

最新文章

  1. 软件疑难杂症解决办法汇总
  2. 致远M1移动协同软件
  3. python gis 经纬度 库_入门-Python-GIS坐标转换
  4. python draw.text颜色_python wand:用draw.text()改变文本样式
  5. 开源声码器WORLD在语音合成中的应用
  6. Oracle以SQL方式导出导入(转移)数据
  7. 基于JAVA+SpringMVC+Mybatis+MYSQL的宠物医院管理系统
  8. RocketMQ 部署不当导致磁盘空间不释放
  9. android rtorrent 编译,rtorrent交叉编译
  10. 以逗号分隔的正则表达式_再见,正则表达式
  11. 装饰模式实例+java,java 中设计模式(装饰设计模式)的实例详解
  12. UE4开发笔记1——UE4(虚幻4)引擎下载与安装
  13. 昆明理工大学计算机考研分数线,昆明理工大学2015考研分数线已公布
  14. 小米组织架构调整成立技术委员会 强化技术引领 增强互联网成色
  15. 【NOIP 2018 提高组】填数游戏
  16. 力扣启蒙 - 开启算法的世界
  17. 嵌入式arm板linux路由表设置
  18. Unity鼠标图标更换/点击图标更换
  19. 羌笛声声胡笳怨,此心长寄天涯远
  20. AtCoder ABC 250 总结

热门文章

  1. delphi idtcpclient和idtcpserver的心跳包
  2. jmeter报告分析工具
  3. [asp.net] 验证控件的属性及用法
  4. 解决FlexPaper分页分段加载问题(转)
  5. Ubuntu 11.10 make menuconfig 失败的解决方法
  6. data.length 提示undefined 问题解决
  7. 内容推荐策略产品经理的方法和实践
  8. 【报告分享】2021企业营销数字化转型研究报告.pdf(附下载链接)
  9. 如何构建一个生产环境的推荐系统?(附代码)
  10. 159挑战 | 1:59:40,基普乔格打开人类新时代!