首页 > 数据库 >mysql在执行innobackupex增量备份时报错cannot open *****/xtrabackup_checkpoints

mysql在执行innobackupex增量备份时报错cannot open *****/xtrabackup_checkpoints

时间:2023-08-02 13:31:53浏览次数:46  
标签:23 -- cannot xtrabackup file mysql bak

问题描述:mysql在执行innobackupex增量备份时报错cannot open *****/xtrabackup_checkpoints,如下所示:
数据库:mysql 5.7.21
说明:此次测试环境为从节点.
1、异常重现
[mysql@mysql-leo-perslave ~]$ /usr/bin/innobackupex --defaults-file=/home/mysql/etc/my.cnf --socket=/mysql/data/mysql.sock --user=root --password=mysql --port=3306 --slave-info --stream=tar --tmpdir=/mysql/bak/full --incremental-basedir=/mysql/bak/file/20230801 --incremental /mysql/bak/file/ 2>/mysql/bak/log_bak/backup.log |gzip ->/mysql/bak/file/192.168.133.117_20230801_3306.tar.gz

告警日志:
[mysql@mysql-leo-perslave log_bak]$ tail -5000f backup.log
xtrabackup: recognized server arguments: --datadir=/mysql/data --server-id=2 --log_bin=mysql-bin --innodb_flush_log_at_trx_commit=1 --tmpdir=/mysql/bak/full 
xtrabackup: recognized client arguments: --datadir=/mysql/data --server-id=2 --log_bin=mysql-bin --innodb_flush_log_at_trx_commit=1 --tmpdir=/mysql/bak/full 
230801 22:29:09 innobackupex: Starting the backup operation

IMPORTANT: Please check that the backup run completes successfully.
           At the end of a successful backup run innobackupex
           prints "completed OK!".

xtrabackup: Error: cannot open /mysql/bak/file//xtrabackup_checkpoints
xtrabackup: error: failed to read metadata from /mysql/bak/file//xtrabackup_checkpoints

2、异常分析
告警信息显示无法打开xtrabackup_checkpoints,此次异常原因为在执行增量备份前未对数据库进行全备.

3、解决方案
3.1、全量备份
--数据库全备
[mysql@mysql-leo-perslave ~]$ /usr/bin/innobackupex --defaults-file=/home/mysql/etc/my.cnf --socket=/mysql/data/mysql.sock --user=root --password=mysql --port=3306 --slave-info --tmpdir=/mysql/bak/full /mysql/bak/file/ 2>/mysql/bak/log_bak/backup.log

--查生成的备份集
[mysql@mysql-leo-perslave file]$ pwd
/mysql/bak/file
[mysql@mysql-leo-perslave file]$ ll
total 4
drwxr-x---. 7 mysql mysql 4096 Aug  1 23:14 2023-08-01_23-14-21

--查xtrabackup_checkpoints信息
[mysql@mysql-leo-perslave file]$ cd 2023-08-01_23-14-21
[mysql@mysql-leo-perslave 2023-08-01_23-14-21]$ cat xtrabackup_checkpoints
backup_type = full-backuped
from_lsn = 0
to_lsn = 7589242403
last_lsn = 7589242412
compact = 0
recover_binlog_info = 0

3.2、增量备份
--进行增量备份
[mysql@mysql-leo-perslave ~]$ /usr/bin/innobackupex --defaults-file=/home/mysql/etc/my.cnf --socket=/mysql/data/mysql.sock --user=root --password=mysql --port=3306 --slave-info --tmpdir=/mysql/bak/full --incremental-basedir=/mysql/bak/file/2023-08-01_23-14-21 --incremental /mysql/bak/file/ 2>>/mysql/bak/log_bak/backup.log

说明:
--incremental /mysql/bak/file/                              指定增量备份位置
--incremental-basedir=/mysql/bak/file/2023-08-01_23-14-21   指定上一次全备或增备目录

--查新增备份集
[mysql@mysql-leo-perslave file]$ ll
total 8
drwxr-x---. 7 mysql mysql 4096 Aug  1 23:14 2023-08-01_23-14-21
drwxr-x---. 7 mysql mysql 4096 Aug  1 23:29 2023-08-01_23-29-52

[mysql@mysql-leo-perslave file]$ du -sch *
3.9G    2023-08-01_23-14-21
2.9M    2023-08-01_23-29-52

说明:如上所示,2023-08-01_23-29-52为增量备份集.

--查新增xtrabackup_checkpoints信息
[mysql@mysql-leo-perslave file]$ cd 2023-08-01_23-29-52
[mysql@mysql-leo-perslave 2023-08-01_23-29-52]$ cat xtrabackup_checkpoints
backup_type = incremental
from_lsn = 7589242403
to_lsn = 7589245996
last_lsn = 7589246012
compact = 0
recover_binlog_info = 0

--查告警日志
......
MySQL binlog position: filename 'mysql-bin.000005', position '2676', GTID of the last change '9621e6df-2ab4-11ee-8438-0050563d0a8c:1-1000023,
e29135f1-2bcb-11ee-bc4b-00505636addc:1-32'
MySQL slave binlog position: master host '192.168.133.116', purge list '9621e6df-2ab4-11ee-8438-0050563d0a8c:1-1000023, e29135f1-2bcb-11ee-bc4b-00505636addc:1-32', channel name: ''

230801 23:29:59 [00] Writing /mysql/bak/file/2023-08-01_23-29-52/backup-my.cnf
230801 23:29:59 [00]        ...done
230801 23:29:59 [00] Writing /mysql/bak/file/2023-08-01_23-29-52/xtrabackup_info
230801 23:29:59 [00]        ...done
xtrabackup: Transaction log of lsn (7589245996) to (7589246012) was copied.
230801 23:29:59 completed OK!

说明:mysql在有全备的基础上执行增量备份无异常发生.

标签:23,--,cannot,xtrabackup,file,mysql,bak
From: https://blog.51cto.com/u_12991611/6937192

相关文章

  • MySQL8_SQL语法
    MySQL8_SQL语法SQL全称StructuredQueryLanguage,结构化查询语言。操作关系型数据库的编程语言,定义了一套操作关系型数据库统一标准。 一、SQL通用语法在学习具体的SQL语句之前,先来了解一下SQL语言的同于语法。1).SQL语句可以单行或多行书写,以分号结尾。2).SQL语句可......
  • 因MySQL数据库无法启动导致LiteCVR视频平台也无法启动的问题解决教程
    近期呢,我们的数据人员发现有时候MySQL数据库无法启动会导致LiteCVR视频平台也无法启动,所以接下来我们将为大家讲解遇见这种问题时的解决教程。但是在这之前值得一提的一件事那就是我们的LiteCVR平台默认的数据库是SQLite,不过用户可以根据自己的使用需求选择将数据库切换为MySQL。具......
  • .NET+MySQL的坑
    #JSON字段访问时,引号格式--需要替换C#里的""\""""为"\""--C#里的SQL代码rtrim(ltrim(REPLACE(JSON_EXTRACT(b.yarn_type_id,'$.dye_name'),""\"""",'')))--MySQL直接执行的代码rtri......
  • 火山引擎ByteHouse:云原生数据库如何提升MySQL兼容性?
    更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群当前各类软件层出不穷,单独某一款软件往往难以满足企业应用需求,一般都需要与各类软件组合使用,这时软件生态兼容性就显得格外重要。作为关系数据库管理系统的代表之一,MySQL支持大多数操作系统、编程......
  • 求和计算MySQL中如何对两列求和(mysql 中两列总和)
    求和计算:MySQL中如何对两列求和?在MySQL数据库中,对两列进行求和运算是一项常规操作。本文将介绍在MySQL中如何对两列进行求和运算,并给出相关的SQL代码示例。SQL语句中使用的SUM()函数是MySQL中常用的聚合函数之一,用于计算某一列的总和。而对于两列的求和,则需要将两个......
  • MySQL计算两个日期的相差天数
    1.利用TO_DAYS函数selectto_days(now())-to_days('20120512')2.利用DATEDIFF函数selectdatediff(now(),'20120512')TIMESTAMPDIFF函数可用于计算两日期时间之间相差的天数,秒数,分钟数,周数,小时数语法:TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)unit单位有如下几种:FRAC_SE......
  • [MySQL] 调用定时器时event_scheduler是Off问题解决
    永久解决方法:修改MySQL配置文件,设置event_scheduler=ONvi/etc/my.cnf在[mysqld]下添加一行重启mysql服务event_scheduler=ON临时方法执行mysql语句1、查看事件调度器状态showVARIABLESlike'event_scheduler'......
  • 火山引擎ByteHouse:云原生数据库如何提升MySQL兼容性?
    更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群当前各类软件层出不穷,单独某一款软件往往难以满足企业应用需求,一般都需要与各类软件组合使用,这时软件生态兼容性就显得格外重要。作为关系数据库管理系统的代表之一,MySQL支持大多数操作......
  • mysql ssl
    【1】SSL简介(1.1)SSL简介安全一直是不可不重视的问题。目前MySQL这方面应大方向上技术手段都具备。如:网络链接,权限控制,key秘钥认证,数据加密脱敏等方式。综合考虑,虽然很多环境无法所有这些安全策略全部应用上,但在可控范围内尽量做到一定的防范实施。其中SSL是属于加密连接方式,......
  • py 连接mysql
      要在Python中连接MySQL,首先需要安装pymysql库。可以使用以下命令安装该库:Copypipinstallpymysql在安装完pymysql库后,可以使用以下示例代码连接到MySQL数据库:Copyimportpymysql#连接数据库connection=pymysql.connect(host='localhost',......