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有效性。
經過瀏覽器訪問發現數據完成恢復了。