首页 > 数据库 >如何监控MySQL数据库的还原进度

如何监控MySQL数据库的还原进度

时间:2023-08-04 21:11:17浏览次数:39  
标签:pv 数据库 还原 监控 MySQL 进度

还原MySQL数据库的备份是一项重要任务,有时可能很耗时,尤其是对于大型数据库。监控还原过程的进度对于估计完成时间和确保一切顺利进行至关重要。   在本文中,将探讨计算MySQL还原过程进度百分比的两种不同而有效的方法。 1.Linux本地输入/输出(I/O)统计信息 2.管道查看工具 通过这些方法,我们可以有效地监控还原过程,高效地管理MySQL数据库的还原。   使用Linux本地输入/输出(I/O)统计数据监控MySQL数据库的还原进度 我们将使用/proc/<pid>/io文件,该文件包含每个运行进程的IO统计信息。在这种特殊情况下,我们将使用 MySQL还原进程的pid,它可以提供宝贵的I/O统计数据,用于估算MySQL还原进程的进度。需要关注的关键指标是rchar 值,它代表MySQL还原进程自启动以来从存储中读取的字节总数。通过将该值与正在还原的备份文件大小进行比较,我们可以计算出还原进度的百分比。   下面介绍如何使用i/o工具估算MySQL备份还原进度: 1.获取MySQL还原进程的进程ID (PID) 使用ps命令或其他进程监控工具查找MySQL还原进程的PID。例如:

$ ps aux | grep mysql
2.访问I/O统计信息
$ cat /proc/$(pid of restore)/io
3.关注rchar值 cat命令会输出关于I/O不同的统计信息,查看rchar的值,表示从存储读取的字节数 4.估算进度 rchar的值与备份文件的大小相比较:单位要一致,比如都换算成bytes
    Restore Progress (%) = (rchar / Backup File Size) * 100
5.连续监控 要想获得实时的进度信息,可以写一个脚本来监控分析:
while true; do
 
if [ -f /proc/<RESTORE_PID>/io ]
 
then
 
bytes_progress=$(cat /proc/<RESTORE_PID>/io | awk '/^rchar/ {print $2}')
bytes_total=$(cat <BACKUP_FILE> | wc -c)
progress=$(awk "BEGIN {printf "%.2f", ((100 * $bytes_progress)/$bytes_total)}")
echo "Progress: $progress%"
 
sleep 5;
 
continue;
 
else
 
break;
 
fi
 
done
    使用PV(pipe viewer)监控mysql的还原进度 Pipe Viewer(通常缩写为pv)允许我们跟踪通过管道传输数据的进度。利用pv,我们可以轻松监控数据库还原过程的进度,并深入了解预计完成时间。我们还将讨论管道查看器提供的不同选项,并演示其用法。   什么是pipe viewer? pv是一种命令行工具,用于监控通过管道传输数据的进度。它能直观地显示数据传输的情况,包括传输速度、进度百分比和预计完成时间等信息。通过使用pv,我们可以获得有关数据传输任务进度的实时反馈。   安装Pipe Viewer 对于Ubuntu/Debian,使用 apt-get
$ sudo apt-get install pv
对于 CentOS/RHEL,使用 yum
$ sudo yum install pv
  使用pv还原数据库 假设我们有一个mysqldump的逻辑备份需要还原:
$ pv backup.sql | mysql -u [username] -p[password] -h [host] [database_name]
执行以上命令之后,就会看到类似下面的输出信息:数据量、运行时间、传输速率、传输的字节数以及剩余时间
490MiB 0:00:39 [4.51MiB/s] [===========================>] 29% ETA 0:04:01
如果备份文件是经过压缩的,可以使用以下命令:
$ pv backup.sql.gz | gunzip | mysql -u [username] -p[password] -h[host] [database_name]
  使用pv监控进度 执行命令后,pv将开始显示数据库还原的进度。你会看到数据传输速度、进度百分比和预计完成时间等信息。这可以让你跟踪还原过程并估计何时完成。 还原完成后,将看到以下输出:
3582iB 0:07:01 [ 9.2MiB/s] [===============================================>] 100%
  Pipe Viewer参数
-p或-progress: 显示进度条。
-t或-timer: 显示自开始以来的耗时。
-r或-rate: 显示每秒传输速率,单位是bytes。
-b或-字节: 显示传输的字节数。
-e或-eta: 估算完成前的剩余时间。
-a或-average-rate:显示平均传输速率。
-s或-size:指定输入数据的总大小。
缺省情况下,默认使用了-p、-t、-r和-b选项。

标签:pv,数据库,还原,监控,MySQL,进度
From: https://www.cnblogs.com/abclife/p/17602848.html

相关文章

  • django(ORM、数据库)
    一单表(增、删、改、查)1测试脚本'''只想测试django中的某一个py文件内容,那么可以不用书写前后端交互的形式而是直接写一个测试脚本即可'''#脚本代码无论是写在应用下的tests.py,还是自己单独开设py文件都可以#测试环境的准备,去manage.py中拷贝前四行代码,然后自己写两......
  • AI +悦数图数据库:图技术与大语言模型 LLM 结合,打造下一代知识图谱应用
    随着AI人工智能技术的迅猛发展和自然语言处理领域的研究日益深入,如何构建强大的大语言模型对于企业来说愈发重要,而图数据库作为处理复杂数据结构的有力工具,为企业构建行业大语言模型提供了强大的支持。近日,国产企业级分布式图数据库——悦数图数据库正式发布了图+AI大模型解......
  • SQL Server实现mysql中的group_concat功能
    mysql中的group_concat函数的功能将groupby产生的同一个分组中的值连接起来,返回一个字符串结果。group_concat函数首先根据groupby指定的列进行分组,将同一组的列显示出来,并且用分隔符分隔。由函数参数(字段名)selectgroup_concat(emp_name)fromemp;语法:group_concat([distin......
  • SQLACODEGEN 转储现有数据库到sqlalchemy模型
    sqlacodegen--帮助用法:sqlacodegen[-h][--version][--schemaSCHEMA][--tablesTABLES][--noviews][--noindexes][--noconstraints][--nojoined][--noinflect][--noclasses][--nocomments][--outfile输出文件][网址]从现有数据库生成SQLAlchemy模型代码。该......
  • 2023.8.4 周五:MySQL相关命令
    1#展示数据库2showdatabases;34#创建数据库5creatdatabase+db1(数据库名称);67#如果创建同样名字的数据库,会报错,可以选择另一条判断语句;8creatdatabaseifnotexistsdb1;910#删除数据库11dropdatabasedb1(数据库名称);1213#如果删......
  • MySQL8.0 JSON相关函数(二) -更改JSON值
    (目录)本文涉及函数简介函数作用JSON_ARRAY_APPEND在数组后追加元素JSON_ARRAY_INSERT在JSON数据中的指定位置插入元素JSON_INSERT如果存在值,不操作,否则插入值JSON_REPLACE如果存在值,更新该值,否则不操作JSON_SET如果存在值,就更新,否则就插入JSON_REM......
  • docker-compose 启动MySQL
    version:'3.3'services:mysql:image:mysql:8.0.20##镜像restart:alwayshostname:mysqlcontainer_name:mysqlprivileged:trueports:-3306:3306environment:MYSQL_ROOT_PASSWORD:123456TZ:As......
  • 蓝图,flask-session,数据库连接池
    1蓝图#blueprint:蓝图,flask都写在一个文件中,项目这样肯定不行,分目录,分包,使用蓝图划分目录#不用蓝图,划分目录 -一直使用app对象,会出现循环导入问题-项目名statictemplatesorder_detail.htmlviews__init__.py......
  • promethous+granfa+mysql监控部署
    一、Prometheus源码安装和启动配置普罗米修斯下载网址:https://prometheus.io/download/监控集成器下载地址:http://www.coderdocument.com/docs/prometheus/v2.14/instrumenting/exporters_and_integrations.html1.实验环境IP 角色 系统172.16.11.7 Prometheus服务端 CentOS7......
  • 记一次MySQL崩溃修复案例,再也不用删库跑路了
    大家好,我是冰河~~今天给大家带来一篇MySQL数据库崩溃的修复案例,废话不多说,我们直接上正文,走起~~问题描述研究MySQL源代码,调试并压测MySQL源代码时,MySQL崩溃了!问题是它竟然崩溃了!而且还损坏了InnoDB文件!!还好是在调试环境下发生的,赶紧看看如何解决这个问题,经过一系列的查阅资料、验证......