网站维护-使用xtrabackup备份数据库、再学任务计划

博客介绍了数据库备份与任务计划相关内容。因MariaDB10.3.x及以上版本用Percona XtraBackup工具有问题,推荐使用mariabackup进行全量、增量备份与恢复操作,还给出了具体命令。此外,还展示了数据库备份的任务计划脚本及定时执行设置。

使用xtrabackup备份数据库

MariaDB10.3.x及以上的版本用Percona XtraBackup工具会有问题。

原因可能是MariaDB10.3以上版本的redo日志格式和之前不同了。

解决方案是,使用mariabackup,它是MariaDB提供的一个开源工具,用于对InnoDB,Aria和MyISAM表进行物理在线备份。

这个工具是基于Percona的XtraBackup(版本2.3.8)的解决方案:

全量备份:

mariabackup --defaults-file=/etc/my.cnf --backup --user=xxx --password=xxx --target-dir /data/backup/2019-03-18

mariabackup --defaults-file=/etc/my.cnf --backup --user=root --password=jerry-linux --target-dir /data/backup/2019-03-18
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
全量恢复:

停止数据库

/etc/init.d/mysqld stop

清空datadir

mv /data/mysql /data/mysql.1

mariabackup --prepare --target-dir /data/backup/2019-03-18/

mariabackup --copy-back --target-dir /data/backup/2019-03-18/
改属主、属组

chown mysql:mysql -R /data/mysql

启动

/etc/init.d/mysqld start

5.58-使用xtrabackup备份数据库3

增量备份:

先删除blog库

mysql -uroot -pjerry-linux -e “drop database blog”

mariabackup --defaults-file=/etc/my.cnf --backup --user=xxx --password=xxx --target-dir /data/backup/2019-02-21

第一个增量:mariabackup --backup --user=xxx --password=xxx --target-dir /data/backup/2019-02-21_inc1 --incremental-basedir /data/backup/2019-02-21

incremental-basedir 指定基于谁进行备份

mariabackup --backup --user=root --password=jerry-linux --target-dir /data/backup/2019-03-18_inc1 --incremental-basedir /data/backup/2019-03-18

创建一个新的数据库db1,导入post.sql

mysql -uroot -pjerry-linux -e “create database db1”

mysql -uroot -pjerry-linux db1 < /root/post.sql

第二个增量:mariabackup --backup --user=xxx --password=xxx --target-dir /data/backup/2019-02-21_inc2 --incremental-basedir /data/backup/2019-02-21_inc1

mariabackup --backup --user=root --password=jerry-linux --target-dir /data/backup/2019-03-18_inc2 --incremental-basedir /data/backup/2019-03-18_inc1
在这里插入图片描述
增量恢复:

关闭数据库

/etc/init.d/mysqld stop

删除数据库

rm -rf /data/mysql/*

先准备全备

mariabackup --prepare --target-dir /data/backup/2019-03-18 --apply-log-only

准备第一个增量:

cd /data/backup

mariabackup --prepare --target-dir ./2019-03-18 --incremental-dir ./2019-03-18_inc1 --apply-log-only

准备第二个增量:

mariabackup --prepare --target-dir ./2019-03-18 --incremental-dir ./2019-03-18_inc2 --apply-log-only

恢复:

mariabackup --copy-back --target-dir ./2019-03-18

修改属组属主

chown -R mysql:mysql /data/mysql

启动服务

/etc/init.d/mysqld start

查看数据库

mysql -uroot -pjerry-linux db1 -e “show create table pre_forum_post\G”

再学任务计划

#!/bin/bash

bakdir=/data/backup

d=date +%F

for db in bbs blog db1

do

mysqldump -uroot -jerry-linux $db > b a k d i r / bakdir/ bakdir/db_$d.sql

done

cd $bakdir

gzip *_$d.sql

find ./ -name “*.gz” -mtime +30 |xargs rm 设置保存一个月 xargs会认为处理的对象是文件
sh /usr/local/sbin/mysqlbak.sh
crontab -e

30 3 * * * /bin/bash /usr/local/sbin/mysqlbak.sh &> /tmp/mysqlbak.log

把正确和错误的输出到Mysqlbak.log中

&> /tmp/mysqlbak.log == > /tmp/mysqlbak.log 2>/tmp/mysqlbak.log

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值