前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >mysql实现双机热备

mysql实现双机热备

作者头像
剧终
发布于 2020-08-26 16:36:15
发布于 2020-08-26 16:36:15
2.2K00
代码可运行
举报
文章被收录于专栏:Linux学习日志Linux学习日志
运行总次数:0
代码可运行

介绍

双机热备从广义上讲,就是对于重要的服务,使用两台服务器,互相备份,共同执行同一服务。当一台服务器出现故障时,可以由另一台服务器承担服务任务,从而在不需要人工干预的情况下,自动保证系统能持续提供服务.

可以对数据库做“热备”,热备只能解决硬件master硬件故障,软件故障等重大故障问题,但无法解决人为误操作导致的逻辑故障(列如输入错误的SQL语句把重要的记录删除了),所以常规的备份是必须的。

环境准备及要求

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
master:172.16.0.4
slave:172.16.0.5
关闭防火墙和selinux
hosts文件中添加两台服务器主机名和ip地址
系统时间需要同步
master和slave的数据库版本保持一致(系统版本保持一致)

环境准备

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
master:
[root@master /]# vim /etc/hosts
172.16.0.4 master
172.16.0.5 slave

slave:
[root@slave /]# vim /etc/hosts
172.16.0.4 master
172.16.0.5 slave

修改配置文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
master:
root@master /]# vim /etc/my.cnf
log-bin=mysql-bin
server-id = 1

slave:
[root@slave /]# vim /etc/my.cnf
server-id = 2
relay-log=/data/DB/relay.log

数据初始化一致

情况1:两边都没有业务数据,直接初始化master和slave的数据库 情况2:master上面有业务数据

停止数据库 masteer:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@master /]# systemctl stop mysqld

物理级别备份

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@master /]# cd /data/DB/ && ll
[root@master DB]# tar -cvzf /tmp/mysql.tar.gz *
[root@master DB]# scp /tmp/mysql.tar.gz 172.16.0.5:/tmp

slave端进行数据恢复 slave:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@slave /]# cd /data/DB/ && ll
[root@slave DB]# tar -xf /tmp/mysql.tar.gz -C .
[root@slave DB]# systemctl start mysqld

查看slave和master上面的数据是否一样 master和slave:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@master DB]# echo "show databases;" | mysql -uroot -pAa123456
[root@slave DB]# echo "show databases;" | mysql -uroot -pAa123456

在master上面创建用户及查看binlog信息

锁表,先加锁,防止两边数据不一致;如果业务还未上线,这个就没有必要了

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysql> flush tables with read lock;

创建用户

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysql> grant replication slave on *.* to 'slave'@'172.16.0.5' identified by '123456';

查看binglog信息,只有打开二进制日志,这句命令才有结果,表示当前数据库的二进制日志写到什么位置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysql> show master status\G
*************************** 1. row ***************************
             File: mysql-bin.000001
         Position: 707
     Binlog_Do_DB: 
 Binlog_Ignore_DB: 
Executed_Gtid_Set: 
1 row in set (0.00 sec)

在slave上配置同步信息

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysql> change master to master_host='172.16.0.4', master_user='slave', master_password='123456', master_port=3306, master_log_file='mysql-bin.000001', master_log_pos=707;
mysql> start slave;
mysql> show slave status \G
  Slave_IO_Running: Yes
  Slave_SQL_Running: Yes

参数说明: master_host: master ip master_user: 同步用户 master_password: 密码 master_port:     端口 master_log_file: master上面查看到的二进制日志名 master_log_pos: master上面查看到的POS值

测试验证

测试一: 先查看master和slave的we数据库中wee表的信息

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
master:
mysql> select * from we.wee;
+----+-------+----------+
| id | name  | password |
+----+-------+----------+
|  1 | zhang | 123456   |
|  2 | wang  | 43213    |
|  3 | li    | 56783    |
|  4 | liu   | 11222    |
+----+-------+----------+
7 rows in set (0.00 sec)

slave:
mysql> select * from we.wee;
+----+-------+----------+
| id | name  | password |
+----+-------+----------+
|  1 | zhang | 123456   |
|  2 | wang  | 43213    |
|  3 | li    | 56783    |
|  4 | liu   | 11222    |
+----+-------+----------+
7 rows in set (0.11 sec)

在master上面删除数据,然后回到slave上面查看

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
master:
mysql> delete from we.wee where id>=3;
mysql> select * from we.wee;
+----+-------+----------+
| id | name  | password |
+----+-------+----------+
|  1 | zhang | 123456   |
|  2 | wang  | 432123   |
+----+-------+----------+
2 rows in set (0.00 sec)

slave:
mysql> select * from we.wee;
+----+-------+----------+
| id | name  | password |
+----+-------+----------+
|  1 | zhang | 123456   |
|  2 | wang  | 432123   |
+----+-------+----------+
2 rows in set (0.17 sec)

测试表明只能在master端上面进行写然后再同步到slave端。 如果slave服务关闭后可以不用管理,然后再在master端可以继续写入,等到slave服务启动后,会自动同步到slave端。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
软件性能测试(连载5)
线程单元中的处理器队列的即时长度,如果大于CPU数量+1,说明处理器处于堵塞状态。
顾翔
2020/02/19
9530
性能测试中会遇到的瓶颈
性能测试这种测试方式在发生过程中,其中一个过渡性的工作,就是对执行过程中的问题,进行定位,对功能的定位,对负载的定位,最重要的,当然就是问题中说的“瓶颈”,接触性能测试不深,更非专家,自己的理解,瓶颈产生在以下几方面:
顾翔
2020/09/04
2K0
服务器的指标和瓶颈如何分析?
CPU使用率(%processor time),在80%±5%范围内波动为宜。过低,则服务器CPU利用率不高;过高,则CPU可能成为系统的处理瓶颈。
用户6367961
2022/01/12
2.5K0
运行结果分析相关
一般方式也是最基本的方法是按照一定的规则压并发,看日志。专业一点的说法可以说“分段排除法“,或者按照以下顺序查找瓶颈。
张树臣
2019/07/31
1K0
LR windows 计数器
object(对象) Counters(计数器名称) Description(描述) 参考值 Memory Available Mbytes 可用物理内存数。如果该值很小(4MB或更小),则说明该计算机上总的内存可能不足,或某程序没有释放内存。每个附加连接将在此基础上占用10KB左右 至少要有10%的物理内存值 Memory Page/sec 表示因为页面错误,从磁盘取出的页面数,或是由于页面错误,写入磁盘以释放工作空间的页面数 推荐值为0~20,一般如果该值持续高于几百,那么应该进一步研究页交换活动 M
张树臣
2018/05/15
1.3K0
windows服务器性能监控工具、方法及关键指标
监控方法 推荐使用windows自带的“性能监视器”(老版本的windows叫性能计数器)来监控服务器的性能。 打开控制面板内的管理工具,在管理工具内打开性能监视器,出现如下界面(各版本的window
liulun
2018/01/12
3.8K0
windows服务器性能监控工具、方法及关键指标
LoadRunner压力测试实例步骤
LoadRunner 是一种预测系统行为和性能的工业标准级负载测试工具。通过以模拟上
全栈程序员站长
2022/09/09
1.2K0
如何用LoadRunner分析资源占用率
当增大系统的压力(或增加并发用户数)时,吞吐率和TPS的变化曲线呈大体一致,则系统基本稳定。若压力增大时,吞吐率的曲线增加到一定程度后出现变化缓 慢,甚至平坦,很可能是网络出现带宽瓶颈,同理若点击率/TPS曲线出现变化缓慢或者平坦,很可能是服务器响应时间增加,观察服务器资源使用情况,确定是 否是服务器问题。
用户6367961
2022/01/12
7440
如何查看系统资源的实时占用情况?
任务管理器是Windows内置的工具,可以方便地查看CPU、内存、磁盘和网络的实时占用情况。
是山河呀
2025/02/22
9390
LR windows计数器
内存计数器 关于内存计数器主要有三个:Available Bytes、Memory pages/second 和Page Faults/sec Available Bytes表示计算机上可用于运行处理的有效物理内存的字节数量。这个计算器只显示上一次观察到的值;它不是一个平均值。一般不小于4MB,如果该值低于阈值且pages/second持续的处于峰值状态下,那么说明计算机的物理内存不够。 Memory pages/second 是指为解决硬页错误从磁盘读取或写入磁盘的速度。这个计数器是可以显示导致
张树臣
2018/05/15
1K0
Linux 常用监控指标总结
做运维,不怕出问题,怕的是出了问题,抓不到现场,两眼摸黑。所以,依靠强大的监控系统,收集尽可能多的指标,意义重大。但哪些指标才是有意义的呢,本着从实践中来的思想,各位工程师在长期摸爬滚打中总结出来的经验最有价值。
杰哥的IT之旅
2020/07/15
3.2K0
K3数据库优化方案
if not exists(select 1 from sysindexes where name='ix_group_fgroupid')
py3study
2020/01/07
1.1K0
iostat命令使用
天刚上线了一台server,观察了一下,发现io比较高,想到了iostat命令,观察了一下(每隔一秒打印一次),发现有一个守护进程每隔几秒就写一次IO,再top看下,很快就找到了问题根源。
王亚昌
2018/08/03
6960
Linux 命令(125)—— vmstat 命令
vmstat(Virtual Memory Statistics)命令用于报告虚拟内存状态的统计信息。
恋喵大鲤鱼
2020/02/29
7930
Linux - 磁盘I/O性能评估
正常情况下,svctm应该是小于await值的,而svctm的大小和磁盘性能有关,CPU、内存的负荷也会对svctm值造成影响,过多的请求也会间接导致svctm值的增加。
小小工匠
2023/03/07
3.1K0
Linux - 磁盘I/O性能评估
Windows性能监视器_windows性能分析工具
Windows 性能监视器是一个 Microsoft 管理控制台 (MMC) 管理单元,提供用于分析系统性能的工具。仅从一个单独的控制台,即可实时监视应用程序和硬件性能,自定义要在日志中收集的数据,定义警报和自动操作的阈值,生成报告以及以各种方式查看过去的性能数据。
全栈程序员站长
2022/11/16
2.1K0
Windows性能监视器_windows性能分析工具
老牌运维教你如何快速分析Linux服务器的性能问题
该命令可以显示关于系统各种资源之间相关性能的简要信息,这里我们主要用它来看CPU的一个负载情况。
lyb-geek
2019/10/16
1.4K0
linux系统性能分析对策
解决系统性能问题的一般思路 下面从影响操作系统性能的因素、性能优化工具、系统性能评价标准三个方面介绍优化Linux的一般思路和方法。 影响Linux性能的因素 1.CPU CPU是操作系统稳定运行的根本,CPU的速度与性能很大一部分决定了系统整体的性能,因此,cpu数量越多、主频越高,服务器性能也就相对越好。但事实也并非完全如此。 目前大部分CPU在同一时间内只能运行一个线程,超线程的处理器可以在同一时间运行多个线程,因而,可以利用处理器的超线程特性提高系统性能,在linux系统下,只有运行SMP内核
BGBiao
2018/02/26
1.5K0
关于Linux性能调优中IO调优的一些笔记
「 总感觉当下的生活不是想要的,总感觉一路走下去会是一个讨厌的未来,每天睁眼的一瞬间就是懊悔,昨天又浪费掉了...人生没有意义,但是要努力寻找活着的意义--------山河已无恙」
山河已无恙
2023/01/30
1.1K0
关于Linux性能调优中IO调优的一些笔记
Jmeter的性能测试
顾翔老师开发的bugreport2script开源了,希望大家多提建议。文件在https://github.com/xianggu625/bug2testscript,
顾翔
2019/12/12
1.2K0
Jmeter的性能测试
相关推荐
软件性能测试(连载5)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档