MariaDB/MySQL之简单复制及应用扩展

数据库的复制在实际生产环境中对于提高数据的安全性和数据库的性能是必不可少的重要手段,但不管手段多么高明,都要从简单的复制开始!今天的实验就从简单复制开始!



实验准备

服务器类型/名称 ip地址 软件版本 平台
master/node4 192.168.1.114 mariadb-10.0.10 CentOS 6.5 x86_64
slave/node3 192.168.1.113 mariadb-10.0.10 CentOS 6.5 x86_64

注意:软件通常都具有向上兼容性,所以主节点的软件版本应该低于或和从节点相同,而不能高于从节点。

另外,node3、node4已经部署MariaDB,部署过程这里不再介绍,想了解的朋友可以戳这里



一、MariaDB简单主从复制

1、配置ntp服务器

为什么要配置ntp服务器呢?因为数据主从同步主要是根据主节点的二进制日志,主从节点如果时间不同步,同步数据就会出现很大问题。

ntp服务在CentOS 6.5上已经是默认服务,简单的话只需要启动服务即可,但在实际生产环境中,要根据实际需要配置。这里,我们在node1(可连接因特网)上面启动ntp服务

[[email protected] ~]# service ntpd start
Starting ntpd:                                             [  OK  ]
同步时间
[[email protected] ~]# ntpdate 192.168.1.111
[[email protected] ~]# ntpdate 192.168.1.111

2、配置主节点(node4)

对于主节点我们要做的修改很少,因为试验环境简单,主要要在/etc/my.cnf中做三个修改:

(1)修改server-id,在主从结构中,没个节点的server-id都应该是唯一的;

(2)修改二进制日志的存放路径,在MariaDB的应用中,十分重要的一点就是二进制日志和数据库数据不能再同一目录中(最好是不在同一磁盘)存放;

(3)创建一个具有复制权限的用户帐号;

MariaDB [(none)]> grant replication client,replication slave on *.* to ‘slave‘@‘192.168.1.%‘ identified by ‘slavepass‘;

3、配置从节点(node3)

在/etc/my.cnf中做如下修改:

(1)修改server-id,并没有什么特别的规范,和主节点不同即可;

server-id       = 200

(2)启动中继日志(如果从节点没有次从节点的话,即为末端节点时关闭二进制日志);

1、关闭二进制日志只需要注销二进制日志行即可,在MariaDB-10.0.10中其他方式是关不掉的;
2、开启中继日志
relay_log=/data/relaylogs/relay-log

(3)连接至主节点,开始同步;

MariaDB [(none)]> change master to master_host=‘172.16.26.4‘,master_user=‘slave‘,master_password=‘slavepass‘;
MariaDB [(none)]> start slave;

至此,简单主从已经设置好了,并且已经同步好数据了,是不是比想象的简单呢?在从节点上看一下成果吧(图片不是初次同步结果):



二、复制的应用扩展

1、如何限定从节点只能进行读操作?

在从节点只进行读操作,对于数据安全十分重要。说起来很高大上,但实现起来却很简单,只需要在/etc/my.cnf中添加

read-only = on

然后重启MariaDB即可,查看从节点的状态:

显然只读状态已经激活。

注意:该操作只能显示那些没有super权限的用户。

2、如何主从复制时的事务安全?

在MariaDB的默认机制中,为了提高二进制日志的IO性能,用户提交的事务并不是直接写到二进制日志当中,而是缓存到二进制日志的缓冲区中,但这样的事务是不安全的,因为如果此时数据库崩溃,那么二进制日志缓冲区中的事务是不能被保存到二进制日志,进而同步到从节点;那么数据恢复的时候,就会出现数据的回滚。

为了避免以上情况,我们应该让事务部缓存,而直接写到二进制日志当中去,虽然这样做会降低数据库系统性能,但以性能换数据安全是值得的!因此我们需要在/etc/my.cnf中添加

sync_binlog=n
##设定多久同步一次二进制日志至磁盘文件中,0表示不同步,任何正数值都表示对二进制每n次写操作之后同步一次。
##当autocommit的值为1时,每条语句的执行都会引起二进制日志同步,否则,每个事务的提交会引起二进制日志同步。

时间: 2024-10-06 10:11:26

MariaDB/MySQL之简单复制及应用扩展的相关文章

MariaDB (MySQL DB) MMM复制

 一:简介 MMM 即Master-Master Replication Manager for MySQL(mysql主主复制管理器)关于mysql主主复制配置的监控.故障转移和管理的一套可伸缩的脚本套件(在任何时候只有一个节点可以被写 入),这个套件也能对居于标准的主从配置的任意数量的从服务器进行读负载均衡,所以你可以用它来在一组居于复制的服务器启动虚拟ip,除此之外,它还有实 现数据备份.节点之间重新同步功能的脚本.MySQL本身没有提供replication failover的解决方案,

MariaDB(MySQL):半同步复制+ssl+复制过滤

一.半同步复制   1.mysql的复制 通过记录主服务器的二进制日志,并在从服务器上进行重放(replay)完成复制,默认都是异步进行的. 2.半同步复制 半同步复制是google贡献给MySQL的一个补丁,在MySQL 5.5之后就支持了,MariaDB都是支持的. MySQL的插件,一般在MySQL安装目录下; 半同步复制插件默认没有启用,需要自己安装,/usr/local/mysql/lib/plugin可以看到semisync_master.so和semisync_slave.so和其

mysql简单复制服务搭建

1.安装mysql源(centos7中默认是不包含mysql源) wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm rpm -ivh mysql-community-release-el7-5.noarch.rpm yum install mysql-server 2.配置mysql-master 在my.cnf中添加: prot=3306 log-bin=master-bin log-bin-index=ma

超详细MySQL主主复制+MMM实现高可用

简介 MMM(Master-Master Replication Manager for MySQL, MySQL主主复制管理器)是一套灵活的脚本程序,基于perl实现,用来对mysql replication进行监控和故障迁移,并能管理mysql Master-Master复制的配置.注意同一时间只有一个节点是可写.MMM的监管端会提供多个虚拟IP(VIP)包括一个可写VIP,多个可读VIP,通过监管的管理,这些IP会绑定在可用mysql之上,当某一台mysql宕机时,会将VIP迁移至其他my

mariadb(mysql)基本介绍

mariadb(mysql): 数据结构模型:层次模型.网状结构.关系模型 关系模型: 二维关系:row, column 数据库管理系统:DBMS 关系:Relational,RDBMS 补充材料:RDMBS设计范式基础概念 设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小. 目前关系数据库有六种范式:第一范式(1NF).第二范式(2NF).第三范式(3NF).巴德斯科范式(BCNF).第四范式(4N

mariadb 10 多源复制(Multi-source replication) 业务使用场景分析,及使用方法

mariadb 10 多源复制(Multi-source replication) 业务使用场景分析,及使用方法 官方mysql一个slave只能对应一个master,mariadb 10开始支持多源复制,一个slave可以有多个master,分别从各自的master复制不同的DB. 这个特性可以用在OLAP环境中,传统电商DB都是拆了再拆,分库分表,sharding,而OLAP环境或者大数据平台环境,通常需要各种数据的聚合,多个平台多个DB数据的复合查询,而这些数据分散在各个库中,怎么办了,当

CentOS 7 下安装 LEMP 服务(nginx、MariaDB/MySQL 和 php)

原文 CentOS 7 下安装 LEMP 服务(nginx.MariaDB/MySQL 和 php) LEMP 组合包是一款日益流行的网站服务组合软件包,在许多生产环境中的核心网站服务上起着强有力的作用.正如其名称所暗示的, LEMP 包是由 Linux.nginx.MariaDB/MySQL 和 PHP 组成的.在传统的 LAMP 包中使用的 Apache HTTP 协议服务器性能低下而且难于大规模集群,相比来说 nginx 的高性能及轻量级等特性,正是其的替代方案. MariaDB 是一款社

MySQL半同步复制的数据一致性探讨微信后台团队实践【转】

MySQL是一个RDBMS(关系型数据库管理系统),由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.由于其体积小.速度快.拥有成本低,尤其是开放源码这一特点,广受各大企业欢迎,包括腾讯,阿里,百度,网易,Google,FaceBook等互联网巨头企业. 随着互联网的高速发展,互联网服务可用性变得越发重要,数据容灾也随之成为各企业的关键任务.在数据容灾中,数据库集群如何处理数据一致性也成为了各企业需要解决的问题.特别在一些新兴的金融服务中,MySQL也逐渐成为其核心数据库,如何

MariaDB Parallel Replication 并行复制

官方文档: https://mariadb.com/kb/en/mariadb/parallel-replication 从10.0.5版本开始,MariaDB开始支持并行复制 MariaDB10.0的从服务器能并行的执行查询和复制操作,这篇文章将会解释是如何实现的和你可以做的调优. 注意:主从服务器上的 MariaDB 的版本必须是10.0.5和10.0.5的以后的版本,才能启用并行复制 Parallel replication overview -- 并行复制概述 MariaDB 的复制通过