微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MariaDB数据库备份与恢复

MariaDB数据库备份与恢复


【实验目的】

1,定期给数据做备份。

2,防止有人误操作删除数据。

3,通过备份及时恢复数据文件


【实验步骤】

1,数据存储路径/var/lib/MysqL 来确认数据(我只是实验yum安装路径),同时事先需要开启bin-log。

2,写一个shell脚本来实现数据库文件的备份。

3,通过crontabl来配合shell脚本实现自动化备份数据库文件

4,预先执行shell脚本文件来备份数据库wiki文件

5,模拟用户删除数据库wiki文件

6,通过本地最近备份文件来恢复数据库wiki文件

7,验证数据库wiki有效性。


【实验过程】

1,数据存储路径/var/lib/MysqL 来确认数据。

[root@wiki MysqL]# ls
aria_log.00000001  multi-master.info  MysqL.sock
aria_log_control   MysqL              performance_schema
ib_buffer_pool     MysqL_bin.000001   test
ibdata1            MysqL_bin.000002   wikidatabase
ib_logfile0        MysqL_bin.000003   wiki.pid
ib_logfile1        MysqL_bin.000004
ibtmp1             MysqL_bin.index

开启bin-log,需要重新启动数据库

vim /etc/my.cnf.d/server.cnf
[MysqLd]
log-bin=MysqL-bin

重启数据库:systemctl restart mariadb.service

2,写一个shell脚本来实现数据库文件的备份。

#auto backup MysqL
#tony  2019-03-01
#Define PATH定义变量
BAKDIR=/data/backup/MysqL/`date +%Y-%m-%d`
MysqLDB=wikidatabase
MysqLPW=Android
MysqLUSR=root
#must use root user run scripts 必须使用root用户运行,$UID为系统变量
if
[ $UID -ne 0 ];then
echo This script must use the root user ! ! !
sleep 2
exit 0
fi
#Define DIR and mkdir DIR 判断目录是否存在,不存在则新建
if
[ ! -d $BAKDIR ];then
mkdir -p $BAKDIR
else
echo This is $BAKDIR exists....
fi
#Use MysqLdump backup MysqL 使用MysqLdump备份数据库
/usr/bin/MysqLdump -u$MysqLUSR -p$MysqLPW  -B -F -R -x --master-data=2 $MysqLDB|gzip >$BAKDIR/wikidatabase_db.sql.gz
echo "The MysqL backup successfully

-----------------
参数说明:
-B:指定数据库
-F:刷新日志
-R:备份存储过程等
-x:锁表
--master-data:在备份语句里添加CHANGE MASTER语句以及binlog文件及位置点信息
-----------------

3,通过crontabl来配合shell脚本实现自动化备份数据库文件

[root@wiki scripts]# crontab -l
#backup mariadb
0 0 * * * root /scripts/backup_db_wiki.sh >/dev/null 2>&1

4,预先执行shell脚本文件来备份数据库wiki文件

[root@wiki scripts]# chmod +x backup_db_wiki.sh 
[root@wiki scripts]# sh backup_db_wiki.sh

5,模拟用户删除数据库wiki文件

MariaDB [(none)]> drop schema wikidatabase;
Query OK, 59 rows affected (0.24 sec)

MariaDB [(none)]> show databases;          
+--------------------+
| Database           |
+--------------------+
| @R_827_4045@ion_schema |
| MysqL              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.00 sec)

6,通过本地最近备份文件来恢复数据库wiki文件

[root@wiki scripts]# cd /data/backup/MysqL/2019-03-04/
[root@wiki 2019-03-04]# gzip -d wikidatabase_db.sql.gz
[root@wiki 2019-03-04]# MysqL -uroot -p < wikidatabase_db.sql
[root@wiki 2019-03-04]# MysqL -uroot -p
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| @R_827_4045@ion_schema |
| MysqL              |
| performance_schema |
| test               |
| wikidatabase       |
+--------------------+
5 rows in set (0.01 sec)

7,验证数据库wiki有效性。

通过浏览器访问发现数据完成恢复了。


版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐