Mysql的主从备份

4.主从备份

4.1 读写分离

原理:需要搭建主从模式,让主数据库(master)处理事务增改删操作,而从数据库(slave)处理SELECT查询操作

mycat配合数据库本身的复制功能,可以解决读写分离的问题

4.2 主从备份概念

什么是主从备份:就是一种主备模式的数据库应用

主库(Master)数据与备库(Slave)数据完全一致

实现数据的多重备份,保证数据的安全

可以在Master[InnoDB] 和 SLave[MyISAM] 中使用不同的数据库引擎,实现读写分离

4.2.1 MySql5.5 5.6 版本后本身支持主从备份

在老旧版本的MySQL数据库系统中,不支持主从备份,需要安装额外的RPM包,如果需要安装RPM只能在一个位置节点安装

4.2.2 主从备份目的:

实现主备模式:

保证数据的安全,尽量避免数据丢失的可能

实现读写分离:

使用不同的数据库引擎,实现读写分离,提高所有的操作效率,InnoDB使用DML语法操作,MyISAM使用DQL语法操作

4.2.3 主从备份效果

主库操作同步到备库

所有对Master的操作,都会同步到Slave中

如果Master和Salve天生上环境不同,那么对Master的操作,可能会在Slave中出现错误,如在创建主从模式之前Master有database:db1 db2 db3 Slave有database db1 db2 创建主从模式,现在的情况Master 和 Slave 天生不同,主从模式创建成功后,在Master中drop database db3 Slave 中抛出数据库SQL异常,后续所有的命令不能同步,一旦出现错误,只能重新实现主从模式。

4.2.4 主从模式下的逻辑图

image-20210102144408311

4.3 MySql 的主从模式搭建

4.3.1 安装MySQL

已安装

主库:192.168.80.132

从库:192.168.80.130

4.3.2 Master[主库]配置

修改Master 配置文件

vim /etc/my.cnf

#MySQL 服务唯一标识
#server_id 任意配置,只要是数字即可
#server_id Master 唯一标识数字必须小于Slave唯一标识数字
server_id=1
#开启日志功能以及日志文件命名
#变量的值就是日志文件的名称,是日志文件名称的主体
#MySQL额数据库自动增加文件名后缀和文件类型
log_bin=master_log

重启MySQL

systemctl restart mysql 

配置Master

访问MySQL

mysql -uroot -p

创建用户

在MySQL 数据库中,为不存在的用户授权,就是同步创建用户并授权,此用户是从库访问主库的用户,ip地址不能写为%

因为主从备份中,当前创建的用户,是给从库SLave 访问主库Master 使用的,用户必须写指定的访问地址,不能是通用地址。

set global validate_password_policy=0;
set global validate_password_length=4;

GRANT ALL PRIVILEGES ON *.* TO 'slave'@'192.168.80.130' IDENTIFIED BY 'slave' WITH GRANT OPTION;
FLUSH PRIVILEGES;

查看用户

use mysql;
select Host,User from user;

查看Master信息

show master status;
4.3.3 Slave[从库] 配置

修改Slave配置文件

vim /etc/my.cnf

#MySQL 服务唯一标识
#server_id 任意配置 只要是数字即可
#server_id Master 唯一标识数字必须大于 Slave唯一标识数字
server_id =1

修改uuid (可选)

主从模式要求多个MySQL:物理名称不能相同,即安装MySQL过程中Lunix自动生成的物理标志,唯一物理标志命名为uuid 保存位置是MySQL数据库的数据存放位置 ,默认为/var/lib/mysql目录中,文件名是auto.cnf

修改auto.cnf文件中的uuid数据,随意修改,不建议改变数据长度,建议改变数据内容

vim/var/lib/mysql/auto.cnf

重启MySQL服务器

systemctl restart mysql

配置Slave

访问MySQL

mysql -uroot -p

停止Slave功能

stop slave;

配置主库信息

需要修改的数据是依据Master信息修改的,Ip是Master所在物理机IP 用户名和密码是Master提供的Slave 访问用户名和密码,日志文件是在Master中查看的主库信息提供的,在Master中使用命名show master status查看日志文件名称

change master to
master_host ='192.168.80.132', master_user='slave',master_password='slave',master_log_file='mysql-bin.000010';

启动Slave 功能

start slave;

查看Slave配置

show slave status \G;

image-20210104091501290

这三项都为图上所示,表示主从成功!

猜你喜欢

转载自blog.csdn.net/zhanduo0118/article/details/112257810