MariaDB(mysql)之主从同步

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

一、主从同步的作用

   1、数据分布

   2、负载均衡(load balancing)

   4、高可用性(high availability)和容错

二、主从同步原理

   mysql(MariaDB)的主从复制其实很简单,只要搞懂了原理,配置一个主从复制就是三下五除二的工夫

1、二进制日志

   想要做主从复制必须得有这个二进制日志,那二进制日志记录的是什么呢?二进制日志中保存的只是跟服务器修改相关的操作,也叫复制日志

   二进制日志为了避免日志文件过大,要进行不停地滚动,其主要有两个功能:

   (1)即时点恢复

   (2)复制

   因为二进制日志有即时点恢复功能,所以万一某天一个不小心失误把数据库删了,只要二进制日志文件保存完好,就可以把我们的数据恢复回来。可见二进制日志是非常重要的,因此二进制日志千万不要和你的数据库目录放到一起,而要另找一个位置保存

   今天我们要做的是利用他的第二个功能完成主从复制

2、中继日志

   中继日志和复制相关,中继日志是从服务器从主服务器上读取主服务器上二进制日志中的事件,每读一个过来,并保存到本地。

3、主从同步原理

wKiom1NL6CuzBZn2AAF0SQq6SYk430.jpg

   原理详解:

   1)主服务器发生数据更改操作,数据写入到数据文件和二进制文件中,然后去唤醒从服务器的I/O线程(IO thread)

   2)从服务器的IO thread来请求主服务器并把从主服务器的binlog dump线程返回结果写入到本地中继日志中

   3)从服务器的SQL thread每读一条中继日志,然后写一条到本地数据文件中

   4)此过程中,从服务器只是同步主服务器的数据,所以他无需开启二进制日志,而且从服务器最好设为只读模式

   5)主从复制并不是一个备份的过程,它只是一个数据同步的过程,因为,如果你在主服务器上删除一个库,那你会发现从服务器上也没有了

   6)从服务器并不能负载主服务器的写操作,它只可以负载主服务器的读操作;因为,不管你主服务器写多少,从服务器都会通过它的中继日志和主服务器的二进制日志同步到它本地的

三、主从同步的实现

1、修改主服务器的配置文件,我这里的数据目录在/mydata/data下,为了安全,我把二进制日志放到了/mydata/binlogs下,别忘了给这几个目录设置属主和属组为mysql用户,mysql组

wKioL1NL5tPhDZQhAACGNoQylJA433.png

2、在从服务器上修改主配置文件,方法同上一步

wKioL1NL523Q60FnAACpJeMS5uo355.png

3、查看从服务器的中继日志是否启动成功

wKiom1NL59qQrvfKAABSSR44tJo687.png

4、在主服务器上创建有复制权限的账号

1
2
grant replication slave  on *.* to  'moba' @ '192.168.100.137'  identified by  'moba2015' ;
flush privileges;


wKiom1NL6GWDCPnsAAAq6ksFitA533.png

5、在主服务器上查看其状态信息

wKioL1NL6GniGkKvAAAxheGBB2A943.png

6、从服务器连接主服务器

wKioL1NL6KKjOnMMAAA9x71JKVg434.png

7、查看从服务器的状态信息,检查是否连接主服务器成功

wKioL1NL6Qbj2ibwAABmkca4J0A693.png

   这里的Slave_IO_Running和Slave_SQL_Running两个线程必须都为Yes才是正确的,出现了什么connecting啊还是no什么的都是没连接成功的。IO thread是去请求主服务器的二进制日志并写入到本地中继日志的,SQL thread是从中继日志写入到本地数据文件的。

8、在主服务器上创建一个数据库

wKioL1NL6ejA7IShAABNlcLvfgA495.png

9、在从服务器上启动复制线程,测试hlbrc这个库是否同步成功

1
mysql>start slave;

wKioL1NL6kax7-PJAABzjio32Vs192.png

四、主从同步配置过程总结

1、主服务器

   1)修改server-id

   2)启用二进制日志

   3)创建有复制权限的账号

2、从服务器

   1)修改server-id

   2)启用中继日志

   3)连接主服务器

   4)启程复制线程  










本文转自 nmshuishui 51CTO博客,原文链接:http://blog.51cto.com/nmshuishui/1395587,如需转载请自行联系原作者
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1月前
|
SQL 存储 关系型数据库
MySQL的主从复制&主从同步
MySQL的主从复制&主从同步
31 0
|
1月前
|
Ubuntu 关系型数据库 MySQL
使用Ubuntu和Windows电脑实现Mysql主从同步(详细操作步骤)
使用Ubuntu和Windows电脑实现Mysql主从同步(详细操作步骤)
30 2
|
8月前
|
关系型数据库 MySQL 数据库
使用 StatefulSet 部署主从同步的 MySQL 集群
使用 StatefulSet 部署主从同步的 MySQL 集群
108 1
|
6月前
|
NoSQL 关系型数据库 MySQL
阿里云RDS关系型数据库大全_MySQL版、PolarDB、PostgreSQL、SQL Server和MariaDB等
阿里云RDS关系型数据库如MySQL版、PolarDB、PostgreSQL、SQL Server和MariaDB等,NoSQL数据库如Redis、Tair、Lindorm和MongoDB
254 0
|
17天前
|
SQL 关系型数据库 MySQL
mysql主从同步出错解决办法
mysql主从同步出错解决办法
12 0
|
6月前
|
SQL 监控 关系型数据库
Mysql主从同步报错解决:Error executing row event: Table zabbix.history-..
Mysql主从同步报错解决:Error executing row event: Table zabbix.history-..
|
4月前
|
SQL 存储 关系型数据库
MySQL主从同步延迟原因与解决方案
MySQL主从同步延迟原因与解决方案
201 0
MySQL主从同步延迟原因与解决方案
|
5月前
|
SQL 关系型数据库 MySQL
Mysql服务器线上配置主从同步
Mysql服务器线上配置主从同步
|
6月前
|
SQL 关系型数据库 MySQL
企业实战(9)Mysql数据库实现主从同步,看这一篇就够了!
企业实战(9)Mysql数据库实现主从同步,看这一篇就够了!
|
6月前
|
SQL 关系型数据库 MySQL
Mysql主从同步报错解决:Fatal error: The slave I/O thread stops because ..
Mysql主从同步报错解决:Fatal error: The slave I/O thread stops because ..

热门文章

最新文章