xtrabackup 不複製二進制日誌文件 (mysql-bin.xxxxx) 我應該手動複製它們嗎?solveds○一世v和dsolved
在我按照 DigitalOcean https://www.digitalocean.com/community/tutorials/how-to-create-hot-backups-of-mysql-databases-with-percona-xtrabackup-on-ubuntu-14中提到的步驟之後-04 …我無法達到預期的結果。
我正在使用啟用了二進制日誌選項的伺服器
log_bin = /var/log/mysql/mariadb-bin
log_bin_index = /var/log/mysql/mariadb-bin.index
我執行以下操作以使用 innobackupex 命令備份我的數據庫,如下所示
innobackupex --user=$username --password=$password --no-timestamp /data/backups/new_backup
然後我做應用日誌來應用複制的事務
innobackupex --apply-log /data/backups/new_backup
但是一旦我:
1-停止我的mysql伺服器
2-將我的 /var/lib/mysql/* 移動到 /tmp/mysql/
3-使用 sudo innobackupex –copy-back /data/backups/new_backup 恢復(加上更改所有權)我的備份
我無法再次啟動 mysql 服務,因為 /var/lib/mysql/ 現在沒有二進制日誌 mysql-bin.xxxxxx。
這是我的 /var/lib/mysql/ 目錄的樣子
user@pc1:~$ ll /var/lib/mysql/ total 1205264 drwxr-xr-x 6 mysql mysql 4096 Jan 13 01:19 ./ drwxr-xr-x 45 root root 4096 Oct 10 14:13 ../ drwx------ 2 mysql mysql 73728 Jan 8 05:02 1bd3e0294da19198/ -rw-rw---- 1 mysql mysql 16384 Jan 8 05:09 aria_log.00000001 -rw-rw---- 1 mysql mysql 52 Jan 8 05:09 aria_log_control -rw-r--r-- 1 root root 0 Oct 10 14:10 debian-10.0.flag -rw-rw---- 1 mysql mysql 79691776 Feb 11 06:22 ibdata1 -rw-rw---- 1 mysql mysql 536870912 Feb 11 06:22 ib_logfile0 -rw-rw---- 1 mysql mysql 536870912 Oct 10 14:14 ib_logfile1 -rw-rw---- 1 mysql mysql 0 Oct 10 14:10 multi-master.info drwxr-xr-x 2 mysql root 4096 Oct 10 14:10 mysql/ -rw-rw---- 1 mysql mysql 45143857 Jan 8 04:54 mysql-bin.000002 -rw-rw---- 1 mysql mysql 728 Jan 8 04:55 mysql-bin.000003 -rw-rw---- 1 mysql mysql 35315670 Jan 8 05:08 mysql-bin.000004 -rw-rw---- 1 mysql mysql 2513 Jan 8 05:09 mysql-bin.000005 -rw-rw---- 1 mysql mysql 32133 Jan 12 23:43 mysql-bin.000006 -rw-rw---- 1 mysql mysql 46855 Feb 11 06:22 mysql-bin.000007 -rw-rw---- 1 mysql mysql 5 Jan 13 01:19 mysql.pid -rw-rw---- 1 mysql mysql 1961 Jan 13 01:19 mysql-slow.log -rw------- 1 root root 15 Oct 10 14:10 mysql_upgrade_info drwx------ 2 mysql mysql 4096 Oct 10 14:10 performance_schema/
這是修復後的
user@pc1:~$ ll /var/lib/mysql/ total 1147036 drwxr-x--- 6 mysql mysql 4096 Feb 11 06:33 ./ drwxr-xr-x 3 mysql mysql 4096 Feb 11 06:31 ../ drwxr-x--- 2 mysql mysql 65536 Feb 11 06:33 1bd3e0294da19198/ -rw-r----- 1 mysql mysql 419 Feb 11 06:33 backup-my.cnf -rw-r----- 1 mysql mysql 79691776 Feb 11 06:33 ibdata1 -rw-r----- 1 mysql mysql 536870912 Feb 11 06:33 ib_logfile0 -rw-r----- 1 mysql mysql 536870912 Feb 11 06:33 ib_logfile1 -rw-r----- 1 mysql mysql 12582912 Feb 11 06:33 ibtmp1 drwxr-x--- 2 mysql mysql 4096 Feb 11 06:33 mysql/ drwxr-x--- 2 mysql mysql 4096 Feb 11 06:33 performance_schema/ -rw-r----- 1 mysql mysql 33 Feb 11 06:33 xtrabackup_binlog_info -rw-rw-r-- 1 mysql mysql 38 Feb 11 06:33 xtrabackup_binlog_pos_innodb -rw-r----- 1 mysql mysql 115 Feb 11 06:33 xtrabackup_checkpoints -rw-r----- 1 mysql mysql 552 Feb 11 06:33 xtrabackup_info -rw-r----- 1 mysql mysql 8388608 Feb 11 06:33 xtrabackup_logfile
目前我沒有使用 Master-Slave 進行複制,但我想要二進制日誌,我的情況只有在我將 mysql-bin.xxxxx 從 /tmp/mysql/ 複製到 /var/lib/mysql/ 以使 mysql 服務成為時才有效能夠啟動!,或者當我禁用日誌選項並手動執行一些操作時,例如更改 /var/log/mysql/mariadb-bin.index 以指向 mysql-bin.000001 我認為這很複雜,而不是 xtrabackup專為。
我必須禁用二進制日誌選項嗎?
我必須同步數據庫旁邊的二進制日誌文件嗎?
我如何從恢復的版本重建二進制日誌文件?
更新$$ solved $$
感謝 hmkael 和 Michael Coburn
Michael Coburn 提到:因為我使用的是 MariaDB,所以我必須使用 MariaDB Backup 而不是 Percona XtraBackup,xtrabackup 和/或它的複制不會複製二進制日誌。
以下連結中的更多資訊:
如果您的備份來自啟用了二進制日誌記錄的伺服器,xtrabackup 將在目標目錄中創建一個名為 xtrabackup_binlog_info 的文件。該文件包含二進制日誌文件名和二進制日誌中與準備好的備份對應的確切點的位置。
在啟動 MySQL 伺服器之前,您必須將此二進制日誌複製回原始文件夾