MySQL数据双向同步解决方案

合集下载

数据库同步技术解决方案

数据库同步技术解决方案

数据库同步技术解决方案一、需求分析1.实时性:数据同步需要尽可能接近实时,以保证数据的准确性。

2.完整性:同步过程中,数据不能丢失,也不能重复。

3.可靠性:同步过程要稳定可靠,不能因为同步失败导致业务中断。

4.扩展性:随着业务的发展,同步方案要能适应不断增长的数据量。

二、技术选型1.同步方向:单向同步、双向同步、多向同步。

根据业务场景,选择合适的同步方向。

2.同步方式:同步复制、异步复制。

同步复制可以保证数据的实时性,但可能会影响性能;异步复制则牺牲实时性,换取更高的性能。

3.同步工具:目前市面上有很多数据库同步工具,如MySQL的binlog、Redis的pub/sub、Kafka等。

我们需要根据实际业务场景和需求,选择合适的同步工具。

三、方案设计1.同步方向:采用单向同步,从主数据库同步到从数据库。

2.同步方式:采用异步复制,降低对主数据库性能的影响。

3.同步工具:使用Kafka作为消息队列,实现数据的异步传输。

具体步骤如下:1.在主数据库上配置binlog,记录数据变更日志。

2.使用KafkaConnect连接主数据库,监听binlog,将数据变更事件转换为Kafka消息。

3.从数据库上部署KafkaConsumer,消费Kafka中的消息,并根据消息内容更新从数据库。

4.为了保证数据的完整性,可以在从数据库上设置主键约束,防止数据重复。

5.为了提高同步性能,可以设置Kafka的批量处理大小和消费线程数。

四、性能优化1.增加Kafka的副本数,提高消息队列的吞吐量。

2.调整Kafka的批量处理大小,减少网络传输次数。

3.优化数据库索引,提高数据检索速度。

4.使用并行处理技术,提高数据同步效率。

五、异常处理1.数据冲突:当主数据库和从数据库中的数据发生冲突时,可以根据业务规则进行合并或者覆盖。

2.网络异常:当网络异常导致同步失败时,可以设置重试机制,确保数据不会丢失。

3.数据丢失:当同步过程中数据丢失时,可以采用日志回溯的方式进行恢复。

使用MySQL实现数据的跨服务器迁移与同步

使用MySQL实现数据的跨服务器迁移与同步

使用MySQL实现数据的跨服务器迁移与同步引言在当今互联网时代,数据迁移和同步对于企业和个人都是非常重要的。

随着业务的增长和发展,很多组织需要将数据从一个服务器迁移到另一个服务器,或者在多个服务器之间进行数据同步,以保证数据的一致性和可用性。

本文将探讨如何使用MySQL实现数据的跨服务器迁移与同步的方法和技巧,并提供一些实用的解决方案。

一、数据迁移的背景和挑战随着业务的扩大和需求的增加,很多企业需要将数据从一个服务器迁移到另一个服务器,可能是为了提高性能,或者为了进行数据中心的合并。

数据迁移面临着一些挑战,包括数据量庞大、网络带宽有限、数据一致性等等。

如何高效、安全地将数据迁移到目标服务器,是一个值得探讨的问题。

二、MySQL数据迁移的基本原理MySQL是一个流行的开源关系型数据库管理系统,具有广泛的应用场景。

在进行数据迁移时,MySQL提供了多种解决方案,包括物理备份、逻辑备份和在线迁移等。

1. 物理备份物理备份是将原服务器上的数据文件直接拷贝到目标服务器上,不需要对数据库进行导出和导入。

这种方法具有高效性和简便性,但是需要两个服务器之间具有相同的操作系统和硬件环境。

2. 逻辑备份逻辑备份是将原服务器上的数据导出为可读的文本格式,然后在目标服务器上再进行导入。

这种方法相对于物理备份来说,更加灵活,可以在不同的操作系统和硬件环境下使用。

但是由于需要将数据导出为文本格式,所以相对来说速度较慢。

3. 在线迁移在线迁移是指在不停机的情况下将数据从原服务器迁移到目标服务器。

这种方法需要使用MySQL提供的复制机制,将原服务器上的数据实时复制到目标服务器上。

虽然在线迁移的过程比较复杂,但是可以保证数据的实时性和一致性,并且不会对业务产生影响。

三、MySQL数据同步的原理和方法除了数据迁移,数据同步也是一个常见的需求。

在分布式系统中,往往需要多个数据库之间保持数据的一致性和同步。

MySQL提供了多种数据同步的解决方案,包括主从复制、多主复制和组复制等。

数据库主从同步配置MySql数据双向同步配置的方法

数据库主从同步配置MySql数据双向同步配置的方法

数据库主从同步配置MySql数据双向同步配置的方法配置MySQL数据库的主从同步可以实现数据的双向同步,以下是一种常见的配置方法:1. 确保两台MySQL服务器之间能够互相访问,比如在操作系统级别上配置好网络和防火墙规则。

2. 在主服务器上,编辑MySQL配置文件(f或my.ini),找到并修改以下几个参数:```server-id = 1 #设置服务器唯一ID,主服务器设为1,从服务器设为不同的值log_bin = mysql-bin #开启二进制日志记录功能binlog_format = row #设置二进制日志的格式为行级格式```3. 在主服务器上重启MySQL服务,使配置生效。

4. 在主服务器上创建一个专门用于主从同步的账号,并授予对应的权限。

比如创建一个账号名为replication的账号,并为其授予REPLICATION SLAVE权限:```sqlCREATE USER 'replication'@'从服务器IP' IDENTIFIED BY '密码';GRANT REPLICATION SLAVE ON *.* TO 'replication'@'从服务器IP';FLUSH PRIVILEGES;```5. 在从服务器上,编辑MySQL配置文件(f或my.ini),找到并修改以下几个参数:```server-id = 2 #设置服务器唯一ID,主服务器设为1,从服务器设为不同的值 log_bin = mysql-bin #开启二进制日志记录功能binlog_format = row #设置二进制日志的格式为行级格式```6. 在从服务器上重启MySQL服务,使配置生效。

7. 在从服务器上执行以下命令,配置主从关系:```sqlCHANGE MASTER TOMASTER_HOST ='主服务器IP',MASTER_PORT = 主服务器端口号,MASTER_USER ='replication',MASTER_PASSWORD ='密码',MASTER_LOG_FILE ='主服务器当前二进制日志文件名',MASTER_LOG_POS = 主服务器当前二进制日志位置;```8. 在从服务器上启动从服务器的复制进程:```sqlSTART SLAVE;```9. 在主服务器上执行以下命令,查看主从同步状态:```sqlSHOW MASTER STATUS;```10. 在从服务器上执行以下命令,查看主从同步状态:```sqlSHOW SLAVE STATUS;```以上是一种常见的MySQL数据库主从同步配置方法,根据实际情况可能还需要进行其他配置和调优。

Mysql基于binlog方式进行数据同步常见问题解决方案汇总

Mysql基于binlog方式进行数据同步常见问题解决方案汇总

Mysql基于binlog⽅式进⾏数据同步常见问题解决⽅案汇总Mysql基于binlog⽅式进⾏数据同步常见问题解决⽅案汇总0、前置信息0.1、集群信息服务器连接信息:192.168.91.131(master)192.168.91.132(slave1)192.168.91.133(slave2)使⽤ssh⽅式访问服务器:ssh root@192.168.91.*输⼊对应密码访问0.2、从库数据导⼊在192.168.91.131命令⾏窗⼝下直接执⾏数据库表数据导⼊:mysqldump --default-character-set=utf8mb4 --host=192.168.91.131 -uroot -p123456 --opt --set-gtid-purged=OFF 从库需要导⼊的表名 | mysql --host=从库IP地址 --port=3306 -uroot -p123456 --default-character-set=utf8mb4 -C 从库需要导⼊的表名说明:使⽤此⽅式进⾏数据导⼊时,保证⽬标数据库中数据库表与源数据库中数据表⼀致,同时,⽬标数据库中数据表保证为空表0.3 、从库设置同步过滤规则---- 从库设置同步过滤规则(在f中设置,对应k8s在配置字典中配置) ----replicate_wild_do_table =要同步的数据库名.%replicate_wild_ignore_table =要忽略的数据库名.%1、数据同步(binlog⽅式)主、从库使⽤binlog⽅式同步数据,操作步骤:1.1、主库执⾏命令mysql> show master status;获取主库的binlog⽂件和当前位置,即查询结果的 File、Position 字段,例如:File字段值为 binlog.XXXXXXXX,Position 字段值为 YYYYYYYY1.2、从库执⾏命令mysql> show slave status;mysql> stop slave;mysql> reset slave;mysql> CHANGE MASTER TO MASTER_HOST = '192.168.91.131', MASTER_USER = 'repl',MASTER_PASSWORD = '123456', MASTER_PORT = 3306, MASTER_LOG_FILE='binlog.XXXXXXXX',MASTER_LOG_POS=YYYYYYYY;mysql> start slave;mysql> show slave status;2、常见问题汇总及解决2.1、主、从库数据表字符集不⼀致2.1.1、报错信息Last_SQL_Errno: 1677Last_SQL_Error: Column1of table'XXX' cannot be converted from type 'varchar(150(bytes))'to type 'varchar(110(bytes))'2.1.2、解决⽅案1> 主、从库查看数据表的字符集信息mysql> show create table 表名;2> 从库执⾏如下命令mysql> stop slave;mysql>alter table table_name convert to character set主库数据表字符集;mysql> start slave;mysql> show slave status;2.2、主库删除从库不存在数据2.2.1、报错信息Last_Errno: 1032Last_SQL_Error: Could not execute Delete_rows event on table XXX; Can't find record in 'XXX',Error_code: 1032; handler error HA_ERR_KEY_NOT_FOUND;2.2.2、解决⽅案1> 在从库执⾏如下命令:mysql> show slave status;找到Exec_Master_Log_Pos的值,例如:XXXX;Last_Error信息中的end_log_pos的值,例如:YYYYYY2> 在主库使⽤⾃带的mysqlbinlog查看删除信息:cd /usr/binmysqlbinlog --no-defaults -v -v --base64-output=DECODE-ROWS --start-position=XXXX --stop-position=YYYYYY /var/lib/mysql/binlog.000001说明:主库mysqlbinlog所在⽂件夹位置,可以使⽤如下命令查找:3> 找到删除语句之后,在从库插⼊删除数据,例如:insert into test values(1, 'jack');4> 在从库执⾏如下命令mysql> start slave;mysql> show slave status;插⼊数据时,如果遇到索引冲突的问题,可参考如下操作:mysql插⼊数据时,出现Duplicate entry 'XXX'for key'XXX'的问题:可以使⽤replace into,replace into是insert into的增强版:(1) 如果插⼊的数据不重复,执⾏的是insert into操作,影响1条记录(2) 如果插⼊的数据重复,执⾏的是update操作,影响2条记录:先删除旧的数据,再插⼊新的数据。

mysql主主同步,主从同步数据不一致问题解决

mysql主主同步,主从同步数据不一致问题解决

mysql主主同步,主从同步数据不⼀致问题解决问题起源:1. mysql数据库同步过程中经常会因为某种错误导致同步出错⽽暂停,此时使⽤show slave status\G命令能查看到错误数据此时Slave_SQL_Running: No,为了解决这个问题⼀般使⽤如下命令解决stop slave;set global sql_slave_skip_counter =1;start slave;有时候忽略⼀次错误还不⾏,需要忽略很多,那么忽略错误过程中就会出现数据不⼀致的问题(有些正常数据被忽略了)2. 某个服务器异常宕机导致部分SQL未同步如何解决:为了保证不同mysql服务器之间的数据⼀致,可以采⽤如下的⼀个⼯具集合Percona-toolkit他有2个⼯具:pt-table-checksum和pt-table-syncpt-table-checksum:⽤于检测2个数据库之间哪些表的数据不⼀致pt-table-sync:⽤于修复数据不⼀致的表或者库这⾥需要注意的地⽅是:必须选择⼀个库作为参考,强烈建议选择主库作为参考,主库和从库数据不⼀致时把主库的数据同步到从库达到⼀致。

如果既要把主库的部分表同步到从库⼜要想把从库的部分数据同步到主库(主主同步时会有此需求)则需要采取特殊⼿段,后⾯有说明第⼀步:安装⼯具集Percona-toolkit⼯具集请安装在主库的服务器上⾯#安装依赖包yum install perl perl-DBI perl-DBD-MySQL perl-IO-Socket-SSL perl-Time-HiRes perl-Digest-MD5 perl-ExtUtils-MakeMaker -y#下载⼯具集wget https:///downloads/percona-toolkit/2.2.18/tarball/percona-toolkit-2.2.18.tar.gz#解压缩tar -xvf percona-toolkit_2.2.18.tar.gz#进⼊⽬录cd percona-toolkit-2.2.18/#执⾏perl脚本perl Makefile.PL#编译make#安装make install第⼆步:执⾏命令进⾏检测通过使⽤pt-table-checksum命令来进⾏检测,注意检测时需要指定⼀个表(表名可⾃定义),这个表⽤来记录差异点为后续同步数据作为参考,这⾥假设要检测test数据库⾥⾯的table1表是否不同步。

mysql主从同步原理及错误解决

mysql主从同步原理及错误解决

mysql主从同步原理及错误解决MySQL主从复制是一种常见的数据库备份和灾难恢复机制。

它允许将一个MySQL数据库(主服务器)的更改复制到一个或多个备份数据库(从服务器)上。

主从复制的原理是主服务器将更改记录到二进制日志(bin-log),从服务器通过读取主服务器的二进制日志并应用这些更改来保持与主服务器的同步。

主从同步的原理可以分为以下几个步骤:1. 主服务器将更改记录到二进制日志(bin-log):当在主服务器上进行了增、删、改等修改操作时,主服务器将生成一条对应的二进制日志记录,并将其写入到二进制日志文件中。

2.从服务器连接到主服务器:从服务器与主服务器建立连接,并请求从指定位置开始读取二进制日志。

3.主服务器发送二进制日志给从服务器:主服务器将从请求的位置开始的二进制日志传送给从服务器。

4. 从服务器将二进制日志写入到中继日志(relay-log):从服务器将接收到的二进制日志写入到中继日志文件中。

5.从服务器读取中继日志并应用更改:从服务器读取中继日志中的更改,并将其应用到从服务器的数据库中,以实现与主服务器的同步。

6.从服务器发送确认信息给主服务器:从服务器将应用成功的二进制日志位置信息发送给主服务器,用于下次同步时继续读取。

除了主从同步的原理,还有一些常见的错误可能会影响主从同步的正确运行。

以下是几种常见的错误及其解决方法:1.主从服务器时间不同步:主从服务器的时间差异会导致二进制日志的生成顺序错误,进而导致主从同步错误。

解决方法是确保主从服务器时间一致,可以使用NTP等工具进行时间同步。

2.主服务器宕机或网络故障:当主服务器宕机或网络故障时,从服务器无法继续从主服务器获取二进制日志,导致主从同步中断。

解决方法是在主服务器出现故障后,将一个从服务器提升为主服务器,然后重新配置其他从服务器与新的主服务器建立连接。

3.数据库表结构改变:如果在主服务器上修改了表结构,而从服务器没有同步相应的修改,就会导致主从同步错误。

如何使用MySQL进行多机房部署和数据同步

如何使用MySQL进行多机房部署和数据同步

如何使用MySQL进行多机房部署和数据同步随着互联网的蓬勃发展,许多企业面临着高并发、大数据量的挑战,为了提高系统的可用性和稳定性,多机房部署成为了一种常见的解决方案。

而作为数据库领域的翘楚,MySQL在多机房部署和数据同步方面也有着丰富的经验和技术。

一、多机房部署的需求分析在介绍多机房部署的方法之前,首先需要明确多机房部署的需求。

多机房部署的主要目的是提高系统的可用性,即当一个机房出现故障或网络中断时,能够快速切换到另一个机房提供服务。

此外,多机房部署还可以实现地理位置的容灾备份,提高系统的容错能力和可扩展性。

二、MySQL的多机房部署方案1. 主从复制主从复制是MySQL多机房部署的常用方案之一。

通过将数据从一个机房复制到另一个机房的方式,实现了数据的备份和容灾。

主从复制的原理是将主服务器上的所有数据变更事件记录下来,然后将这些事件通过网络传输到从服务器上执行,从而保持主从服务器之间的数据一致性。

2. 集群方案MySQL集群方案是一种更为高级的多机房部署方案。

它通过将多台服务器组织成一个集群,实现数据的分布式存储和处理。

集群方案可以提供更高的性能和可用性,但配置和管理相对复杂一些。

常见的MySQL集群方案包括Galera Cluster、MySQL Cluster等。

三、数据同步的策略选择在多机房部署中,数据同步是一个非常重要的环节。

正确选择适合自己业务的数据同步策略可以保证数据的一致性和可用性。

1. 异步复制异步复制是一种常见的数据同步策略,它的特点是主服务器将数据变更事件写入binlog,并异步传输到从服务器进行执行。

异步复制的优点是传输延迟小,在网络不稳定的情况下也能保证数据的可用性,但是存在数据不一致的风险。

2. 同步复制同步复制是一种更为安全的数据同步策略,它要求主服务器和从服务器在写入数据之前必须达成一致,确保数据的完整性和一致性。

同步复制的缺点是传输延迟大,在网络延迟较高的情况下可能会影响系统的性能。

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

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

MySQL 双活同步复制方案详解对于数据实时同步,其核心是需要基于日志来实现,是可以实现准实时的数据同步,基于日志实现不会要求数据库本身在设计和实现中带来任何额外的约束。

基于MySQL原生复制主主同步方案这是常见的方案,一般来说,中小型规模的时候,采用这种架构是最省事的。

两个节点可以采用简单的双主模式,并且使用专线连接,在master_A节点发生故障后,应用连接快速切换到master_B节点,反之也亦然。

有几个需要注意的地方,脑裂的情况,两个节点写入相同数据而引发冲突,同时把两个节点的auto_increment_increment(自增步长)和auto_increment_offset(自增起始值)设成不同值。

其目的是为了避免master节点意外宕机时,可能会有部分binlog未能及时复制到slave上被应用,从而会导致slave 新写入数据的自增值和原先master上冲突了,因此一开始就使其错开;当然了,如果有合适的容错机制能解决主从自增ID冲突的话,也可以不这么做,使用更新的数据版本5.7+,可以利用多线程复制的方式可以很大程度降低复制延迟,同时,对复制延迟特别敏感的另一个备选方案,是semi-sync半同步复制,基本上无延迟,不过事务并发性能会有不小程度的损失,特别是在双向写的时候,需要综合评估再决定。

基于Galera replication方案Galera是Codership提供的多主数据同步复制机制,可以实现多个节点间的数据同步复制以及读写,并且可保障数据库的服务高可用及数据一致性,基于Galera的高可用方案主要有MariaDB Galera Cluster和Percona XtraDB Cluster(简称PXC)。

目前PXC用的会比较多一些,数据严格一致性,尤其适合电商类应用,不过PXC也是有其局限性的,如果并发事务量很大的话,建议采用InfiniBand网络,降低网络延迟,因为PXC存在写扩大以及短板效应,并发效率会有较大损失,类似semi-sync半同步复制,Gelera实际只能用三个节点,网络抖动造成的性能和稳定性习惯性问题基于Group Replication方案通过Paxos协议提供数据库集群节点数据强一致保证,MGR准确来说是MySQL官方推出的高可用解决方案,基于原生复制技术,并以插件的方式提供,并且集群间所有节点可写入,解决了单个集群的写入性能,所有节点都能读写,解决网络分区导致的脑裂问题,提升复制数据的可靠性,不过现实还是有些残酷,目前尝鲜的并不是很多,同时仅支持InnoDB表,并且每张表一定要有一个主键,用于做write set的冲突检测,必须打开GTID特性,二进制日志格式必须设置为ROW,用于选主与write setCOMMIT可能会导致失败,类似于快照事务隔离级别的失败场景,目前一个MGR集群最多支持9个节点,不支持外键于save point特性,无法做全局间的约束检测与部分部分回滚,二进制日志不支持binlog event checksum基于canal方案对于数据库的实时同步,阿里巴巴专门有一个开源项目,即otter来实现分布式数据库的同步复制,其核心思想仍然是通过获取数据库的增量数据日志,来进行准实时的同步复制。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.mysql数据同步实现原理
即读写操作在两台服务器上进行,每台服务器即主也是从。

当其中的任何一台服务器收到操作请求时,其进行相应的数据变化,并把变化的数据复制到另一台服务器中。

2.配置服务器master
初始服务器
通过mysql工具连接服务器master后,新建两个数据库audit,idm。

导入初始化数据库文件,完成数据库的初始化
给用户授权
从开始菜单中打开mysql5的命令行,输入正确的密码,进入mysql控制台命令行模式后,输入如下命令:
#授权来自192.168.0.189的backup用户拥有对所有库的复制数据的权限,该用户的密码设为123456
GRANT REPLICATION SLAVE ON *.* TO 'backup'@'192.168.0.189' IDENTIFIED BY '123456'; #刷新权限设置
FLUSH PRIVILEGES ;
修改配置文件
修改主目录中的my.inf文件,在mysqld下面加入如下内容
server-id = 1
log-bin=mysql-bin
binlog-do-db = audit
binlog-do-db = idm
binlog-ignore-db = information_schema
binlog-ignore-db = mysql
binlog-ignore-db = test
master-host = 192.168.0.189
master-user = backup
master-password = 123456
master-port = 3306
replicate-do-db = audit
replicate-do-db = idm
master-connect-retry = 60
3.配置服务器slave
初始服务器
通过mysql工具连接服务器ha002后,新建两个数据库audit,idm。

导入初始化数据库文件,完成数据库的初始化
给用户授权
从开始菜单中打开mysql5的命令行,输入正确的密码,进入mysql控制台命令行模式后,输入如下命令:
#授权来自192.168.0.188的backup用户拥有对所有库的复制数据的权限,该用户的密码设为123456
GRANT REPLICATION SLAVE ON *.* TO 'backup'@'192.168.0.188' IDENTIFIED BY '123456'; #刷新权限设置
FLUSH PRIVILEGES ;
修改配置文件
修改主目录中的my.inf文件,在mysqld下面加入如下内容
server-id = 2
master-host = 192.168.0.188
master-user = backup
master-password = 123456
master-port = 3306
relicate-do-db = audit
replicate-do-db = idm
master-connect-retry = 60
log-bin=mysql-bin
binlog-do-db = audit
binlog-do-db = idm
binlog-ignore-db = information_schema
binlog-ignore-db = mysql
binlog-ignore-db = test
4.启动两台mysql
在两台服务器上,均完成如下操作:
从开始菜单中打开mysql5的命令行,输入正确的密码,进入mysql控制台命令行模式后,输入如下命令:
#开启从服务器
slave start;
服务状态检查
在两台服务器上,均完成如下操作:
从开始菜单中打开mysql5的命令行,输入正确的密码,进入mysql控制台命令行模式后,输入如下命令:
#显示主服务器状态
Show master status;
#显示从服务器状态
Show slave status /G;
查看连接配置状态
Slave_IO_Running: Yes -----此项为No代表与主库连接有问题。

Slave_SQL_Running: Yes ----如果此项为NO代表配置有问题。

查看对比pos点以及记录文件是否一致
如果不一致,在从MySQL运行
#改变从服务器的pos点为98,记录文件为mysql-bin.000001
CHANGE MASTER TO Master_Log_File='mysql-bin.000001',Master_Log_Pos=98; 运行此命令前需要stop slave;之后再start slave;
5.双向同步测试
检查当在两台机器的任何一台mysql中修改数据时,另外的那台的数据是否也修改。

关闭其中一台mysql的服务后,更新另一台mysql的数据,再启动已停止的那台mysql服务器,查看数据是否修改。

6.特别注意事项
请在任何时候都不要非法关机,否则将会造成同步数据的错乱。

当出现了非法关机时,为不影响数据,请执行如下操作:
在该非法关机的机器启动后,检查该机器,查看数据是否与一直正常运行的机器一致了。

确认其数据一致后。

进入一直正常运行的机器,从开始菜单中打开mysql5的命令行,输入正确的密码,进入mysql控制台命令行模式后,输入如下命令:
#关闭slave服务
Slave stop;
#开启slave服务
Slave start;
通过这步后,一切即恢复正常
如果数据已经完全错乱,请先在两台机器上停止slave服务,然后将数据正常的服务器上的数据导入到不正常的服务器上,保证两边的服务器数据一致。

然后到数据正常的服务器的mysql控制台下输入:
#显示主服务器状态
Show master status;
获取其状态后,根据这个状态到数据不正常服务器上,通过命令:
#改变从服务器的pos点为xx,记录文件为mysql-bin.0000xx
CHANGE MASTER TO Master_Log_File='mysql-bin.0000xx',Master_Log_Pos=xx; 修改其参数后,再通过
#开启从服务器
Start slave;
#显示从服务器状态,检查是否和主一致。

#检查Slave_IO_Running,Slave_SQL_Running状态是否正常
Show slave status /G;
确保一切正常后。

再到数据不正常的服务器的mysql控制台下输入:
#显示主服务器状态
Show master status;
获取其状态后,根据这个状态到数据正常的服务器上,通过命令:
#改变从服务器的pos点为xx,记录文件为mysql-bin.0000xx
CHANGE MASTER TO Master_Log_File='mysql-bin.0000xx',Master_Log_Pos=xx; 修改其参数后,再通过
#开启从服务器
Start slave;
#显示从服务器状态,检查是否和主一致。

#检查Slave_IO_Running,Slave_SQL_Running状态是否正常
Show slave status /G;
确保也正常。

最后在到两台服务器上修改数据,查看数据是否已经同步
同步一旦配置好后,请不要修改服务器机器名。

相关文档
最新文档