Mariadb数据库备份与恢复(2)
在上一篇文章阐述了数据库复制数据文件的冷备和select ... into outfile以及mysqldump热备方法,今天实验一些mariadb数据库自带的物理在线备份工具Mariabackup,该工具可以完成大规模的备份和恢复。
Mariabackup这个工具是基于Percona的XtraBackup(版本2.3.8)的解决方案,MariaDB10.3.x及以上的版本用Percona XtraBackup工具会有问题,MariaDB官方开发一个完全支持MariaDB独有功能的备份解决方案Mariabackup。
笔者在windows平台下备份数据库目录data目录下,目录也可以写全路径,如果在备份数据到bin目录里面会提示无法建立文件夹的错误,所以笔者在上一级目录里面存放数据。
mariabackup --backup --target-dir ../backup --user root
mariabackup使用了socket方式来连接数据库。
本次备份了test数据库,里面有一个card表有一千万行数据,花了13秒完成。备份完成后查看backup目录,其实有别于其他在线备份的工具,mariabackup备份下来的是数据文件,而非sql语句,这样的物理备份复制其原始格式的数据文件,可以快速恢复。但是缺点就是采取复制物理文件的方式备份,需要大量的磁盘空间,用于存放备份。
关闭数据库再还原数据的命令:mariabackup --copy-back --target-dir ../backup --user root。在linux平台下,因为备份的用户是root,还原过去的时候属主没有变化,所以要吧还原过去的数据的属主和属组修改一下:chown -R mysql:mysql /usr/local/mariadb/data 。
同时可以添加参数:--incremental-basedir来增量备份, mariabackup --backup --databases test --target-dir ../backup1 --incremental-basedir ../backup --user root,即在backup基础上再进行备份。