`
ducaijun
  • 浏览: 156797 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

mysql数据库双向同步

阅读更多

项目申请了两台数据库服务器,为了保持数据同步,就搞了个数据同步,以此文记录以备后续使用:

 

首先声明:

服务器操作系统都是CentOS6.1、mysql版本号一致,为了减少出现其他问题的可能性,故做此环境搭配。

数据库服务器A,ip地址:192.168.6.108

数据库服务器B,ip地址:192.168.6.200

 

当然 首先要备份一台数据最新的数据库,然后等设置同步完毕之后都还原成相同的数据!

 

先做B同步A数据库的数据功能:

暂时称A为主机Master、B为从机Slave

 

A主机Master

 

1、修改mysql数据库conf文件,修改/etc/my.conf

 

# Replication Master Server (default)

# binary logging is required for replication

之后增加

 

 

server-id       = 1            #自带就有的话就不用添加 看一下my.conf上下文
binlog-do-db=mydb_name #需要同步的数据库名称
binlog-ignore-db=mysql    #需要忽略的数据库名

 

 

2、重启mysql

(CentOS是serice mysqld restart 其他系统的自行重启 若不知请谷歌、度娘) 

 

3、创建一个MySQL帐号为同步专用

用root用户登陆mysql

 

mysql> grant replication slave,reload,super on *.* to backup@192.168.5.200 identified by 'backup';

mysql> flush privileges;

 

 

ps:我这里是创建了一个backup用户密码也是backup的mysql数据库用户,用于同步。@后面指定该账户允许远程登录的ip,也就是B从机的ip地址

 

 

B从机Slave

 

1、同样的修改mysql数据库conf文件,修改/etc/my.conf

 

# Replication Master Server (default)

# binary logging is required for replication

之后增加

 

 

server-id       = 2		        #自带就有的话就不用添加 看一下my.conf上下文
master-host=192.168.5.108	#此处是需要备份的主机ip 这里填的是A主机的ip
master-user=backup		#此处是备份的账号
master-password=backup      #此处是备份账号的密码
master-port=3306		#数据库端口号 没改就填默认的3306
replicate-ignore-db=mysql	#需要忽略的数据库名
replicate-do-db=mydb_name  #需要同步的数据库名称

 

 

 

启动同步

 

在主服务器A上,mysql命令下(root用户登陆mysq)

mysql> show master status;

 

eg:

+一一一一一一一一一一+一一一一一一+一一一一一一一一+一一一一一一一一一一+

| File                     | Position     | Binlog_Do_DB   | Binlog_Ignore_DB  |

+一一一一一一一一一一+一一一一一一+一一一一一一一一+一一一一一一一一一一+

| mysql-bin.000012  |      106    | mydb_name     | mysql                  |

+一一一一一一一一一一+一一一一一一+一一一一一一一一+一一一一一一一一一一+

 

 

 

从服务器B上,mysql命令下(同样用root用户登陆mysq)

mysql> slave stop;

mysql> change master to master_log_file='mysql-bin.000012',master_log_pos=106;

mysql> slave start;

 

ps:

     master_log_file就是在主服务器mysql下show master status;显示的File列的值

     master_log_pos就是在主服务器mysql下show master status;显示的Position列的值

 

还是在从服务器B的mysql命令下

 

用show slave status \G;看一下从服务器的同步情况

 

mysql>show slave status \G;

 

有如下两项的值都是YES就表示已经在同步

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

 

 

否则就是同步失败,当然了,失败的原因有N种,自己慢慢谷歌、度娘,这里只把我自己的操作步骤记录。

 

 

设置MySQL双向同步

 

 

 

其实设置双向同步就是把上面的步骤重复一下,只是A和B服务器的操作反过来,A变成从服务器、B变成主服务器!

 

1、修改B服务器的my.conf,添加

 

 

binlog-do-db=mydb_name #需要同步的数据库名称
binlog-ignore-db=mysql    #需要忽略的数据库名

 

 

2、重启B服务器的mysql (service mysqld restart)

 

3、登陆mysql,

mysql> grant replication slave,reload,super on *.* to backup@192.168.5.108 identified by 'backup';

mysql> flush privileges;

 

ps:创建一个backup用户,密码也是backup的mysql数据库用户,用于同步。@后面指定该账户允许远程登录的ip,也就是A从机的ip地址。

 

 

4、修改A服务器的my.cnf,添加

 

 

 

master-host=192.168.5.200	#此处是需要备份的主机ip 这里填的是A主机的ip
master-user=backup		#此处是备份的账号
master-password=backup      #此处是备份账号的密码
master-port=3306		#数据库端口号 没改就填默认的3306
replicate-ignore-db=mysql	#需要忽略的数据库名
replicate-do-db=mydb_name  #需要同步的数据库名称

 

 

5、重启A服务器的mysql(service mysqld restart)

 

6、在主服务器B MySQL命令符下:

mysql> show master status;

eg:

+一一一一一一一一一一+一一一一一一+一一一一一一一一+一一一一一一一一一一+

 

| File                     | Position     | Binlog_Do_DB   | Binlog_Ignore_DB  |

+一一一一一一一一一一+一一一一一一+一一一一一一一一+一一一一一一一一一一+

mysql-bin.000014  |      188     | mydb_name     | mysql                  |

+一一一一一一一一一一+一一一一一一+一一一一一一一一+一一一一一一一一一一+

 

7、在服务器A MySQL命令符下:

 

mysql> slave stop;

mysql> change master to master_log_file='mysql-bin.000014',master_log_pos=188;

mysql> slave start;

 

 

8、还是在从服务器A的mysql命令下

用show slave status \G;看一下从服务器的同步情况

 

mysql>show slave status \G;

 

有如下两项的值都是YES就表示已经在同步

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

 

然后还原数据至最新数据库!

至此 双向同步配置完毕!

 

ps:因为是基于操作日志备份,所以设置同步前请把数据库先备份,然后用用一份备份还原数据库,之后数据就可以保持一致!

 

 

 

 

分享到:
评论

相关推荐

    Mysql5.5数据库双向同步

    根据给定的文件信息,“Mysql5.5数据库双向同步”这一主题深入探讨了如何在两个MySQL 5.5服务器之间建立稳定的数据同步机制,确保数据的一致性和高可用性。以下是对该知识点的详细解析: ### 一、理解MySQL双向同步...

    Mysql数据库单双向同步

    MySQL数据库的单双向同步是数据库高可用性和容灾恢复策略中的一个重要组成部分,它允许数据在多个服务器之间实时或近实时地复制,确保数据的一致性和可用性。在Linux环境下,MySQL 5的复制功能提供了这一可能性,...

    mysql同步,双向同步

    MySQL双向同步配置详解 MySQL同步是指将多个数据库服务器之间的数据保持实时同步的过程。这种技术可以应用于分布式系统、数据备份、灾难恢复等场景。在这个资源中,我们将详细介绍如何配置 MySQL 双向同步。 MySQL...

    mysql5.7双向实时同步

    在配置MySQL 5.7的双向同步之前,需要注意以下关键点: 1. **版本匹配**:确保所有参与同步的MySQL服务器都运行相同版本的MySQL,以减少因版本差异导致的兼容性问题。 2. **初始数据一致性**:在开始同步前,确保...

    Mysql异地多活数据双向同步-CloudCanal实战.doc

    Mysql 异地多活数据双向同步-CloudCanal 实战 本文主要介绍了使用 CloudCanal 实现 Mysql 异地多活数据双向同步的实战方案。异地多活是一项系统性工作,包含 web 层、应用服务层、数据层的流量分配和同步。数据层的...

    sqlserver与mysql数据库同步

    本主题将深入探讨如何实现SQL Server与MySQL数据库之间的数据同步,这对于确保数据一致性、实时性以及跨平台的数据交换具有重大意义。 首先,我们需要了解SQL Server和MySQL是两种不同类型的数据库管理系统。SQL ...

    两台服务器实现mysql的双向同步

    为了提高系统的可靠性和容错能力,很多企业选择使用MySQL数据库的双向同步机制来构建主备服务器架构。本文将详细介绍如何在两台服务器之间实现MySQL的双向同步,并通过具体步骤来帮助读者理解这一过程。 #### 核心...

    Mysql两个数据库表之间双向数据同步方案.docx

    假设我们有两个MySQL数据库实例,分别位于两台不同的服务器上(A机与B机)。为了方便说明,这里使用相同的数据库名称和表名,但实际上在实际应用中可以根据具体需求进行调整。 - A机:MySQL数据库名为`test`,表名...

    mysql 数据库的同步问题(双机热备).docx

    总之,MySQL数据库的同步和双机热备是保证高可用性和数据安全的重要手段,理解其工作原理和配置过程对于维护大型数据库系统至关重要。通过正确配置和管理复制,可以构建强大的数据库集群,提供可靠的服务。

    sqlserver、mysql数据库同步备份工具

    2. **双向同步**:不仅支持从 `SQL Server` 到 `MySQL` 的数据迁移,也支持反向操作,确保双数据库系统的数据都能及时更新。 3. **冲突解决**:在同步过程中可能出现的冲突,工具会提供策略来自动或手动解决。 4. **...

    MySQL数据库双活同步复制方案详解.docx

    MySQL数据库双活同步复制方案是为了实现数据库的高可用性和数据一致性,主要分为几种常见的方法,包括MySQL原生复制主主同步、Galera replication、Group Replication以及第三方工具如canal。 1. MySQL原生复制主主...

    mysql数据库的同步问题(双机热备)文.pdf

    MySQL数据库的同步问题,尤其是双机热备,是确保数据高可用性和连续性的关键策略。在MySQL中,这种同步被称为复制(Replication),而非同步(Sync),这是因为复制涉及到主服务器(Master)上的所有更改被重新执行...

    MySQL数据库双活同步复制方案详解.pdf

    它与otter配合,可以实现MySQL数据库间的双向同步。Canal模拟MySQL slave的行为,与master进行交互,接收并解析二进制日志事件,然后将这些事件应用到目标数据库。MySQL的主从复制过程包括master记录改变到二进制...

    windows下mysql双向同步

    在Windows环境下,MySQL数据库的双向同步配置是一项关键任务,它确保了两台服务器上的数据库能够实时更新对方的改动,维持数据一致性。以下是如何在Windows下的MySQL服务器A和B之间设置双向同步的详细步骤: 首先,...

    mysql双向同步终极秘籍

    ### MySQL双向主主同步终极秘籍 在当前的IT环境中,数据的一致性和可靠性变得尤为重要。MySQL作为一种广泛使用的开源关系型数据库系统,在企业级应用中扮演着重要角色。本文将详细介绍如何实现MySQL的双向主主同步...

    剖析MySQL数据库间实现同步.pdf

    如果需要双向同步,可能需要更复杂的设置,如多主复制或多级复制。 在实际应用中,数据库同步可能会涉及到性能影响,因此需要合理调整参数,如`master-connect-retry`(重试连接间隔)、`replicate-do-db`(只同步...

    数据库双向同步复制

    数据库双向同步复制是一种确保数据在两个数据库之间保持一致性的技术,尤其在分布式系统中非常关键。这种场景的主要目标是保证数据完整性、一致性和避免冲突。当两个数据库都可以进行读写操作,即双主双写模式时,...

    mysql数据库同步

    2. **多主复制**:在某些情况下,可能需要双向同步,即多个数据库都可以进行写操作,然后相互复制更改。这通常需要更复杂的配置和冲突解决策略。 3. **组复制**:MySQL Group Replication是一种高级同步技术,它...

    MySQL主主双向同步测试报告.pdf

    MySQL主主双向同步是一种高可用性和高冗余性的数据库部署模式,它允许两台MySQL服务器互相作为主服务器和从服务器,实现数据的实时双向同步。这样,任何一台服务器上的数据更改都会被复制到另一台服务器上,提高了...

Global site tag (gtag.js) - Google Analytics