mysql的双机热备

一般主从复制是主服务器数据库可读可写,从服务器数据库只读,而双机热备是主从服务器的数据库双向复制,从服务器数据库可读也可写。

说到主从复制不得不说–读写分离,此介绍请看这一篇 一文浅谈“读写分离”技术

双机热备的概念简单说一下,就是要保持两个数据库的状态自动同步。对任何一个数据库的操作都自动应用到另外一个数据库,始终保持两个数据库数据一致。 这样做的好处多。

  1. 可以做灾备,其中一个坏了可以切换到另一个。
  2. 可以做负载均衡,可以将请求分摊到其中任何一台上,提高网站吞吐量。 对于异地热备,尤其适合灾备。

主从复制原理

当主服务器上的数据发生变化的时候,主服务器会把这些变化记录到一个日志文件中,然后通知从服务器,从服务器会拉取这个日志文件中的变化信息,然后做出相应的数据变化。

主从复制配置和启动

可以参考这一篇高性能Mysql主从架构的复制原理及配置详解。

实现步骤如下:

  1. 确定主从:确定主从复制服务器。
  2. 创建主服务器复制用户:在主服务器上创建用于复制的用户,并为其授予适当的权限,用来给从服务器复制。
  3. 配置主服务器:在每台服务器上配置主服务器的 my.cnf 文件。
  4. 配置从服务器:在每台服务器上配置从服务器的 my.cnf 文件。
  5. 在从服务器启动复制:启动复制进程,并确保数据正常传输。

简略实现过程:

配置主从服务器的my.cnf

其中主服务器的my.cnf修改

log-bin=mysql-bin
server-id = 1

从服务器的my.cnf修改,要指定从服务器同步的博客数据库

log-bin=mysql-bin
binlog_format=mixed
server-id = 2relay_log = mysql-relay-bin
log_slave_updates = 1
read_only = 0 # 需要读写分离则这里填1,只读
replicate-do-db = myblog_db

主从服务器都重启下mysql。

创建主服务器复制用户

在主服务器上操作

mysql> GRANT REPLICATION SLAVE,RELOAD,SUPER ON *.* TO backup1@'从服务器ip' IDENTIFIED BY 'ErTu2QSGzs1';
Query OK, 0 rows affected, 1 warning (0.00 sec)mysql> show master status;
+------------------+-----------+--------------+------------------+-------------------+
| File             | Position  | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+-----------+--------------+------------------+-------------------+
| mysql-bin.000024 | 734078947 |              |                  |                   |
+------------------+-----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
在从服务器启动复制

在从服务器上操作

mysql> CHANGE MASTER TO MASTER_HOST='主服务器ip',  MASTER_USER='backup1',  MASTER_PASSWORD='ErTu2QSGzs1',  MASTER_LOG_FILE='mysql-bin.000024',  MASTER_LOG_POS=0;
Query OK, 0 rows affected, 2 warnings (0.03 sec)mysql> START SLAVE;mysql> SHOW SLAVE STATUS\G;

主从复制常见的问题

1、server-id重复

                Last_IO_Errno: 1593Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server ids; these ids must be different for replication to work (or the --replicate-same-server-id option must be used on slave but this does not always make sense; please check the manual before using it).

2、数据库的键值重复

                   Last_Errno: 1062Last_Error: Error 'Duplicate entry '166127' for key 'PRIMARY'' on query. Default database: 'xxx'. Query: 'INSERT INTO xxx'

解决方法:
1、重新导入主从数据库,保持一致,并且设置LOG_POS为最新的。

1.1 导入主从数据库
命令行(不是在 MySQL)执行导出博客数据库。
mysqldump -u your_username -p your_database_name > structure.sql在这个命令中:
-u your_username 
是你的数据库用户名-p 
表示需要输入密码--no-data 
选项表示只导出结构,不包含数据your_database_name 
是你的数据库名称
> structure.sql 
表示将导出的内容保存到 structure.sql 文件中1.2 设置LOG_POS为最新的
首先在主库上查看mysql> show master status;
+------------------+-----------+--------------+------------------+-------------------+
| File             | Position  | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+-----------+--------------+------------------+-------------------+
| mysql-bin.000022 | 372102960 |              |                  |                   |
+------------------+-----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)在从库上操作START SLAVE;STOP SLAVE;CHANGE MASTER TO MASTER_HOST='主服务器ip',  MASTER_USER='backup1',  MASTER_PASSWORD='ErTu2QSGzs1',  MASTER_LOG_FILE='mysql-bin.000024',  MASTER_LOG_POS=372102960;#从372102960行后开始复制mysql> START SLAVE;mysql> SHOW SLAVE STATUS\G;

3、主服务器数据库连接失败

                    Last_IO_Errno: 2003Last_IO_Error: error connecting to master ...

排查:

(1) 在配置文件中排查了与bindaddress和skip-networking与相关参数后,均没有配置;

(2) 于是排查服务器的防火墙,发现防火墙处于开启状态

(3) 关闭防火墙后,重新执行start slave;发现主从配置成功。

配置没错大多是防火墙问题,没有放行mysql的3306端口

双机热备

实现步骤如下:

  1. 在两台服务器上配置主从复制:每台服务器既是主服务器又是从服务器。
  2. 创建复制用户:在两台服务器上创建用于复制的用户,并为其授予适当的权限。
  3. 配置主服务器:在每台服务器上配置主服务器的 my.cnf 文件。
  4. 配置从服务器:在每台服务器上配置从服务器的 my.cnf 文件。
  5. 启动复制:启动复制进程,并确保数据正常传输。

在主从复制的基础上,修改主服务器 my.cnf 文件(主服务器也当成从服务器,即让主服务器复制从服务器)。

relay_log = mysql-relay-bin
log_slave_updates = 1
read_only = 0 
replicate-do-db = myblog_db

配置主服务器复制从服务器

步骤跟主从复制一样

在从服务器上操作

mysql> GRANT REPLICATION SLAVE,RELOAD,SUPER ON *.* TO backup2@'主服务器ip' IDENTIFIED BY 'ErTu2QSGzs2';
Query OK, 0 rows affected, 1 warning (0.00 sec)mysql>  show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000022 |  2747685 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

在主服务器上操作

mysql> CHANGE MASTER TO MASTER_HOST='从服务器ip',  MASTER_USER='backup2',  MASTER_PASSWORD='ErTu2QSGzs2',  MASTER_LOG_FILE='mysql-bin.000022',  MASTER_LOG_POS=0;
Query OK, 0 rows affected, 2 warnings (0.03 sec)mysql> START SLAVE;mysql> SHOW SLAVE STATUS\G;

以上配置完毕。

参考:

一文浅谈“读写分离”技术

Mysql-Master-Slave主从配置(1)

高性能Mysql主从架构的复制原理及配置详解

mysql 双主从复制原理(双机热备)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/29584.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

鸿蒙开发实战:灵活定制Tabs组件,实现个性化页签布局

闪客 沉默的闪客 2024-06-16 20:01 陕西 大家好,又一个项目已经基本完成 是一个元服务英语单词卡片项目,后面一步一步的进行分析拆解,今天来实现一个Tabs组件自定义界面开发。 鸿蒙ArkUI 开发的时候,Tabs 组件很常用,…

CDA二级(Level II)数据分析师——考试内容梳理三(简单重点案例)

PR曲线是基于召回率的准确性来进行判断的; 混淆矩阵: ROC曲线以真阳性率(敏感性、召回率)为纵坐标,假阳性率(1-特异性)为横坐标 假阳性率:负样本中被误认为正样本的概率 FP/FPTN 真…

什么是作用域?作用域有哪几种?

**作用域(Scope)**是一个程序设计中的重要概念,它指的是变量、函数和对象在程序中可访问和引用的区域。作用域决定了代码块中声明的变量、函数和对象的可见性和生命周期。不同的编程语言提供了不同的作用域类型,以下是几种常见的作…

基于B/S版java语言+SpringBoot技术开发的云HIS系统源码 HIS系统住院业务模块常见问题及解决方案

基于B/S版java语言SpringBoot技术开发的云HIS系统源码 HIS系统住院业务模块常见问题及解决方案 随着医疗技术的不断提高,住院治疗已成为许多病人的常规选择。但是,住院治疗不仅需要医护人员的精心照顾,也需要个高效的信息系统来保证整个治疗过…

C语言程序设计-8 函 数

8.1 概述 在前面已经介绍过,C源程序是由函数组成的。虽然在前面各章的程序中大都只有一个 主函数 main(),但实用程序往往由多个函数组成。函数是C源程序的基本模块,通过对函 数模块的调用实现特定的功能。&#xff23…

HBase学习之HBaseAPI

HBase学习之HBaseAPI: package com.shujia.base;import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.*; import org.apache.hadoop.hbase.client.*; import org.apache.hadoop.hbase.util.Bytes; import org.junit.After; import org.junit.Before…

Unity制作透明材质直接方法——6.15山大软院项目实训

之前没有在unity里面接触过材质的问题,一般都是在maya或这是其他建模软件里面直接得到编辑好材质的模型,然后将他导入Unity里面,然后现在碰到了需要自己在Unity制作透明材质的情况,所以先搜索了一下有没有现成的方法,很…

删除名为 `XXXX` 的 conda 环境的命令

要删除名为 musetalk 的 conda 环境,您可以使用以下命令: conda remove --name musetalk --all这个命令会删除 musetalk 环境及其中安装的所有包。 执行上述命令后,您可以使用 conda env list 命令验证该环境是否已被成功删除。 如果您想要保留该环境中安装的某些包,可以先使…

C++迈向精通:当我尝试修改虚函数表

尝试修改虚函数表 本期纯整活儿好吧!!!! 初衷 有一天我突然开始好奇虚函数表是否真的存在,于是我开始想是否能够从C中查看或者调用虚函数表中的内容。,于是有了下面的操作。 操作过程 起初我并没有思路…

使用net.sf.mpxj读取project的.mpp文件

1、导入.mpp文件 public void importMppFile(String updateType, MultipartFile multipartFile) {try (InputStream inputStream multipartFile.getInputStream()) {// 读取文件的组件MPPReader mppReader new MPPReader();// 注意,如果在这一步出现了读取异常&a…

神经网络模型---AlexNet

一、AlexNet 1.导入tensorflow库,这里给简称为tf库 import tensorflow as tf from tensorflow.keras import datasets, layers, modelsdatasets:是用于训练和测试机器学习模型的数据集合 layers:是构建神经网络模型的关键组成部分 models&a…

Golang并发控制的三种方案

Channel Channel是Go在语言层面提供的一种协程间的通信方式&#xff0c;我们可以通过在协程中向管道写入数据和在待等待的协程中读取对应协程的次数来实现并发控制。 func main() {intChan : make(chan int, 5)waitCount : 5for i : 0; i < waitCount; i {go func() {intC…

上海SNEC光伏展参展总结--安科瑞

安科瑞戴婷 Acrel-Fanny 今年的snec上海光伏展吸引了来自全球各地的光伏行业专业人士及爱好者&#xff0c;本次展会共有来自30多个国家和地区的超过2000家企业参展&#xff0c;展出的光伏产品涵盖了太阳能电池、太阳能组件、逆变器、太阳能辅助设备等众多领域。 随着近年来光…

Oracle中常用特殊字符chr值

在Oracle数据库中&#xff0c;特殊字符的chr值&#xff08;即字符与ASCII码之间的对应关系&#xff09;对于数据的处理和查询非常重要。以下是一些常见的特殊字符及其对应的chr值&#xff1a; 换行符&#xff08;LF&#xff09;&#xff1a; chr值&#xff1a;10 示例&#…

《收获,不止oracle》读书笔记一:oracle体系结构

从图中可以看出,oracle数据库是由实例和一组数据库文件组成。实例是由oracle开辟的内存区和一组后台进程组成的。

2024.6.18

Python的网络编程 网络四层 在开始前,我们需要先了解一下我们在网络通信过程中的四个层次 我们上网产生的数据都是经过协议栈一层一层的封装然后经网卡发送到网络&#xff0c;经网络发送到服务端&#xff0c;然后服务端又是一层一层的解封装拿到自己想要的数据。 我们学习的…

YOLOv8目标检测算法在地平线Bernoulli2架构BPU上高效部署参考(PTQ方案)30fps!

—— 以RDK X3为例&#xff0c;修改Head部分&#xff0c;8ms疾速Python后处理程序&#xff0c;30fps稳稳当当 本文在地平线对YOLOv8s的Backbone修改的基础上&#xff0c;提出一种在地平线Bernoulli2架构BPU上部署YOLOv8的后处理思路。使用640640分辨率&#xff0c;80类别基于C…

香橙派AIPro开机测试

资料准备&#xff1a; 香橙派官网资料下载链接&#xff1a;http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-AIpro.html 硬件准备 香橙派ai pro一个 32G sd卡&#xff0c;带出厂镜像 电源 鼠标 键盘 hdmi显示屏 测试介绍 由…

4418 android4.4 + 6818 android5.1 移植gps

网上已经有的移植的资料 目前 3399 的板子上 对已有的可运行的GPS 进行测试。 我这里的 rk3399 的板卡 , Android7 Android8 都是 可以运行 GPS 应用程序的。 使用的是 ttyS4 的节点。 问题: 我发现, 开机就删掉 ttyS4 节点,也是可以 打开应用的。并且可以正常运行。不…

【机器学习】使用Perceiver模型解决Transformer效率低下问题

1.引言 1.1.技术背景 Transformer在高维度输入上计算效率低下&#xff0c;制约了Transformer框架的应用和迭代&#xff1a; 内存消耗大&#xff1a; 当处理高维度输入&#xff0c;如长文本或高分辨率图像时&#xff0c;Transformer需要将模型参数和中间状态都保存到内存中。这…