MYSQL的数据同步试验

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: max下载地址http://download.chyangwa.com/linux/MySQL/Mysql作为一种开源的数据库系统得到广泛使用,但象同步数据复制这样的特性,Mysql支持的如何呢?以下是我曾经作过的一个试验,验证了linux-linux、linux-windows 进行动态数据复制和主从备份的可行性。

max下载地址http://download.chyangwa.com/linux/MySQL/

Mysql作为一种开源的数据库系统得到广泛使用,但象同步数据复制这样的特性,Mysql支持的如何呢?以下是我曾经作过的一个试验,验证了linux-linux、linux-windows 进行动态数据复制和主从备份的可行性。



一、 试验目的
    replication的好处:
    1)提高数据库健壮性。当一台服务器出现问题,可以切换到作为备份的另一台服务器。
    2)通过分离大量的客户端查询处理,可以达到更好的相应时间。SELECT查询可以放到slave上,减少master上的查询处理。修改数据的语句仍然放到master上处理。这样可以使得master与slave同步,也可以作为一种load-balancing策略。
    3)在进行数据处理的同时进行实时的数据备份。

本次测试MySQL动态数据复制和主从备份的可行性。


二、 步骤

    1. 测试环境
         A:10.1.9.241 Red linux 9.0 MySQL 4.0.18
         B:10.1.9.232 Red linux 9.0 MySQL 4.0.18
         C:10.1.9.237 Windows 2000 Professional MySQL 4.0.18
 
    2. 配置过程
         A服务器设置
         #mysql -u root -p
         mysql>GRANT FILE ON *.* TO repl@10.1.9.232 IDENTIFIED BY '1234';
         mysql>GRANT REPLICATION SLAVE on *.* to repl@10.1.9.232 identified by '1234';
         mysql>GRANT FILE ON *.* TO repl@10.1.9.237 IDENTIFIED BY '1234';
         mysql>GRANT REPLICATION SLAVE on *.* to repl@10.1.9.237 identified by '1234';
         mysql>USE test;
         mysql>CREATE TABLE t1 (A INT, B CHAR (20));
         mysql>exit

         上面是Master开放一个账号repl密码1234给IP: 10.1.9.232有档案处理的权限。在test数据库中建立customer表用于测试

         #mysqladmin -u root -p shutdown

         在A机器上修改/etc/my.cnf
         在[mysqld]区段内加入参数
         log-bin
         server-id=1
         binlog-do-db=test

         重启A服务器mysql
         #/usr/bin/safe_mysqld &

         此时因为加入log-bin参数,因此开始有index产生了,在/var/lib/mysql目录下有.index档案纪录数据库的log。

         #mysql -u root -p
         mysql>show master status;
         mysql>show processlistG;

         查看主服务器配置和线程情况


         B服务器设置

         #mysql -u root -p
         mysql>USE test;
         mysql>CREATE TABLE t1 (A INT, B CHAR (20));
         mysql>exit

         在test数据库中建立customer表用于测试

         关闭MySQL数据库服务器
         #mysqladmin -u root -p shutdown

         设定/etc/my.cnf
         在[mysqld]区段加入
         master-host=10.1.9.212
         master-user=repl
         master-password=1234
         master-port=3306
         server-id=2
         master-connect-retry=60 #预设重试间隔60秒
         replicate-do-db=test #告诉slave只做vbb数据库的更新
         log-slave-updates

         重启B服务器mysql
         #/usr/bin/safe_mysqld &

         #mysql -u root -p
         mysql>show slave status;
         mysql>show processlistG;

         查看从服务器配置和线程情况
         注意:由于设置了slave的配置信息,mysql在/var/lib/mysql目录下生成master.info
所以如有要修改相关slave的配置要先删除该文件。否则修改的配置不能生效。


    3. 测试
         在A服务器上进行insert、update、delete操作
         #mysql -u root -p
         mysql>use test;
         mysql>select * from customer;
         mysql>insert into customer(1,'a1');
         mysql>insert into customer(2,'a2');
         mysql>insert into customer(3,'a3');
         mysql>update customer set a=10,b='a10' where a=1;
         mysql>delete from customer where a=1;
         mysql>select * from customer;

         在A上每个DML语句执行后查看B服务器上数据的变化情况
         #mysql -u root -p
         mysql>use test;
         mysql>select * from customer;


三、 结论
     在A上执行DML语句后,B中相应的数据随之变化,实时进行了replication,试验成功。


四、 注意事项
    1. 本次试验在两个linux操作系统环境下进行,没有进行windows-linux等异构操作环境测试。
    2. 由于MySQL不支持过程语言,所以本次试验没有进行大数据量测试。可编写应用程序进行大数据量测试。
    3. Mysql在3.23.15版本后支持replication。并且存在版本兼容性问题,具体冲突由下表所示:


  
Master
Master
Master

3.23.33 and up
4.0.3 and up or any 4.1.x
5.0.0

Slave  3.23.33 and up
Yes
No
No

Slave
4.0.3 and up
Yes
Yes
No

Slave
5.0.0
Yes
Yes
Yes 
 

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
4月前
|
SQL DataWorks 关系型数据库
DataWorks操作报错合集之如何处理数据同步时(mysql->hive)报:Render instance failed
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
2月前
|
监控 关系型数据库 MySQL
深入了解MySQL主从复制:构建高效稳定的数据同步架构
深入了解MySQL主从复制:构建高效稳定的数据同步架构
133 1
|
3月前
|
canal 消息中间件 关系型数据库
Canal作为一款高效、可靠的数据同步工具,凭借其基于MySQL binlog的增量同步机制,在数据同步领域展现了强大的应用价值
【9月更文挑战第1天】Canal作为一款高效、可靠的数据同步工具,凭借其基于MySQL binlog的增量同步机制,在数据同步领域展现了强大的应用价值
780 4
|
4月前
|
关系型数据库 MySQL 数据库
【MySQL】手把手教你MySQL数据同步
【MySQL】手把手教你MySQL数据同步
|
2月前
|
消息中间件 NoSQL 关系型数据库
一文彻底搞定Redis与MySQL的数据同步
【10月更文挑战第21天】本文介绍了 Redis 与 MySQL 数据同步的原因及实现方式。同步的主要目的是为了优化性能和保持数据一致性。实现方式包括基于数据库触发器、应用层双写和使用消息队列。每种方式都有其优缺点,需根据具体场景选择合适的方法。此外,文章还强调了数据同步时需要注意的数据一致性、性能优化和异常处理等问题。
587 0
|
4月前
|
SQL 关系型数据库 MySQL
“震撼揭秘!Flink CDC如何轻松实现SQL Server到MySQL的实时数据同步?一招在手,数据无忧!”
【8月更文挑战第7天】随着大数据技术的发展,实时数据同步变得至关重要。Apache Flink作为高性能流处理框架,在实时数据处理领域扮演着核心角色。Flink CDC(Change Data Capture)组件的加入,使得数据同步更为高效。本文介绍如何使用Flink CDC实现从SQL Server到MySQL的实时数据同步,并提供示例代码。首先确保SQL Server启用了CDC功能,接着在Flink环境中引入相关连接器。通过定义源表与目标表,并执行简单的`INSERT INTO SELECT`语句,即可完成数据同步。
404 1
|
4月前
|
SQL canal 关系型数据库
(二十四)全解MySQL之主从篇:死磕主从复制中数据同步原理与优化
兜兜转转,经过《全解MySQL专栏》前面二十多篇的内容讲解后,基本对MySQL单机模式下的各方面进阶知识做了详细阐述,同时在前面的《分库分表概念篇》、《分库分表隐患篇》两章中也首次提到了数据库的一些高可用方案,但前两章大多属于方法论,并未涵盖真正的实操过程。接下来的内容,会以目前这章作为分割点,开启MySQL高可用方案的落地实践分享的新章程!
2036 1
|
4月前
|
canal 关系型数据库 MySQL
"揭秘阿里数据同步黑科技Canal:从原理到实战,手把手教你玩转MySQL数据秒级同步,让你的数据处理能力瞬间飙升,成为技术界的新晋网红!"
【8月更文挑战第18天】Canal是一款由阿里巴巴开源的高性能数据同步系统,它通过解析MySQL的增量日志(Binlog),提供低延迟、可靠的数据订阅和消费功能。Canal模拟MySQL Slave与Master间的交互协议来接收并解析Binary Log,支持数据的增量同步。配置简单直观,包括Server和Instance两层配置。在实战中,Canal可用于数据库镜像、实时备份等多种场景,通过集成Canal Client可实现数据的消费和处理,如更新缓存或写入消息队列。
844 0
|
4天前
|
关系型数据库 MySQL 数据库
Python处理数据库:MySQL与SQLite详解 | python小知识
本文详细介绍了如何使用Python操作MySQL和SQLite数据库,包括安装必要的库、连接数据库、执行增删改查等基本操作,适合初学者快速上手。
50 15
|
4天前
|
关系型数据库 MySQL 数据库
数据库数据恢复—MYSQL数据库文件损坏的数据恢复案例
mysql数据库文件ibdata1、MYI、MYD损坏。 故障表现:1、数据库无法进行查询等操作;2、使用mysqlcheck和myisamchk无法修复数据库。

热门文章

最新文章