MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可MariaDB的目的是完全兼容MySQL,包括API和命令行,MySQL由于现在闭源了,而能轻松成为MySQL的代替品.在存储引擎方面,使用XtraDB来代替MySQL的InnoDB,MariaDB由MySQL的创始人Michael Widenius主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL AB卖给了SUN,此后,随着SUN被甲骨文收购MySQL的所有权也落入Oracle的手中.MariaDB名称来自MichaelWidenius的女儿Maria的名字.

MariaDB数据库自身提供的主从复制功能可以方便的实现数据的多处自动备份,还能实现数据库的拓展,多个数据备份不仅可以加强数据的安全性,通过实现读写分离还能进一步提升数据库的负载性能,为大规模企业MariaDB集群提供了有利的技术支撑.

MariaDB 主-从 同步配置

基于一台服务器的数据复制,故得名单机热备,主-备 Active-Standby

主-备方式,即指的是一台服务器处于某种业务的激活状态(即Active状态),另一台服务器处于该业务的备用状态(即Standby状态),主数据库数据更新后,备份服务器同步数据只本机

◆两台同步执行◆

1.安装Mariadb,设置初始密码,启动服务,并设置开机自启动,这里的配置步骤应在两台主机上同步执行

yum install -y mariadb mariadb-serversystemctl restart mariadbmysql_secure_installation

2.修改MariaDB主配置文件,写入log-bin参数开启二进制日志文件,然后写入server-id指定本台MariaDB服务器的ID号(注意:这里主从不要重复)

vim /etc/my.cnf[mysqld]log-bin=mysql-bin            #开启二进制日志文件
server-id=12                 #本台MySQL服务器ID(主从不能重复)systemctl restart mariadb    #重启生效

◆主数据库执行◆

1.进入主MariaDB数据库,授权给从数据库登陆的账号,这里显示二进制日志文件大小并记录下来

grant replication slave on *.* to "用户名"@'%' identified by "密码";    #创建用于从服务器登陆的账号show master status;                                                   #显示日志状态MariaDB [(none)]> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000002 | 245 | | |
+------------------+----------+--------------+------------------+
row in set (0.00 sec)

◆从数据库执行◆

1.进入从MariaDB数据库,使用主数据库授权的用户名,密码,以及相应的日志文件名称 master_log_file,和日志文件位置 master_log_pos,此处在主数据库上获取即可

change master to master_host='服务器IP',master_user='授权账号',master_password='密码',master_log_file='日志文件',master_log_pos=文件位置;start slave;             #启用同步show slave status\G;     #查看同步状态注意:两个状态同时开启即可Slave_IO_Running: Yes
Slave_SQL_Running: Yes

MariaDB 主-主 同步配置

基于两台服务器的复制方式较多,故得名双机热备,双主机方式即指两种不同业务分别在两台服务器上互为主备状态(即 Active-Standby和Standby-Active状态),这里需要注意的是主-主同步配置,其实就是两台MariaDB数据库互为主从,所以,要在两台主机间作两次相同的操作

◆两台同步执行◆

1.安装MariaDB,设置初始密码,启动服务,并设置开机自启动,这里的配置步骤应在两台主机上同步执行

yum install -y mariadb mariadb-serversystemctl restart mariadbmysql_secure_installation

2.将 MariaDB1 的数据拷贝到 MariaDB2 上,实现数据的一致性,(注意:这里应先锁定表结构,防止数据不一致)

flush tables with read lock;                      #锁定数据表为只读模式mysqldump -u root -p --all-databases >back.sql    #备份数据库scp back.sql root@192.168.1.13:/root              #将数据传递到远程主机unlock tables;                                    #解除表锁定mysql -uroot -p <back.sql                         #从数据库恢复数据

3.修改MariaDB主配置文件(注意:两台都要修改),开启二进制日志和制定服务器ID号

vim /etc/my.cnf[mysqld]log-bin=mysql-bin                                  #开启二进制日志
server-id=10                                       #指定服务器ID号(两台不允许重复)
replicate-do-db=test                               #要同步的数据库
binlog-ignore-db=mysql                             #不需要同步的数据库
binlog-ignore-db=information_schema                #不需要同步的数据库
auto-increment-increment=2                         #每次自增长2
auto-increment-offset=1                            #自增长从1开始systemctl restart mariadb

◆MariaDB1 执行◆

1.进入 MariaDB1 数据库,创建用于从数据库登陆的账号和密码

grant replication slave on *.* to '用户名'@'%' identified by '密码';    #创建用于从数据库登陆的用户show master status;                                                   #查看二进制文件名

2.进入 MariaDB2 数据库,同步数据

change master to master_host='主服务器IP',master_user='授权账号',master_password='密码',master_log_file='二进制文名',master_log_pos=文件空间大小;start slave;            #启动同步功能show slave status\G;    #查看同步状态

◆MariaDB2 执行◆

1.进入 MariaDB2 数据库,创建用于从数据库登陆的账号和密码

grant replication slave on *.* to '用户名'@'%' identified by '密码';    #创建用于从数据库登陆的用户show master status;                                                   #查看二进制文件名

2.进入 MariaDB1 数据库,同步数据

change master to master_host='主服务器IP',master_user='授权账号',master_password='密码',master_log_file='二进制文名',master_log_pos=文件空间大小;start slave;            #启动同步功能show slave status\G;    #查看同步状态

MariaDB 主-主-从 同步配置

主-主-从,字面意思就是,两个主一个从,主要用于数据备份,一次性备份两个主数据库资源,这样一个从数据库,就可以同时备份多个主数据库了,节约了宝贵的服务器资源

◆两台主数据库执行◆

1.两台主服务器都需要安装MySQL初始化并设置密码

yum install -y mariadb mariadb-serversystemctl restart mariadbmysql_secure_installation

2.两台主服务器都应配置以下内容(两台主MySQL都需要配置)

vim /etc/my.cnf              #修改配置文件写入以下内容↓
log-bin=mysql-bin            #开启二进制日志
server-id=147                #服务器ID号systemctl restart mariadb    #重启服务

3.登陆主MySQL并创建用户从服务器登陆的用户 (两台主MySQL都需要配置)

mysql -uroot –p                                                         #登陆MySQLgrant replication slave on *.* to '授权用户'@'%' identified by '密码';    #创建从服务器用户show master status;                                                     #显示日志状态

◆从数据库应执行的步骤◆ 切记此MySQL不能启动

1.修改从MySQL主配置文件

vim /etc/my.cnf写入以下内容↓[mysqld_multi]
mysqld=/usr/bin/mysqld_safe
mysqladmin=/usr/bin/mysqladmin
log=/tmp/multi.log[mysqld147]                            #名称后面加数字,后期启动用(不应相同)
port=3306                              #端口号(不应相同)
pid-file=/var/lib/mysqla/mysqld.pid    #MySQL进程号保存位置
datadir=/var/lib/mysqla                #数据文件保存位置
socket=/var/lib/mysqla/mysql.sock      #指定登陆套接字
server-id=110                          #ID号,同一主从环境不能相同
user=mysql                             #MySQL登陆用户名[mysqld148]                            #名称后面加数字,后期启动用(不应相同)
port=3307                              #端口号(不应相同)
pid-file=/var/lib/mysqlb/mysqld.pid    #MySQL进程号保存位置
datadir=/var/lib/mysqlb                #数据文件保存位置
socket=/var/lib/mysqlb/mysql.sock      #指定登陆套接字
server-id=110                          #ID号,同一主从环境不能相同
user=mysql                             #MySQL登陆用户名

2.初始化数据库

mysql_install_db --datadir=/var/lib/mysqla --user=mysql    #初始化数据库a
mysql_install_db --datadir=/var/lib/mysqlb --user=mysql    #初始化数据库b

3.给相应目录赋予权限

cd /var/lib/
chown -R mysql:mysql /var/lib/mysqla/    #修改a文件权限
chown -R mysql:mysql /var/lib/mysqlb/    #修改b文件权限

4.启动相应服务器

mysqld_multi --defaults-file=/etc/my.cnf start 147    #开启147服务器
mysqld_multi --defaults-file=/etc/my.cnf start 148    #开启148服务器

5.登陆147和148数据库确定主从关系

mysql -P 3306 -S /var/lib/mysqla/mysql.sock    #登陆147数据库
mysql -P 3306 -S /var/lib/mysqlb/mysql.sock    #登陆148数据库
change master to master_host='服务器IP',master_user='授权账号',master_password='密码',master_log_file='日志文件',master_log_pos=文件位置;start slave;                                    #启用同步show slave status\G;                                #查看同步状态

转载于:https://www.cnblogs.com/LyShark/p/10200141.html

MariaDB 主从同步与热备(14)相关推荐

  1. Simotion应用与组网之十六同步与热备

    很多场景都需要冗余控制,意思是对重要设备要布置两台或多台.一种备用方式叫冷备,就是备用同样一套写好程序,然后断电后切换.很高级的是热备,就是主从两个主机,一个故障或断电,另一个可以正常使用.当然这里边 ...

  2. mariadb mysql同步_MySQL(Mariadb)主从同步基础

    一.准备阶段 两台linux虚拟机centos7版本,都安装了mariadb 5.5.6 进行主从同步配置: 首先防火墙要开放3306端口, 主库服务器ip:192.168.211.100 从库服务器 ...

  3. mysql主备数据库配置文档_MySQL数据库配置主从服务器实现双机热备实例教程

    网站:bbs.osyunwei.com 程序在:Web服务器192.168.21.129上面 数据库在:MySQL服务器192.168.21.169上面 实现目的:增加一台MySQL备份服务器(192 ...

  4. mariadb 和mysql主从_MariaDB主从同步

    MariaDB是MySQL的一个主要的开源分支.由于oracle收购MySQL之后,担心将其闭源,MySQL之父monty主导开发了MariaDB,用自己小女儿的名字命名.Maria DB完全兼容My ...

  5. 04-防火墙双机热备

    双机热备的系统要求 硬件要求 组成双机热备的两台FW的型号必须相同,安装的单板类型.数量以及单板安装的位置必须相同. 两台FW的硬盘配置可以不同.例如,一台FW安装硬盘, 另一台FW不安装硬盘,不会影 ...

  6. oracle rac和ha对比,双机热备(HA),dg和RAC区别

    Data Guard 是Oracle的远程复制技术,它有物理和逻辑之分,但是总的来说,它需要在异地有一套独立的系统,这是两套硬件配置可以不同的系统,但是这两套系统的软件结构保持一致,包括软件的版本,目 ...

  7. Nginx+Keeplived双机热备(主从模式)

    Nginx+Keeplived双机热备(主从模式) 参考资料: http://www.cnblogs.com/kevingrace/p/6138185.html 双机高可用一般是通过虚拟IP(漂移IP ...

  8. 使用meb工具在线热备,将单实例切换为主从

    主机配置说明: 192.168.30.120  master 192.168.30.121  slave meb使用说明: mysqlbackup --defaults-file=/etc/my.cn ...

  9. Nginx之——Nginx+keepalived双机热备(主从模式)

    负载均衡技术对于一个网站尤其是大型网站的web服务器集群来说是至关重要的!做好负载均衡架构,可以实现故障转移和高可用环境,避免单点故障,保证网站健康持续运行. 由于业务扩展,网站的访问量不断加大,负载 ...

最新文章

  1. Django 1.6 部署
  2. 关于actionbar的drawerlayout
  3. wait/notify的基本使用
  4. 《明日方舟》Python版公开招募工具
  5. java map 变量_Java源码解析HashMap成员变量
  6. 大咖来信 | 张亚勤@2018:终日“闭关”读论文,思考终极算法
  7. LR11录制手机/pad App脚本多种方法介绍(Mobile App补丁包)
  8. hp原装usb无线打印服务器,从USB转换到无线 | 无线打印中心 | 惠普中国
  9. 信息搜索的基本技能总结
  10. 浙江移动彩信新sp接入指南
  11. OpenTK探索二:立体纹理贴图
  12. Web前端之HTML+CSS的知识总结
  13. 【报告分享】2021中国瑜伽行业报告-精练(附下载)
  14. 决策易贴心黑科技第2波,智能巡店更高效!
  15. 物联网的云计算、雾计算、边缘计算和MIST计算的基本概念
  16. 微信小程序-H5-uniapp css制作上下跳动的柱状图——频谱
  17. 办公室养龟有什么讲究,办公室养龟风水
  18. 等级保护与解读《网络安全法》
  19. dd-wrt 去广告_如何在DD-WRT上使用Pixelserv删除广告
  20. 【iOS】跳转App权限设置页面

热门文章

  1. LCS最大公共子序列【转载】
  2. vue 中使用promise
  3. CSS3 transform
  4. Goldengate 应用环境 mysql to oracle
  5. [LeetCode]Convert Sorted Array to Binary Search Tree
  6. oracle的函数索引怎么建,如何创建oracle函数索引
  7. Ubuntu常用快捷键
  8. .net 导出html 到excel 合并单元格,C#导出Excel,并且设置Excel单元格格式,合并单元格....
  9. leetcode算法题--网格照明
  10. 深度学习半自动标注_图像识别中标注工具labelImg的安装和使用——深度学习打标签...