# Percona Xtrabackup Undo Log Truncation

**URL:** <https://forums.percona.com/t/percona-xtrabackup-undo-log-truncation/18307>\
**Category:** Percona XtraBackup\
**Created:** [November 2, 2022, 8:13am UTC](https://forums.percona.com/t/percona-xtrabackup-undo-log-truncation/18307 "2022-11-02T08:13:57Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Jyoti\_Rajai](https://sea1.discourse-cdn.com/flex019/user_avatar/forums.percona.com/jyoti_rajai/32/4482_2.png) [@Jyoti\_Rajai](https://forums.percona.com/u/Jyoti_Rajai)\
**Post date:** [November 2, 2022, 8:13am UTC](https://forums.percona.com/t/percona-xtrabackup-undo-log-truncation/18307/1 "2022-11-02T08:13:57Z")

</div>

Xtrabackup failed with below error :  
2022-11-02T12:41:20.587275+05:30 0 [Note] [MY-012902] [InnoDB] Undo tablespace number 1 was being truncated when mysqld quit.  
2022-11-02T12:41:20.587323+05:30 0 [ERROR] [MY-012903] [InnoDB] Cannot recover a truncated undo tablespace in read-only mode  
2022-11-02T12:41:20.587351+05:30 0 [ERROR] [MY-011825] [Xtrabackup] xb\_load\_tablespaces() failed with error code 57

Server version: 8.0.28 MySQL Community Server - GPL  
Xtrabackup Version : 8.0.29

Undo log report  
mysql\> SELECT \* FROM INFORMATION\_SCHEMA.FILES  
 → WHERE FILE\_TYPE LIKE ‘UNDO LOG’ \G  
\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* 1. row \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
FILE\_ID: 4294958516  
FILE\_NAME: ./undo\_001  
FILE\_TYPE: UNDO LOG  
TABLESPACE\_NAME: innodb\_undo\_001  
TABLE\_CATALOG:  
TABLE\_SCHEMA: NULL  
TABLE\_NAME: NULL  
LOGFILE\_GROUP\_NAME: NULL  
LOGFILE\_GROUP\_NUMBER: NULL  
ENGINE: InnoDB  
FULLTEXT\_KEYS: NULL  
DELETED\_ROWS: NULL  
UPDATE\_COUNT: NULL  
FREE\_EXTENTS: 14  
TOTAL\_EXTENTS: 32  
EXTENT\_SIZE: 1048576  
INITIAL\_SIZE: 16777216  
MAXIMUM\_SIZE: NULL  
AUTOEXTEND\_SIZE: 16777216  
CREATION\_TIME: NULL  
LAST\_UPDATE\_TIME: NULL  
LAST\_ACCESS\_TIME: NULL  
RECOVER\_TIME: NULL  
TRANSACTION\_COUNTER: NULL  
VERSION: NULL  
ROW\_FORMAT: NULL  
TABLE\_ROWS: NULL  
AVG\_ROW\_LENGTH: NULL  
DATA\_LENGTH: NULL  
MAX\_DATA\_LENGTH: NULL  
INDEX\_LENGTH: NULL  
DATA\_FREE: 18874368  
CREATE\_TIME: NULL  
UPDATE\_TIME: NULL  
CHECK\_TIME: NULL  
CHECKSUM: NULL  
STATUS: NORMAL  
EXTRA: NULL  
\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* 2. row \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
FILE\_ID: 4294956610  
FILE\_NAME: ./undo\_002  
FILE\_TYPE: UNDO LOG  
TABLESPACE\_NAME: innodb\_undo\_002  
TABLE\_CATALOG:  
TABLE\_SCHEMA: NULL  
TABLE\_NAME: NULL  
LOGFILE\_GROUP\_NAME: NULL  
LOGFILE\_GROUP\_NUMBER: NULL  
ENGINE: InnoDB  
FULLTEXT\_KEYS: NULL  
DELETED\_ROWS: NULL  
UPDATE\_COUNT: NULL  
FREE\_EXTENTS: 4  
TOTAL\_EXTENTS: 32  
EXTENT\_SIZE: 1048576  
INITIAL\_SIZE: 16777216  
MAXIMUM\_SIZE: NULL  
AUTOEXTEND\_SIZE: 16777216  
CREATION\_TIME: NULL  
LAST\_UPDATE\_TIME: NULL  
LAST\_ACCESS\_TIME: NULL  
RECOVER\_TIME: NULL  
TRANSACTION\_COUNTER: NULL  
VERSION: NULL  
ROW\_FORMAT: NULL  
TABLE\_ROWS: NULL  
AVG\_ROW\_LENGTH: NULL  
DATA\_LENGTH: NULL  
MAX\_DATA\_LENGTH: NULL  
INDEX\_LENGTH: NULL  
DATA\_FREE: 20971520  
CREATE\_TIME: NULL  
UPDATE\_TIME: NULL  
CHECK\_TIME: NULL  
CHECKSUM: NULL  
STATUS: NORMAL  
EXTRA: NULL  
2 rows in set (0.35 sec)

**We have also tried manually purge undo log:**  
set global innodb\_undo\_log\_truncate=off  
set global innodb\_max\_undo\_log\_size=50M  
set global innodb\_undo\_log\_truncate=ON  
**Before :**  
-rw-r----- 1 mysql mysql 704M Nov 2 11:56 undo\_002  
-rw-r----- 1 mysql mysql 368M Nov 2 11:56 undo\_001

**After :**  
-rw-r----- 1 mysql mysql 16K Nov 2 12:10 undo\_2\_trunc.log  
-rw-r----- 1 mysql mysql 16M Nov 2 12:10 undo\_002  
-rw-r----- 1 mysql mysql 16K Nov 2 12:10 undo\_1\_trunc.log  
-rw-r----- 1 mysql mysql 16M Nov 2 12:10 undo\_001

No Luck still backup failed.

This is production server we will hardly get downtime for Instance Restart.

Any help would be highly appreciated.

Regards,  
Jyoti Rajai

---

<div class="post-metadata">

**Author:** ![satya.bodapati](https://sea1.discourse-cdn.com/flex019/user_avatar/forums.percona.com/satya.bodapati/32/1322_2.png) [@satya.bodapati](https://forums.percona.com/u/satya.bodapati)\
**Post date:** [November 2, 2022, 10:46am UTC](https://forums.percona.com/t/percona-xtrabackup-undo-log-truncation/18307/2 "2022-11-02T10:46:46Z")

</div>

Hi Jyothi,

It looks like you are facing [[PXB-2702] Backup fails when undo truncation log is present - Percona JIRA](https://jira.percona.com/browse/PXB-2702)

MySQL server is supposed to remove the undo\*\_trunc.log after resuming from crash. For some reason, it leaves this file (orphan). This confuses backup.

We will be fixing in the upcoming release of PXB 8.0.30

As a workaround, you can try to rename them the undo\__trunc.log files in server data directory to undo_\_trunc.log.backup(or any other extension except .log)

---

<div class="post-metadata">

**Author:** ![satya.bodapati](https://sea1.discourse-cdn.com/flex019/user_avatar/forums.percona.com/satya.bodapati/32/1322_2.png) [@satya.bodapati](https://forums.percona.com/u/satya.bodapati)\
**Post date:** [November 9, 2022, 11:00am UTC](https://forums.percona.com/t/percona-xtrabackup-undo-log-truncation/18307/3 "2022-11-09T11:00:41Z")

</div>

@Jyoti_Rajai I hope my suggestion worked for you. If not, please let us know

---

<div class="post-metadata">

**Author:** ![Jyoti\_Rajai](https://sea1.discourse-cdn.com/flex019/user_avatar/forums.percona.com/jyoti_rajai/32/4482_2.png) [@Jyoti\_Rajai](https://forums.percona.com/u/Jyoti_Rajai)\
**Post date:** [November 17, 2022, 7:02am UTC](https://forums.percona.com/t/percona-xtrabackup-undo-log-truncation/18307/4 "2022-11-17T07:02:08Z")

</div>

YEs it did helped. Thanks a lot.
