文档章节

数据库技术-Mysql主从复制与数据备份

须臾之余
 须臾之余
发布于 02/20 23:52
字数 1187
阅读 31
收藏 6

数据库技术-Mysql

主从复制的原理:

MySQL中数据复制的基础是二进制日志文件(binary log file一台MySQL数据库一旦启用二进制日志后,其作为master,它的数据库中所有操作都会以事件的方式记录在二进制日志中,其他数据库作为slave通过一个I/O线程与主服务器保持通信,并监控master的二进制日志文件的变化,如果发现master二进制日志文件发生变化,则会把变化复制到自己的中继日志中,然后slave的一个SQL线程会把相关的事件执行到自己的数据库中,以此实现从数据库和主数据库的一致性,也就实现了主从复制。

主从复制的作用:

在MySQL集群环境中,可以分为主节点与从节点,通过主从复制可以实现数据备份,故障转移(主数据库服务器故障后,可切换到从数据库继续工作,避免数据丢失),MySQL主从复制(架构的扩展,业务量越来越大,I/O访问频率过高,单机无法满足,此时做多库的存储,降低磁盘IO访问的频率,提高单个机器的I/O性能),高可用,读写分离(使数据库能支持更大的并发,尤其在报表中,由于部分报表sql语句非常慢,导致锁表,影响前台服务,如果前台使用master,报表使用slave,那么报表sql将不会造成前台锁,保证了前台速度)。

MySQL主从复制存在的问题及解决办法:

一:主库宕机后,数据可能丢失

mysql semi-sync(半同步复制)确保事务提交后binlog至少传输到一个从库(事务在主库写完binlog后需要从库返回一个已接受ack,才放回给客户端),缺点是性能有一定的降低,网络异常或从库宕机,卡主库,直到超时或从库恢复。

二:从库只有一个sql Thread,主库写压力大,复制很可能延时。

MySQL并行复制,从库多线程apply binlog 库级别并行应用binlog。

 

CentOS7 64位安装MySql教程

 

  1. 1.先检查系统是否装有mysql
  2. rpm -qa | grep mysql
  3. 2.下载mysql的repo源
  4. wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
  5. 报错: -bash: wget: 未找到命令
  6. 安装插件  yum -y install wget
  7. 3.安装mysql-community-release-el7-5.noarch.rpm包
  8. sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm
  9. 4.安装MySQL
  10. sudo yum install mysql-server
  11. 5.重置MySQL密码
  12. mysql -u root
  13. 报错:
  14. ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
  15. 原因:原因是/var/lib/mysql的访问权限问题。
  16. chown root /var/lib/mysql/
  17. 6.重启MySQL服务
  18. service mysqld restart
  19. 7.接着登陆设置密码
  20. mysql -u root
  21. use mysql;
  22. update user set password=password('123456') where user='root';
  23. exit;
  24. 接着继续重启MySQL服务
  25. service mysqld restart
  26. 8.接着设置Root账户远程连接密码
  27. mysql -u root -p
  28. GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "root"; 
  29. 重启服务器 service mysqld restart
  30. 9.使用外网工具连接MySQL
  31. 关闭防火墙
  32. systemctl stop firewalld.service

 

MySQL主从复制配置:

主服务器节点:

  1. 1.vi /etc/my.cnf  新增以下内容
  2. 2.server_id=177  ###配置唯一的server_id
  3. log-bin=mysql-bin   ###开启日志文件
  4. 3.重启mysql服务 service mysqld restart
  5. 4.验证是否已经配置成功
  6. show variables like '%server_id%';
  7. 5.能够查询对应配置文件中的server_id 说明已经配置成功
  8. show master status;
  9. 能够看到同步的文件,和行数 说明已经配置成功。

从服务器节点:

克隆服务器

  1. vi /etc/my.cnf
  2. server_id=178  ###从服务器server_id
  3. log-bin=mysql-bin  ###日志文件同步方式
  4. binlog_do_db=test   ###同步数据库
  5. 重启mysql服务 service mysqld restart
  6. 验证是否已经配置成功
  7. show variables like '%server_id%';
  8. 能够查询对应配置文件中的server_id 说明已经配置成功
  9. 从服务器同步主服务器配置
  10. Change master to master_host='192.168.212.200',master_user='root',master_password='root',master_log_file='mysql-bin.000002',master_log_pos=216;
  11. 开始同步
  12. start slave
  13. 检查从服务器复制功能状态
  14. SHOW SLAVE STATUS
  15. Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work.
  16. 解决办法
  17. 因为服务器克隆的时候交UUID产生了重复 ,解决办法
  18. Cat  /etc/my.cnf
  19. cd /var/lib/mysql
  20. rm -rf auto.cnf
  21. 重启服务器即可
  22. service mysqld restart

 

© 著作权归作者所有

共有 人打赏支持
须臾之余
粉丝 3
博文 32
码字总数 38617
作品 0
吉安
程序员
私信 提问
Mysql从入门到精通视频课程【典藏版】

从零基础学习MySQL/MariaDB数据库,为我们的Linux运维技术加分,每个成功的男人背后都有个她支撑着,而每个NB的架构后面都有一个MySQL支撑着。 1、Mysql/MariaDB数据库入门简介 本套课程将跟...

让往事随风
2016/04/08
296
3
MySQL主从复制——主库已有数据的解决方案

在上篇文章中我们介绍了基于Docker的Mysql主从搭建,一主多从的搭建过程就是重复了一主一从的从库配置过程,需要注意的是,要保证主从库my.cnf中server-id的唯一性。搭建完成后,可以在主库查...

撸码那些事
2018/07/30
0
0
mysql 主备XtraBackup恢复

> MySQL主从同步原理MySQL主从同步是在MySQL主从复制(Master-Slave Replication)基础上实现的,通过设置在Master MySQL上的binlog(使其处于打开状态),Slave MySQL上通过一个I/O线程从Maste...

我不是瘦子
2018/01/02
0
0
Mysql高可用复制原理及主从实例测试解析

一、Mysql复制简介 使用mysql复制功能可以将主数据的数据复制到多台从服务器上。默认情况下,采用异步传输方式,数据复制可以在各种不同的网路环境中进行。主从复制技术在企业生产中得到了广...

super李导
2017/02/09
0
0
MySQL主从复制

1.1 MySQL主从复制介绍 MySQL数据库的主从复制方案,和使用scp/rsync等命令进行的文件级别复制类似,都是数据的远程传输,只不过MySQL的主从复制是其自带的功能,无需借助第三方工具,而且,...

lsy950109
2017/06/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

如果让你写一个消息队列,该如何进行架构设计?

面试题 如果让你写一个消息队列,该如何进行架构设计?说一下你的思路。 面试官心理分析 其实聊到这个问题,一般面试官要考察两块: 你有没有对某一个消息队列做过较为深入的原理的了解,或者...

李红欧巴
今天
4
0
错题

无知的小狼
今天
2
0
PowerShell因为在此系统中禁止执行脚本的解决方法

参考:window系统包管理工具--chocolatey 报错提示: & : 无法加载文件 C:\Users\liuzidong\AppData\Local\Temp\chocolatey\chocInstall\tools\chocolateyInstall.ps1,因为在此系统上禁止运...

近在咫尺远在天涯
今天
3
0
TP5 跨域请求处理

https://blog.csdn.net/a593706205/article/details/81774987 https://blog.csdn.net/wyk9916/article/details/82315700...

15834278076
今天
3
0
深入理解java虚拟机-Java内存区域与内存溢出异常

深入理解java虚拟机 Java内存区域与内存溢出异常 运行时数据区域 程序计数器 线程私有,内存小,是当前线程执行的字节码行号指示器,字节码解释器通过改变这个计数器的值来选取下一条需要执行...

须臾之余
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部