MariaDB数据库备份与恢复
mysql
【实验目的】
sql
1,按期给数据作备份。
shell
2,防止有人误操做删除数据。数据库
3,经过备份及时恢复数据文件。vim
【实验步骤】
浏览器
1,数据存储路径/var/lib/mysql 来确认数据(我只是实验yum安装路径),同时事先须要开启bin-log。bash
2,写一个shell脚原本实现数据库文件的备份。ide
3,经过crontabl来配合shell脚本实现自动化备份数据库文件。spa
4,预先执行shell脚本文件来备份数据库wiki文件。rest
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=Pass23! 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 * * * /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 | +--------------------+ | information_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 | +--------------------+ | information_schema | | mysql | | performance_schema | | test | | wikidatabase | +--------------------+ 5 rows in set (0.01 sec)
7,验证数据库wiki有效性。
经过浏览器访问发现数据完成恢复了。