Mysql

MariaDB 增量備份始終創建完整備份 (mariabackup/xtrabackup)

  • September 24, 2020

我正在嘗試使用包含的mariabackup工具(的版本xtrabackup)為我的 MariaDB 數據庫(儲存在 MyISAM 儲存中,列為支持)設置增量備份解決方案。

我遇到的問題是“增量”備份的大小都與主完整備份和彼此相同。我正在經歷的步驟如下。

首先,我對數據庫進行完整備份:

mariabackup --backup --databases="database" --target-dir /some/place/backup/full/ \
   --user backupuser

這將創建一個可以成功準備和恢復的完整備份。

接下來,我嘗試使用以下命令進行增量備份:

mariabackup --backup --databases="database" --target-dir /some/place/backup/inc/1/ \
       --incremental-basedir /some/place/backup/full/ --user backupuser

此命令執行沒有錯誤,但它會創建一個完整備份,即使from_lsnto_lsn都是相同的(最大/最新的 lsn)。

無論自上次備份以來 lsn 是否增加,日誌總是顯示xtrabackup: Transaction log of lsn (x) to (x) was copied.x 是數據庫目前的 lsn 編號。

如果自上次備份以來沒有在數據庫中輸入數據,則查看xtrabackup_checkpoints我看到的文件:

完全備份:

backup_type = full-backuped
from_lsn = 0
to_lsn = 1706249
last_lsn = 1706249
recover_binlog_info = 0

增量備份:

backup_type = incremental
from_lsn = 1706249
to_lsn = 1706249
last_lsn = 1706249
recover_binlog_info = 0

在這種情況下,增量備份似乎不應該複製任何數據。

如果自上次備份以來 lsn 增加了,我會看到:

完全備份:

backup_type = full-backuped
from_lsn = 0
to_lsn = 1706249
last_lsn = 1706249
recover_binlog_info = 0

增量備份:

backup_type = incremental
from_lsn = 1706249
to_lsn = 1706269
last_lsn = 1706269
recover_binlog_info = 0

在這種情況下,它看起來應該只將 1706249 複製到 1706269,但它會複製整個數據庫。我究竟做錯了什麼?

MyISAM 表不是事務性的,因此每次增量備份時都會完整複製它們。

引用自:https://dba.stackexchange.com/questions/211685