MariaDB主从同步与热备
MariaDB数据库自身提供的主从复制功能可以方便的实现数据的多处自动备份,还能实现数据库的拓展,多个数据备份不仅可以加强数据的安全性,通过实现读写分离还能进一步提升数据库的负载性能,为大规模企业MariaDB集群提供了有利的技术支撑.
MariaDB 主-从 同步配置
基于一台服务器的数据复制,故得名单机热备,主-备 Active-Standby
主-备方式,即指的是一台服务器处于某种业务的激活状态(即Active状态),另一台服务器处于该业务的备用状态(即Standby状态),主数据库数据更新后,备份服务器同步数据只本机
◆两台同步执行◆
1.安装Mariadb,设置初始密码,启动服务,并设置开机自启动,这里的配置步骤应在两台主机上同步执行
yum install -y mariadb mariadb-server |
2.修改MariaDB主配置文件,写入log-bin参数开启二进制日志文件,然后写入server-id指定本台MariaDB服务器的ID号(注意:这里主从不要重复)
vim /etc/my.cnf |
◆主数据库执行◆
1.进入主MariaDB数据库,授权给从数据库登陆的账号,这里显示二进制日志文件大小并记录下来
grant replication slave on *.* to "用户名"@'%' identified by "密码"; #创建用于从服务器登陆的账号 |
◆从数据库执行◆
1.进入从MariaDB数据库,使用主数据库授权的用户名,密码,以及相应的日志文件名称 master_log_file,和日志文件位置 master_log_pos,此处在主数据库上获取即可
change master to master_host='服务器IP',master_user='授权账号',master_password='密码',master_log_file='日志文件',master_log_pos=文件位置; |
MariaDB 主-主 同步配置
基于两台服务器的复制方式较多,故得名双机热备,双主机方式即指两种不同业务分别在两台服务器上互为主备状态(即 Active-Standby和Standby-Active状态),这里需要注意的是主-主同步配置,其实就是两台MariaDB数据库互为主从,所以,要在两台主机间作两次相同的操作
◆两台同步执行◆
1.安装MariaDB,设置初始密码,启动服务,并设置开机自启动,这里的配置步骤应在两台主机上同步执行
yum install -y mariadb mariadb-server |
2.将 MariaDB1 的数据拷贝到 MariaDB2 上,实现数据的一致性,(注意:这里应先锁定表结构,防止数据不一致)
flush tables with read lock; #锁定数据表为只读模式 |
3.修改MariaDB主配置文件(注意:两台都要修改),开启二进制日志和制定服务器ID号
vim /etc/my.cnf |
◆MariaDB1 执行◆
1.进入 MariaDB1 数据库,创建用于从数据库登陆的账号和密码
grant replication slave on *.* to '用户名'@'%' identified by '密码'; #创建用于从数据库登陆的用户 |
2.进入 MariaDB2 数据库,同步数据
change master to master_host='主服务器IP',master_user='授权账号',master_password='密码',master_log_file='二进制文名',master_log_pos=文件空间大小; |
◆MariaDB2 执行◆
1.进入 MariaDB2 数据库,创建用于从数据库登陆的账号和密码
grant replication slave on *.* to '用户名'@'%' identified by '密码'; #创建用于从数据库登陆的用户 |
2.进入 MariaDB1 数据库,同步数据
change master to master_host='主服务器IP',master_user='授权账号',master_password='密码',master_log_file='二进制文名',master_log_pos=文件空间大小; |
MariaDB 主-主-从 同步配置
主-主-从,字面意思就是,两个主一个从,主要用于数据备份,一次性备份两个主数据库资源,这样一个从数据库,就可以同时备份多个主数据库了,节约了宝贵的服务器资源
◆两台主数据库执行◆
1.两台主服务器都需要安装MySQL初始化并设置密码
yum install -y mariadb mariadb-server |
2.两台主服务器都应配置以下内容(两台主MySQL都需要配置)
vim /etc/my.cnf #修改配置文件 |
3.登陆主MySQL并创建用户从服务器登陆的用户 (两台主MySQL都需要配置)
mysql -uroot –p #登陆MySQL |
◆从数据库应执行的步骤◆ 切记此MySQL不能启动
1.修改从MySQL主配置文件
vim /etc/my.cnf |
2.初始化数据库
mysql_install_db --datadir=/var/lib/mysqla --user=mysql #初始化数据库a |
3.给相应目录赋予权限
cd /var/lib/ |
4.启动相应服务器
mysqld_multi --defaults-file=/etc/my.cnf start 147 #开启147服务器 |
5.登陆147和148数据库确定主从关系
mysql -P 3306 -S /var/lib/mysqla/mysql.sock #登陆147数据库 |
change master to master_host='服务器IP',master_user='授权账号',master_password='密码',master_log_file='日志文件',master_log_pos=文件位置; |