备份MariaDB

运行以下命令以创建备份目录用于存储MariaDB备份内容。

sudo mkdir ~/mariadb_backup

在上面的文件夹中创建实时备份和存储。

sudo mariabackup --backup --target-dir ~/mariadb_backup -u root

输出示例:

[00] 2021-01-07 12:28:44 >> log scanned up to (1625621)
 mariabackup: Stopping log copying thread
 [00] 2021-01-07 12:28:44 >> log scanned up to (1625621) [00] 2021-01-07 12:28:44 Executing UNLOCK TABLES
 [00] 2021-01-07 12:28:44 All tables unlocked
 [00] 2021-01-07 12:28:44 Copying ib_buffer_pool to /home/jack/mariadb_backup/ib_buffer_pool
 [00] 2021-01-07 12:28:44         . done
 [00] 2021-01-07 12:28:44 Backup created in directory '/home/jack/mariadb_backup/'
 [00] 2021-01-07 12:28:44 Writing backup-my.cnf
 [00] 2021-01-07 12:28:44         . done
 [00] 2021-01-07 12:28:44 Writing xtrabackup_info
 [00] 2021-01-07 12:28:44         . done
 [00] 2021-01-07 12:28:44 Redo log (from LSN 1625612 to 1625621) was copied.
 [00] 2021-01-07 12:28:44 completed OK!

列出备份文件夹的内容。

ls -al ~/mariadb_backup/

恢复MariaDB

将备份内容压缩打包,传输到另一台服务器上。

sudo tar -czvf mariadb_backup.tar.gz ~/mariadb_backup

可以使用rsync或者scp向远程位置发送备份数据。

在远程主机上,运行以下命令以提取存档。

tar zxvf mariadb_backup.tar.gz

停止MariaDB服务并删除任何现有的MariaDB数据。

sudo systemctl stop mariadb.service
sudo rm -rf /var/lib/mysql/*

使用备份文件来准备恢复。

sudo mariabackup --prepare --target-dir ~/mariadb_backup

输出示例

2021-01-07 12:55:58 0 [Note] InnoDB: Initializing buffer pool, total size = 100M, instances = 1, chunk size = 100M
2021-01-07 12:55:58 0 [Note] InnoDB: Completed initialization of buffer pool
2021-01-07 12:55:58 0 [Note] InnoDB: page_cleaner coordinator priority: -20
2021-01-07 12:55:58 0 [Note] InnoDB: The log sequence number 1625452 in the system tablespace does not match the log sequence number 1625612 in the ib_logfiles!
[00] 2021-01-07 12:55:58 Last binlog file , position 0
[00] 2021-01-07 12:55:59 completed OK!

准备好后,执行下面的命令开始恢复:

sudo mariabackup --copy-back --target-dir ~/mariadb_backup

输出示例:

01] 2021-01-07 13:21:02 Copying ./mysql/help_category.MYD to /var/lib/mysql/mysql/help_category.MYD
[01] 2021-01-07 13:21:02         . done
[01] 2021-01-07 13:21:02 Copying ./mysql/columns_priv.frm to /var/lib/mysql/mysql/columns_priv.frm
[01] 2021-01-07 13:21:02         . done
[01] 2021-01-07 13:21:02 Copying ./mysql/columns_priv.MYI to /var/lib/mysql/mysql/columns_priv.MYI
[01] 2021-01-07 13:21:02         . done
[01] 2021-01-07 13:21:02 Copying ./ib_buffer_pool to /var/lib/mysql/ib_buffer_pool
[01] 2021-01-07 13:21:02         . done
[01] 2021-01-07 13:21:02 Copying ./aria_log.00000001 to /var/lib/mysql/aria_log.00000001
[01] 2021-01-07 13:21:02         . done
[00] 2021-01-07 13:21:02 completed OK!

修改新文件的权限:

sudo chown -R mysql. /var/lib/mysql

重新启动MariaDB服务即可

sudo systemctl start mariadb.service

安装MariaBackup.

在Ubuntu上运行下面的命令安装MariaBackup。

sudo apt update
sudo apt-get install mariadb-backup
如何备份和恢复MariaDB数据库

MariaDB 10.1引入了一个名为MariaBackup的新备份功能。

MariaBackup是MariaDB提供的一个开源工具,用于执行InnoDB,Aria和Myisam表的物理在线备份。
它还为InnoDB表启用了“热门在线”备份。

MariaBackup不仅备份数据库,它还备份许多不同的文件,以便执行其备份和还原操作。

日期:2020-07-07 20:55:03 来源:oir作者:oir