MySQL数据库双机热备------主-主备份配置
MySQL数据库双机热备------主-主备份配置
实验环境:
主1数据库 192.168.1.1 centos6.5 x86_64 +MySQL5.5.35
主2数据库192.168.1.2 WindowsXP x64 +MySQL5.5.13
一、安装数据库
1.在centos6.5 x86_64 上面安装MySQL5.5.35数据库,下载rpm包的形式安装,在MySQL的官网上面下载。
MySQL-client-5.5.35-1.el6.x86_64.rpm
MySQL-server-5.5.35-1.el6.x86_64.rpm
2.WindowsXP x64 上面安装MySQL5.5.13,软件在网上获取。
二、两个数据库都修改root密码,并且开启远程访问权限。
1.# mysqladmin -u root -ppassword newpassword
Windows上面的是在dos下面进入到C:\Program Files\MySQL\MySQL Server 5.5\bin目录然后执行上面的命令。
2.mysql> grant all privileges on *.* to root@'% 'identified by 'newpassword';
mysql>flush privileges;
修改好之后,相互远程测试一下看是否能够相互远程。
三、主1数据库配置
1.添加同步账号
登陆mysql操作界面,在主1服务器上为主2服务器建立一个用来同步的连接帐户,该帐户必须授予REPLICATION SLAVE权限。因为从mysql版本3.2以后就可以通过REPLICATION对其进行双机热备的功能操作。
操作指令如下:
mysql> grant replication slave on*.* to bak@'192.168.1.2' identified by 'bak';
mysql> flush privileges;
2.测试同步账号的连接性
创建好同步连接帐户后,我们可以通过在主2服务器上用bak帐户对主1服务器数据库进行访问,看下是否能连接成功。主2上输入如下指令:
# mysql –h192.168.1.1 –u bak –p 回车之后要求输入密码,密码为bak,如果登陆成功,则可以继续进行双击热备,否则请找到问题并解决。
3.修改配置文件
修改配置文件/etc/my.cnf 打开在[mysqld]下修改即可:
[mysqld]
server-id= 1
log-bin=mysql-bin #启用日志文件
binlog-do-db= test #需要同步的数据库
binlog-ignore-db= mysql #不需要同步的数据库
log-slave-updates
sync_binlog= 1
auto_increment_offset= 1
auto_increment_increment= 2
replicate-do-db= test
replicate-ignore-db= mysql,information_schema
修改完配置文件后,保存后,重启一下mysql服务,如果成功则没问题。
4.查看主服务器 mysql的状态文件
#servicemysql restart
登陆mysql 输入命令:
mysql>flush tables whit read lock; 锁表以便在同步之前写数据进去。
mysql>show master status\G
***************************1. row ***************************
File: mysql-bin.000003
Position: 107
Binlog_Do_DB: test
Binlog_Ignore_DB:mysql
1row in set (0.00 sec)
注意看里面的参数,特别前面两个File和Position,在从服务(Slave)配置主-主关系会有用到的。
注:这里使用了锁表,目的是为了产生环境中不让进新的数据,好让从服务器定位同步位置,初次同步完成后,记得解锁。
mysql>unlock tables;
QueryOK, 0 rows affected (0.00 sec)
四、主2数据库配置
1.添加同步账户
登陆mysql操作界面,在主2服务器上为主1服务器建立一个用来同步的连接帐户,该帐户必须授予REPLICATION SLAVE权限。因为从mysql版本3.2以后就可以通过REPLICATION对其进行双机热备的功能操作。
操作指令如下:
mysql> grant replication slave on*.* to bak@'192.168.1.1' identified by 'bak';
mysql> flush privileges;
2.测试同步账户的连接性
创建好同步连接帐户后,我们可以通过在从服务器(Slave)上用bak帐户对主服务器(Master)数据库进行访问,看下是否能连接成功。在从服务器(Slave)上输入如下指令:
# mysql –h192.168.1.2 –u bak –p 回车之后要求输入密码,密码为bak,如果登陆成功,则可以继续进行双击热备,否则请找到问题并解决。
3.修改配置文件
修改配置文件 C:\ProgramFiles\MySQL\MySQL Server 5.5 中的my.ini
[mysqld]
server-id = 2
log-bin=mysql-bin
replicate-do-db = test
replicate-ignore-db =mysql,information_schema,performance_schema
binlog-do-db = test
binlog-ignore-db = mysql
log-slave-updates
sync_binlog = 1
auto_increment_offset = 2
auto_increment_increment = 2
修改完之后,重启windows上的mysql的服务。
Netmysql restart 也可以手工去服务里面找到mysql重启。
4.查看主2 mysql服务器的状态文件
登陆mysql 输入命令:
mysql>flush tables whit read lock; 锁表以便在同步之前写数据进去。
mysql>show master status\G
***************************1. row ***************************
File: mysql-bin.000004
Position: 536
Binlog_Do_DB: test
Binlog_Ignore_DB:mysql
1row in set (0.00 sec)
五、利用change master 语句指定同步位置
1.指定主1的同步源
主1的同步源为主2 mysql服务器。
在主1服务器上面操作,这步是最关键的一步了,在进入mysql操作界面后,输入如下指令:
mysql>stopslave; //先停步slave服务线程,这个是很重要的,如果不这样做会造成以下操作不成功。
mysql>change master to
>master_host='192.168.1.2',master_user='bak',master_password='bak',
> master_log_file='mysql-bin.000004',master_log_pos=536;
注:master_log_file,master_log_pos由主2服务器(Master)查出的状态值中确定。master_log_file对应File, master_log_pos对应Position。Mysql 5.x以上版本已经不支持在配置文件中指定主服务器相关选项。
在mysql表中查询 SHOW MASTER STATUS 查询file position

如果遇到问题不成功,则需要重新设置slave命令如下:
mysql>stop slave;
mysql>reset slave;
之后停止slave线程重新设置。成功后,则可以开启slave线程了。
mysql>start slave;
2.指定主2的同步源
主2的同步源为主1 mysql服务器。
在主2服务器上 使用changemaster语句
mysql>stopslave; //先停步slave服务线程,这个是很重要的,如果不这样做会造成以下操作不成功。
指定主机的命令,主机操作后备机更新数据
mysql>change master to
>master_host='192.168.1.1',master_user='bak',master_password='bak',
> master_log_file='ysql-bin.000003',master_log_pos=107;
注:master_log_file,master_log_pos由主服务器(Master)查出的状态值中确定。master_log_file对应File, master_log_pos对应Position。Mysql 5.x以上版本已经不支持在配置文件中指定主服务器相关选项。
六、查看同步状态
在主1服务器上查看主2服务器的状态(对于主1来说,主2就是slave;)用如下指令进行查看:
mysql> show slave status\G
*************************** 1. row***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.1.2
Master_User: bak
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000005
Read_Master_Log_Pos: 107
Relay_Log_File: CO6-relay-bin.000004
Relay_Log_Pos: 253
Relay_Master_Log_File: mysql-bin.000005
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB: test
Replicate_Ignore_DB: mysql,information_schema
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
查看下面两项值均为Yes,即表示设置从服务器成功。
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
在主2服务器上查看主1服务器的状态(对于主2来说,主1就是slave;)用如下指令进行查看:
mysql> show slave status\G
*************************** 1. row***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.1.1
Master_User: bak
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000004
Read_Master_Log_Pos: 536
Relay_Log_File: IT06-relay-bin.000004
Relay_Log_Pos: 253
Relay_Master_Log_File: mysql-bin.000004
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB: test
Replicate_Ignore_DB:mysql,information_schema,performance_schema
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: 536
Relay_Log_Space: 408
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
查看下面两项值均为Yes,即表示设置从服务器成功。
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
七、测试
在主1数据库的test库中建表写数据,查看主2数据库中是否有同步数据。再在主2数据库的test库中建表写数据,查看主1数据库中是否有同步数据。
八、结论
主—主数据库的双机热备操作比较复杂,遵循的原则是每一步必须都调试成功,否则下面就无法进行了。Mysql 5.x以上版本已经不支持在配置文件中指定主服务器相关选项。所以要使用changemaster语句,这一点很重要。
MySQL数据库双机热备------主-主备份配置的更多相关文章
- mysql5.6数据库双机热备、主从备份
主题:mysql5.6数据库双机热备.主从备份 缘由: 在Web应用系统中,数据库性能是导致系统性能瓶颈最主要的原因之一.尤其是在大规模系统中,数据库集群已经成为必备的配置之一.集群的好处主要有:查询 ...
- SQLServer 2005 数据库定阅复制实现双机热备(主要是sharepoint 内容数据库)
原文:SQLServer 2005 数据库定阅复制实现双机热备(主要是sharepoint 内容数据库) 场景 公司最近的sharepoint的数据库服务器老是出问题,并且在一旦出现问题,就导致无法正 ...
- Nginx+keepalived双机热备(主主模式)
之前已经介绍了Nginx+Keepalived双机热备的主从模式,今天在此基础上说下主主模式的配置. 由之前的配置信息可知:master机器(master-node):103.110.98.14/19 ...
- Nginx+keepalived 双机热备(主主模式)
之前已经介绍了Nginx+Keepalived双机热备的主从模式,今天在此基础上说下主主模式的配置. 由之前的配置信息可知:master机器(master-node):103.110.98.14/19 ...
- Centos7 Mysql主从双机热备的实战记录
操作系统:centos7 服务器:主:172.19.242.69 从:172.19.242.70 1. 服务器 由于Mysql不同版本之间的(二进制日志)binlog格式可能会不太一样,因此最好的 ...
- Mysql双机热备配置(超详细多图版)
一.双击热备介绍 1.基本概念 双机热备特指基于高可用系统中的两台服务器的热备(或高可用),双机高可用按工作中的切换方式分为:主-备方式(Active-Standby方式)和双主机方式(Active- ...
- Mysql双机热备--预备知识
1.双机热备 对于双机热备这一概念,我搜索了很多资料,最后,还是按照大多数资料所讲分成广义与狭义两种意义来说. 从广义上讲,就是对于重要的服务,使用两台服务器,互相备份,共同执行同一服务.当一台服务器 ...
- oracle双机热备概念
1. 双机热备概述 双机热备有两种实现模式,一种是基于共享的存储设备的方式,另一种是没有共享的存储设备的方式,一般称为纯软件方式. 基于存储共享的双机热备是双机热备的最标准方案. ...
- tomcate+keepalived配置双机热备
环境清单: 应用1:192.168.51.101 应用2:192.168.51.75 虚拟IP:192.168.51.179 一.安装Tomcat(参照其他文档): 二.部署应用,并修改响应的端口(9 ...
随机推荐
- flask处理数据,页面实时刷新展示
背景: 后端 flask(python)处理数据,页面实时刷新,类似于打包页面的动态展示,展示效果如图: 代码如下: 前端主要使用以下循环处理, 2--- 2秒刷新一次 {% if 0 == stop ...
- .net框架-字典对象 Hashtable & Dictionary<TKey,TValue> & SortedList
字典对象: 字典对象是表示键值对的集合 字典对象有Hashtable(.net 1.0)及其泛型版本Dictionary<TKey,TValue> 字典对象还包括SortedList及其泛 ...
- 使用safe-rm替换rm命令,防止误删除
1.下载safe源码包: wget https://launchpad.net/safe-rm/trunk/0.12/+download/safe-rm-0.12.tar.gz 2.解压safe-rm ...
- 自定义mvc增删改查
对t_mvc_book表的增删改查 导入jar包 BaseDao package com.hmc.util; import java.lang.reflect.Field; import java.s ...
- Win32 Error
一.Win32错误 也就是Win32子系统产生的错误.当我们在自己的代码里调用Windows系统的API函数,系统执行API内部代码,当API内部代码出现错误,会将预先定义好的错误代码写到调用这个AP ...
- 数组splay ------ luogu P3369 【模板】普通平衡树(Treap/SBT)
二次联通门 : luogu P3369 [模板]普通平衡树(Treap/SBT) #include <cstdio> #define Max 100005 #define Inline _ ...
- LibreOJ #526. 「LibreOJ β Round #4」子集
二次联通门 : LibreOJ #526. 「LibreOJ β Round #4」子集 /* LibreOJ #526. 「LibreOJ β Round #4」子集 考虑一下,若两个数奇偶性相同 ...
- 29、Java虚拟机垃圾回收调优
一.背景 如果在持久化RDD的时候,持久化了大量的数据,那么Java虚拟机的垃圾回收就可能成为一个性能瓶颈.因为Java虚拟机会定期进行垃圾回收,此时就会追踪所有的java对象, 并且在垃圾回收时,找 ...
- fuck-KUNLUN昆仑ECRS会员管理系统
写代码要认证一点,多一点测试, navigator.appName == 'Netscape'这么垃圾的代码都能写出来,握草. 怕时间就了就忘记怎么搞的了,MD经过前端各种断点,找到了这个垃圾玩意儿. ...
- AWS服务器上安全组端口设置和访问的问题
在搭建测试环境时使用AWS服务器环境,AWS EC2需要设置安全组开放端口,如果端口未进行授权则不允许访问,后台授权界面如下: 1.查看某个端口是否在AWS后台被开放,并允许访问: netstat - ...