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 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Linux MariaDB双机热备集群 -> 正文阅读

[大数据]Linux MariaDB双机热备集群

需要主从复制基础

《MariaDB主从复制》

准备工作

停止全部数据库的主从复制!!!需要主从复制的库一个都不能留,备份以后全部删掉!!!

mysql -u root -p

不知道是主库还是从库就都执行

STOP SLAVE;

主从数据库:A——》B是主从,即B是A的从库
从主数据库:A《——B是从主,即A是B的从库
双机热备:A?B,A和B互为主从库
主从数据库:192.168.1.11
从主数据库:192.168.1.111

Master主Slave从数据库(主从)

/etc/my.cnf

[mysqld]
#主
#id不能重复
server-id=1
#日志名称
log-bin=mariadb-bin
#被复制的库,多个用英文逗号隔开
binlog-do-db=demo
binlog_format=STATEMENT

#从
relay-log=mariaDB-relay

重启主从数据库

systemctl restart mariadb

登录MariaDB查询主从数据库是否启动bin-log日志

mysql -u root -p
show variables like '%log_bin%';
+---------------------------------+----------------------------------+
| Variable_name                   | Value                            |
+---------------------------------+----------------------------------+
| log_bin                         | ON                               |
| log_bin_basename                | /var/lib/mysql/mariadb-bin       |
| log_bin_compress                | OFF                              |
| log_bin_compress_min_len        | 256                              |
| log_bin_index                   | /var/lib/mysql/mariadb-bin.index |
| log_bin_trust_function_creators | OFF                              |
| sql_log_bin                     | ON                               |
+---------------------------------+----------------------------------+

出现log_bin的lavue是ON代表成功!

查看主从数据库的状态

show master status;
+--------------------+----------+--------------+------------------+
| File               | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+--------------------+----------+--------------+------------------+
| mariadb-bin.000001 |      330 | demo         |                  |
+--------------------+----------+--------------+------------------+

file的值后面会用到,Binlog_Do_DB就是需要主从复制的数据库。

Slave从Master主数据库(从主)

/etc/my.cnf

[mysqld]
#主
#id不能重复
server-id=2
#日志名称
log-bin=mariadb-bin
#被复制的库,多个用英文逗号隔开
binlog-do-db=demo
binlog_format=STATEMENT

#从
relay-log=mariaDB-relay

重启从主数据库

systemctl restart mariadb

登录MariaDB查询从主数据库是否启动bin-log日志

mysql -u root -p
show variables like '%log_bin%';
+---------------------------------+----------------------------------+
| Variable_name                   | Value                            |
+---------------------------------+----------------------------------+
| log_bin                         | ON                               |
| log_bin_basename                | /var/lib/mysql/mariadb-bin       |
| log_bin_compress                | OFF                              |
| log_bin_compress_min_len        | 256                              |
| log_bin_index                   | /var/lib/mysql/mariadb-bin.index |
| log_bin_trust_function_creators | OFF                              |
| sql_log_bin                     | ON                               |
+---------------------------------+----------------------------------+

出现log_bin的lavue是ON代表成功!

查看从主数据库的状态

show master status;
+--------------------+----------+--------------+------------------+
| File               | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+--------------------+----------+--------------+------------------+
| mariadb-bin.000002 |      333 | demo         |                  |
+--------------------+----------+--------------+------------------+

file的值后面会用到,Binlog_Do_DB就是需要主从复制的数据库。

回到主从数据库A192.168.1.11

A——》B,A是B的从库配置:
MASTER_HOST=主机IP(从主数据库IP地址)
MASTER_USER=主机用户
MASTER_PASSWORD=主机用户密码
MASTER_LOG_FILE=对应上面的File的值
MASTER_LOG_POS=对应上面的Position的值

CHANGE MASTER TO MASTER_HOST='192.168.1.111',MASTER_USER='root',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mariadb-bin.000002',MASTER_LOG_POS=333;

启动主从复制

start slave;

正确结果如下:

[anolis@localhost ~]$ mysql -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 10.6.10-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> CHANGE MASTER TO MASTER_HOST='192.168.1.111',MASTER_USER='root',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mariadb-bin.000002',MASTER_LOG_POS=333;
Query OK, 0 rows affected (0.008 sec)

MariaDB [(none)]> start slave;
Query OK, 0 rows affected (0.001 sec)

主从库查看主从复制是否成功

SHOW SLAVE STATUS\G;

从库这2个都为Yes才代表成功,有一个是No都不成功!!!
lave_IO_Running: Yes
Slave_SQL_Running: Yes

回到从主数据库B192.168.1.111

A《——B,B是A的从库配置:
MASTER_HOST=主机IP(主从数据库IP地址)
MASTER_USER=主机用户
MASTER_PASSWORD=主机用户密码
MASTER_LOG_FILE=对应上面的File的值
MASTER_LOG_POS=对应上面的Position的值

CHANGE MASTER TO MASTER_HOST='192.168.1.11',MASTER_USER='root',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mariadb-bin.000001',MASTER_LOG_POS=330;

启动主从复制

start slave;

正确结果如下:

[anolis@localhost ~]$ mysql -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 10.6.10-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> CHANGE MASTER TO MASTER_HOST='192.168.1.11',MASTER_USER='root',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mariadb-bin.000001',MASTER_LOG_POS=330;
Query OK, 0 rows affected (0.008 sec)

MariaDB [(none)]> start slave;
Query OK, 0 rows affected (0.001 sec)

主从库查看主从复制是否成功

SHOW SLAVE STATUS\G;

从库这2个都为Yes才代表成功,有一个是No都不成功!!!
lave_IO_Running: Yes
Slave_SQL_Running: Yes

Slave failed to initialize relay log info structure from the repository错误

解决方法:
停止全部的主从复制,即A和B都执行以下操作

STOP SLAVE;

执行reset slave删除ralaylog日志文件,并重新启用新的relaylog文件

reset slave all;

A192.168.1.11

CHANGE MASTER TO MASTER_HOST='192.168.1.111',MASTER_USER='root',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mariadb-bin.000002',MASTER_LOG_POS=333;

B192.168.1.111

CHANGE MASTER TO MASTER_HOST='192.168.1.11',MASTER_USER='root',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mariadb-bin.000001',MASTER_LOG_POS=330;

A和B都执行启动主从复制

start slave;

A和B都执行查看主从复制是否成功

SHOW SLAVE STATUS\G;

lave_IO_Running: Yes
Slave_SQL_Running: Yes
都为Yes才代表成功,有一个是No都不成功!!!

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

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/15 21:01:18-

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