Mysql
MariaDB 增量備份始終創建完整備份 (mariabackup/xtrabackup)
我正在嘗試使用包含的
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_lsn
和to_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 表不是事務性的,因此每次增量備份時都會完整複製它們。