`
snoopy7713
  • 浏览: 1149643 次
  • 性别: Icon_minigender_2
  • 来自: 火星郊区
博客专栏
Group-logo
OSGi
浏览量:0
社区版块
存档分类
最新评论

MYSQL数据同步,双向热备

阅读更多

 

1 简要介绍:mysql3.23.15 版本以后提供数据库复制功能。利用该功能可以实现两个数据库同步,主从模式(A->B) ,互相备份模式(A<=>B) 的功能。

mysql 数据库同步复制功能的设置都在mysql 的配置文件中体现。在linux 环境下的配置文件一般在/etc/mysql/my.cnf 或者在mysql 用户的home 目录下的my.cnf ,笔者的my.cnf 则在/etc/my.cnfwindows 环境下则可到mysql 安装路径下找到my.ini

 

  2 下面我们来看看如何配置数据同步(A->B)

假设数据库A 为主机(将向B 提供同步服务,即B 中的数据来自A ):

A 机器:

IP = 192.168.1.101

B 机器:

IP = 192.168.1.102

 

  (1). A 机器中有数据库如下:

 

 

//数据库A

CREATE DATABASE backup_db;

USE backup_db;

CREATE TABLE `backup_table` (

  `id` int(11) NOT NULL auto_increment,

  `name` varchar(20) character set utf8 NOT NULL,

  `sex` varchar(2) character set utf8 NOT NULL,

  PRIMARY KEY  (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1;

 

#A机器的my.cnf(或my.ini)中应该配置:

server-id=1

log-bin=c:\mysqlback #同步事件的日志记录文件

binlog-do-db=backup_db #提供数据同步服务的数据库
 

 

  (2). B 机器中有数据库如下:

 

//数据库B

CREATE DATABASE backup_db;

USE backup_db;

CREATE TABLE `backup_table` (

  `id` int(11) NOT NULL auto_increment,

  `name` varchar(20) character set utf8 NOT NULL,

  `sex` varchar(2) character set utf8 NOT NULL,

  PRIMARY KEY  (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1;

注:数据库A和B的数据库结构一定要相同,否则无法构成同步。

 

#B机器的my.cnf(或my.ini)中应该配置:

server-id=2

master-host=192.168.1.101 #主机A的地址

master-user=ym #主机A提供给B的用户,该用户中需要包括数据库backup_db的权限

master-password=ym #访问密码

master-port=3306 #端口,主机的MYSQL端口

master-connect-retry=60 #重试间隔60秒

replicate-do-db=backup_db #同步的数据库

  

  (3). 完成了以上配置之后,将Amysql 数据的权限给B

A 机器:

mysql>GRANT FILE ON *.* TO ym@'192.168.1.102' IDENTIFIEDBY ‘ym’;

 

  (4). 重启AB 数据库,后:

B 机器:

mysql>slave start;

  

查看同步配置情况

A 机器:

mysql>show master status;
 

B 机器:

mysql>show slave status;

 

(5). A 中的backup_db.backup_table 表中插入一些数据,查看B 中的backup_db.backup_table 表是否同步了数据改动。如果没有看到同步数据结果,即同步不成功,请查看错误(如下)。

当有错误产生时*.err 日志文件(可到mysql 安装目录下找),同步的线程退出。当纠正错误后重复步骤(4)

 

  3 实现双向热备(A<=>B)

将以上的(1)-(5) 步骤按A-B 双向配置即可。

 

异步复制基本原理

 

MySQL3.23.15 以后,MySQL 支持单向的异步复制。也就是说,1MySQL 服务器充当Master( 主库)1 台或多台MySQL 服务器充当Slaves( 从库) ,数据从MasterSlaves 进行异步复制。注意,这种复制是异步的,有别于MySQL 的同步复制实现(这种实现称做MySQL 集群,MySQL Cluster )。

 

当主库有更新的时候,主库会把更新操作的SQL 写入二进制日志(Bin log) ,并维护一个二进制日志文件的索引,以便于日志文件轮回(Rotate )。在从库启动异步复制的时候,从库会开启两个I/O 线程,其中一个线程连接主库,要求主库把二进制日志的变化部分传给从库,并把传回的日志写入本地磁盘。另一个线程则负责读取本地写入的二进制日志,并在本地执行,以反映出这种变化。较老的版本在复制的时候只启用一个I/O 线程,实现这两部分的功能。

 

有几个关键性的地方需要注意:

 

- 主库必须启用Bin log ,主库和从库必须有唯一的Server Id

- 从库必须清楚了解从主库的哪一个Bin log 文件的哪一个偏移位置起开始复制

- 从库可以从主库只复制指定的数据库,或者数据库的某些数据表

- 主库和从库的数据库名称可以不一样,不过还是推荐使用一样的名称

- 主库和从库的MySQL 版本需保持一致

分享到:
评论

相关推荐

    mysql双机热备同步

    MySQL 双机热备同步是指两个 MySQL 服务器之间的实时数据同步,通过配置主从关系和双向同步机制,实现数据的实时备份和热备。下面将详细介绍 MySQL 双机热备同步的配置步骤和原理。 主从关系同步 在 MySQL 中,...

    MySQL数据同步【双主热备】.docx

    MySQL 数据同步【双主热备】是指在一个MySQL集群中,两台服务器互相作为主服务器,彼此之间进行数据的实时同步,以确保数据的一致性和高可用性。这种配置常用于构建高可用性的数据库系统,避免单点故障,提高业务...

    mysql双向同步终极秘籍

    本文将详细介绍如何实现MySQL的双向主主同步,从而确保数据的高度一致性和高可用性。 #### 一、双向主主同步简介 MySQL的双向主主同步是指两个MySQL服务器之间相互作为对方的主服务器和从服务器,形成互为主从的...

    MySQL双机热备

    **MySQL双机热备**是一种通过配置使得两台MySQL服务器之间能够实时同步数据的技术方案,从而实现高可用性和故障转移的能力。该技术可以确保在一台服务器发生故障时,另一台服务器能够立即接管服务,以减少数据丢失和...

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

    MySQL 数据库的同步问题主要涉及的是双机热备(High Availability)方案,即在一个主数据库服务器(Master)和一个或多个从属服务器(Slave)之间实现数据的实时复制。这通常是为了确保数据的安全性、提高服务的可用...

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

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

    mysql+keepalived双主热备部署手册.docx

    - 在两个MySQL节点上分别配置`my.cnf`文件,实现数据的双向同步。 - 设置`server-id`来区分不同的服务器节点。 - 开启二进制日志(`log-bin`)并指定日志文件名(`mysql-bin`)。 - 忽略写入binlog的日志库(`binlog-...

    mysql热备详细说明.txt

    3. **双主复制**:在双主模式下,两个服务器互相作为对方的Slave,可以实现双向数据同步。这种方式适用于对数据一致性要求较高的场景。 #### 四、配置实例分析 接下来,我们将通过一个具体的配置示例来了解如何...

    unbuntu 10.04 LTS上配置简单双机热备方案

    MySQL 的 Master-Master Replication 是一种双主复制机制,即两个数据库节点相互作为对方的 Master 和 Slave,实现了数据的双向同步。这种方式可以确保在任何一台服务器发生故障时,另一台服务器能够立即接管其工作...

    MySQL技能测试题目

    MySQL AB复制允许两个服务器互为主从,实现双向复制。具体步骤包括: - 在每个服务器上配置***f文件,设置server-id、auto-increment设置,并开启二进制日志。 - 在每个服务器上创建复制账户,并授予REPLICATION ...

    LINUX +MYSQL双机配置

    本篇文章将详细解析如何在Linux环境下配置MySQL的双机热备,包括主从同步(M-S)以及主主同步(M-M)。 首先,我们要在主服务器(IP10.200)上进行配置。在`/etc/my.cnf`文件中,我们需要确保以下配置项正确: 1. ...

    主从同步架构设计方案PPT学习教案.pptx

    同步方案是主从架构的关键,MySQL提供了master-slave双向热备功能。主服务器的所有变更都会实时地复制到从服务器,以保证数据的一致性。配置文件/etc/my.cnf用于设置同步参数,确保实时同步。 备份方案是为了防止...

    mysql双机热备份的实现步骤

    * 在双机热备份模式下,需要在两个服务器上都设置同步用户帐号和同步数据库,以实现双向的热备。 * 在出现错误时,需要查看 *.err 日志文件,以便诊断错误原因。 通过以上步骤,可以实现 MySQL 双机热备份,确保...

    mysql面试题.docx

    23. 恢复数据:`mysql -u username -p oldboy 24. 修改字符集:`ALTER DATABASE oldboy CHARACTER SET utf8;` 25. 设置主键和索引:`ALTER TABLE test MODIFY id INT(4) PRIMARY KEY, ADD INDEX idx_name(name);` ...

    mysql 数据库热备份1

    以下将详细介绍MySQL数据库的热备份配置,特别是Windows环境下的主从热备配置。 在MySQL的热备份中,主数据库(Master)和从数据库(Slave)的角色至关重要。主数据库负责处理所有写入操作,并将这些更改记录到二...

    MySQL 主从复制原理与实践详解

    MySQL 主从复制是一种常见的数据库高可用性和数据冗余策略,它允许数据在多个服务器之间进行同步,以确保数据的一致性、提供读写分离、负载均衡以及灾难恢复能力。以下是对MySQL主从复制原理、作用、实现方式以及...

    网络游戏-网络服务基础设施系统和方法.zip

    4. **数据存储与备份**:玩家的游戏进度、角色信息等数据需要安全存储,通常使用数据库管理系统,如MySQL、MongoDB等。同时,定期的数据备份和恢复策略是防止数据丢失的关键。 5. **安全机制**:网络安全是网络游戏...

Global site tag (gtag.js) - Google Analytics