mariadb的主从复制、主主复制、半同步复制配置详解

yizhihongxing

Mariadb的主从复制、主主复制、半同步复制配置详解

Mariadb是一款常用的开源数据库,支持不同的复制方式,包括主从复制、主主复制和半同步复制。这篇攻略将帮助你详细了解这些复制方式的基本原理和如何配置。

主从复制

在主从复制中,一个Mariadb服务器是主服务器(Master),而其他的服务器(Slave)是从服务器。主服务器将自己的所有更改操作记录到二进制日志文件(binary log),然后从服务器从主服务器上的二进制日志中读取并执行这些更改操作,以保持数据的同步。

主从复制的配置步骤如下:

  1. 在主服务器上设置二进制日志(binary logging),并在Mariadb配置文件中开启二进制日志选项:

[mysqld]
log-bin=mysql-bin
server-id=1

log-bin选项开启二进制日志功能,而server-id是唯一的主服务器ID。

  1. 在从服务器上,编辑Mariadb配置文件,指定唯一的从服务器ID:

[mysqld]
server-id=2

  1. 在从服务器上运行以下命令,以连接并开始执行主服务器上的二进制日志:

CHANGE MASTER TO MASTER_HOST='master_host_name',
MASTER_USER='replication_user_name',
MASTER_PASSWORD='replication_password',
MASTER_LOG_FILE='recorded_log_file_name',
MASTER_LOG_POS=recorded_log_position;

这些选项中,master_host_name是主服务器的名称,replication_user_namereplication_password是在主服务器上用于复制的用户和密码,而recorded_log_file_namerecorded_log_position是主服务器上记录的二进制日志位置。

示例1:

假设主服务器的IP地址为192.168.1.1,从服务器的IP地址为192.168.1.2。

  • 在主服务器上,编辑Mariadb配置文件:

[mysqld]
log-bin=mysql-bin
server-id=1

  • 在从服务器上,编辑Mariadb配置文件:

[mysqld]
server-id=2

  • 在从服务器上,执行以下命令:

CHANGE MASTER TO MASTER_HOST='192.168.1.1',
MASTER_USER='replica',
MASTER_PASSWORD='replica',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=107;

主主复制

在主主复制中,每个服务器都可以是主服务器,同时也可以是从服务器。这种配置方式可以实现数据的高可用性,并且允许在每个服务器上进行读写操作。

主主复制的配置步骤如下:

  1. 在每个服务器上都执行主从复制的配置步骤。

  2. 在每个服务器上,指定日志更改处理方式为ROW:

[mysqld]
binlog-format=ROW

这将记录所有更改操作的原始行数据。

  1. 在每个服务器上,创建一个新的复制用户:

CREATE USER 'replication'@'%' IDENTIFIED BY 'replication';
GRANT REPLICATION SLAVE ON *.* TO 'replication'@'%';

这个用户主要用于在服务器之间进行数据同步。

示例2:

假设有两台Mariadb服务器,分别位于IP地址为192.168.1.3和192.168.1.4的两个主机上。

  • 在两台服务器上,都按照主从复制的配置步骤进行配置,并指定日志更改处理方式为ROW:

[mysqld]
log-bin=mysql-bin
server-id=1
binlog-format=ROW

[mysqld]
server-id=2
binlog-format=ROW

  • 在每个服务器上,创建一个新的复制用户,并授予复制权限:

CREATE USER 'replica'@'%' IDENTIFIED BY 'replica';
GRANT REPLICATION SLAVE ON *.* TO 'replica'@'%';

  • 在每个服务器上,执行以下命令以连接并开始执行另一台服务器上的二进制日志:

CHANGE MASTER TO MASTER_HOST='192.168.1.x',
MASTER_USER='replica',
MASTER_PASSWORD='replica',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=107;

半同步复制

在半同步复制中,每次写操作都必须被至少两个服务器验证才能被提交。同时还支持异步复制模式,以提高容错性和性能。

半同步复制的配置步骤如下:

  1. 在每个服务器上都执行主从复制的配置步骤,并指定日志更改处理方式为ROW。

  2. 在每个服务器上,启用复制协议插件:

[mysqld]
plugin-load=add_slave_channels.so

  1. 在每个服务器上,启用半同步复制:

[mysqld]
rpl_semi_sync_master_enabled=1
rpl_semi_sync_slave_enabled=1

主服务器需要启用rpl_semi_sync_master_enabled,而从服务器需要启用rpl_semi_sync_slave_enabled

示例3:

假设有两台Mariadb服务器,分别为主服务器和从服务器。

  • 在两台服务器上,都按照主从复制的配置步骤进行配置,并指定日志更改处理方式为ROW。

  • 在每个服务器上,启用复制协议插件:

[mysqld]
plugin-load=add_slave_channels.so

  • 在主服务器和从服务器上,启用半同步复制:

[mysqld]
rpl_semi_sync_master_enabled=1

[mysqld]
rpl_semi_sync_slave_enabled=1

总结

通过本文,你应该已经掌握了Mariadb的主从复制、主主复制和半同步复制的基本原理和配置方法。这些复制方式可以增加数据的可用性和容错性,是大型数据库系统不可或缺的技术。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:mariadb的主从复制、主主复制、半同步复制配置详解 - Python技术站

(0)
上一篇 2023年5月21日
下一篇 2023年5月21日

相关文章

  • MySQL中符号@的作用

    当在 MySQL 中使用符号 @ 时,有以下两个常见的作用: 1. 用户变量 用户变量是一种可以保存值以供后续查询使用的变量。在MySQL中,用户变量以 @ 符号开头,后面跟上变量名,例如 @my_variable。 用户变量与普通变量的区别在于,用户变量只在当前连接中有效。也就是说,如果您使用多个连接来访问同一个数据库,则每个连接都有其自己的变量。 以下是…

    database 2023年5月22日
    00
  • 怎样在UNIX系统下安装MySQL

    下面是在UNIX系统下安装MySQL的完整攻略: 1. 下载MySQL 首先需要下载MySQL的可执行程序,MySQL官方提供了多种下载方式,可以从官网下载或使用apt-get等包管理器进行安装。以下是在Ubuntu系统下使用apt-get安装MySQL的命令: sudo apt-get update sudo apt-get install mysql-s…

    database 2023年5月22日
    00
  • PHP实现的简单分页类及用法示例

    下面我就给出详细的“PHP实现的简单分页类及用法示例”的完整攻略。 准备工作 在使用分页类之前,我们需要先确定每一页显示的记录数、总记录数和当前页码。同时,我们还需要确保PHP已经安装并成功配置。 实现分页类 下面是一段PHP实现的简单分页类的代码: class Page { private $total; // 总记录数 private $pagesize…

    database 2023年5月21日
    00
  • mysql中已经存在某个库中有大小写的表,将lower_case_table_names由0改为1对已经存在的表是否有影响?

    需求描述:   今天遇到了修改lower_case_table_names参数的问题,想了下,如果原来里面有表,表名有大小写的,   如果将lower_case_table_names从默认的0改为1之后,那么对于原来的表有没有影响.做个实验,在此   记录下. 操作过程: 1.原来未修改之前,库中创建大小写区分的表 mysql> drop datab…

    MySQL 2023年4月13日
    00
  • mysql一键安装教程 mysql5.1.45全自动安装(编译安装)

    MySQL一键安装教程(MySQL5.1.45全自动安装 – 编译安装) 前言 MySQL 是一款开源的关系型数据库管理系统,被广泛应用于互联网行业和企业级应用中。本文主要介绍 MySQL 在 Linux 操作系统中的一键安装教程。我们将通过编译安装的方式来完成全自动安装。 准备工作 在进行 MySQL 安装前,我们需要做如下准备工作: 安装必要的编译工具和…

    database 2023年5月22日
    00
  • linux下安装启动性能测试工具redis benchmark

    下面是详细的操作步骤: 准备工作 在开始安装 Redis Benchmark 工具之前,需要先安装 Redis 数据库。可以参考以下文章进行安装: Ubuntu18.04下安装Redis教程 安装完 Redis 数据库之后,可以使用以下命令来检查 Redis 是否安装成功: redis-cli ping 如果出现 PONG 字样,则说明 Redis 安装成功…

    database 2023年5月22日
    00
  • MySQL执行状态的查看与分析

    下面是关于“MySQL执行状态的查看与分析”的完整攻略。 概述 在MySQL数据库中,为了统计查询中语句的执行效率,可以通过查看和分析SQL执行状态来获取相应的信息。MySQL执行状态是一个可视化的记录工具,可以进行针对SQL语句的实时监控和查看。 MySQL执行状态的查看 查看MySQL执行状态可以使用命令:SHOW STATUS,该命令会列出MySQL服…

    database 2023年5月22日
    00
  • linux 系统中软件raid 配置方法

    下面是详细的「Linux 系统中软件 RAID 配置方法」攻略: 什么是软件 RAID? RAID,全称 Redundant Array of Inexpensive Disks,即廉价冗余磁盘阵列。RAID 可以通过多个磁盘组合成一个逻辑卷,从而提供更高的数据可靠性和 I/O 性能,并在单个磁盘失效时保护数据。软件 RAID 就是利用系统软件(Linux …

    database 2023年5月22日
    00
合作推广
合作推广
分享本页
返回顶部