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=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有效性。

通過瀏覽器訪問發現數據完成恢復了。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章