IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> mariadb实现服务器的数据分库-主从同步 -> 正文阅读

[大数据]mariadb实现服务器的数据分库-主从同步

mariadb实现服务器的数据主从同步1. 主从同步配置原理2. 使用mariadb实现主从同步

mariadb实现服务器的数据分库-主从同步

1. 主从同步配置原理

?

  • mariadb主从复制中:
  • 第一步:master记录二进制日志。在每个事务更新数据完成之前,master在二日志记录这些改变。Mariadb将事务写入二进制日志,即使事务中的语句都是交叉执行的。在事件写入二进制日志完成后,master通知存储引擎提交事务。

    第二步:slave将master的binary log拷贝到它自己的中继日志。首先,slave开始一个工作线程——I/O线程。I/O线程在master上打开一个普通的连接,然后开始binlog dump process。Binlog dump process从master的二进制日志中读取事件,如果已经执行完master产生的所有文件,它会睡眠并等待master产生新的事件。I/O线程将这些事件写入中继日志。

    第三步:SQL slave thread(SQL线程)处理该过程的最后一步。SQL线程从中继日志读取事件,并重新执行其中的事件而更新slave的数据,使其与master中的数据一致。

  • mariadb主从复制概述:

    • 复制解决的基本问题是让一台服务器的数据和另外的服务器保持同步。

    • 一台主服务器可以连接多台从服务器,并且从服务器也可以反过来作主服务器。

    • 主服务器和从服务器可以位于不同的网络拓扑中,还能对整台服务器、特定的数据库,甚至特定的表进行复制。

  • Mariadb复制技术有以下一些特点:

    • (1) 数据分布 (Data distribution )

    • (2) 负载平衡(load balancing)

    • (3) 备份(Backups)

    • (4)高可用性和故障转移 High availability and failove

2. 使用mariadb实现主从同步

前置条件:

-两台分别配置了mariadb的服务器, ,搭建之前两个数据库的数据保持一致

主配置:

  1. 修改配置文件

    # 注意这里和MySQL的配置是不一样的
    vim /etc/my.cnf.d/server.cnf
    ?
    # 在配置文件后面添加
    server-id=1
    log-bin=mysql-bin
  2. 重启mariadb服务

    systemctl restart mariadb.service
  3. 创建slave用户

    # 进入mariadb数据库中
    # 创建slave用户,设置密码为123 
    MariaDB [(none)]> CREATE USER 'slave'@'%' IDENTIFIED BY '123';
    # 赋予slave用户最高权限
    MariaDB [(none)]> GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%';
  4. 刷新数据库权限,使之设置生效

    MariaDB [(none)]> flush privileges;
  5. 查看master的状态 ,如图

    MariaDB [(none)]> show master status;

?

  1. 注:内容,slave服务器设置要用到

从配置:

  1. 修改配置文件

    # 注意这里和MySQL的配置是不一样的
    vim /etc/my.cnf.d/server.cnf
    ?
    # 在配置文件后面添加,注意这里和主配置中的不一致
    server-id=2
  2. 重启mariadb服务,使之生效

    systemctl restart mariadb.service
  3. 建立主从链接

    # 进入从服务器的mariadb中 执行以下命令 
    MariaDB [(none)]> CHANGE MASTER TO MASTER_HOST='192.168.29.137', MASTER_USER='slave',
    MASTER_PASSWORD='123', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=1443;(必须和主sql一样)
    # MASTER_HOST:主机ip 
    # MASTER_USER:主机中设置的salve用户名
    # MASTER_PASSWORD: 主机中设置的salve用户的密码
    # MASTER_LOG_FILE,MASTER_LOG_POS:主机中查到的数据
  4. 启动slave

    MariaDB [(none)]> start slave;
  5. 查看数据库的I/O线程,SQL线程

    MariaDB [(none)]> show slave status\G;

????????

?

注:如果这两个的状态均为YES,就代表成功了

接下来,就可以进行验证了

我们可以在主库中添加数据,之类的操作,之后从服务器数据库就会自动同步数据了.

参考:

mariadb配置主从 mariadb主从配置-白红宇的个人博客

Mariadb数据库主从复制原理&实践技术文档 - 云+社区 - 腾讯云 (tencent.com)

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-01-17 11:34:12  更:2022-01-17 11:35:03 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 14:39:28-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码