`
yymmiinngg
  • 浏览: 180185 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

MYSQL数据同步,双向热备

阅读更多

1、简要介绍:mysql从3.23.15版本以后提供数据库复制功能。利用该功能可以实现两个数据库同步,主从模式(A->B),互相备份模式(A<=>B)的功能。
mysql数据库同步复制功能的设置都在mysql的配置文件中体现。在linux环境下的配置文件一般在/etc/mysql/my.cnf或者在mysql用户的home目录下的my.cnf,笔者的my.cnf则在/etc/my.cnf;windows环境下则可到mysql安装路径下找到my.ini。

 

2、下面我们来看看如何配置数据同步(A->B):
(笔者mysql版本 5.0.26)
假设数据库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).完成了以上配置之后,将A的mysql数据的权限给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双向配置即可。

 

本人最近从网上搜索到此文章的多个转载,特此声明:如果需要转载本文,请标注出处,谢谢合作。

分享到:
评论
3 楼 yymmiinngg 2008-01-13  
我的意思是,利用mysql支持的异步复制功能,实现数据库之间的数据同步,呵呵!

1、异步复制基本原理

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

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

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

- 主库必须启用Bin log,主库和从库必须有唯一的Server Id
- 从库必须清楚了解从主库的哪一个Bin log文件的哪一个偏移位置起开始复制
- 从库可以从主库只复制指定的数据库,或者数据库的某些数据表
- 主库和从库的数据库名称可以不一样,不过还是推荐使用一样的名称
- 主库和从库的MySQL版本需保持一致

附:资料出处
http://blog.sina.com.cn/s/blog_4b0710d8010007eo.html
2 楼 ztka 2008-01-12  
这不是同步 是异步 MASTER SLAVE是异步
1 楼 qsky 2008-01-08  
简单明了 赞一个

相关推荐

    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双机热备.ppt

    在双主从结构中,两台服务器都可以作为主服务器接收写操作,互相复制数据,从而实现双向同步。 在配置MySQL热备份时,首先需要在两台服务器上安装MySQL,并开启服务。接着,创建用于复制的账户,例如在MySQL命令行...

    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