數據庫備份和恢復
一、數據庫的備份
備份的類型以及瞭解
物理備份:1.冷備份(脫機備份):數據庫處於關閉狀態,直接打包數據庫文件
特點:備份速度快,回覆時簡單
2.熱備份(聯機備份):在數據庫運行的情況下,採用archivelog mode方式備份數據庫的方法
特點:如果你有昨天夜裏的一個冷備份而且又有今天的熱備份文件,在發生問題時,就可以利用這些資料恢復更多的信息
3.溫備份:溫備份一般是週期性開機,根據內容進行更新
邏輯備份:1.完全備份:從數據庫安裝到現在全部備份
2.差異備份:從上次備份到現在的這個部分備份
3.增量備份:上次備份上增加從上次到現在的備份
具體備份方法
物理打包備份
tar zcf /mysqlbak/mysql.$(date +%Y%m%d%S).tar.gz /usr/local/mysql/date/*
專用工具備份(以登錄數據庫的方式導出數據庫的內容)
備份所有庫:mysqldump -uroot -p123456 --all-databases > /mysqlbak/exercise.sql
備份指定庫:mysqldump -uroot -p123456 exercise > /mysqlbak/exercise.sql
備份表:mysqldump -uroot -p123456 exercise A > /mysqlbak/exercise.A.sql
增量備份
通過MySQL提供的二進制日誌
vim /etc/my.cnf
max_binlog_size \\設置二進制日誌文件的最大值
log-bin=mysql-bin \\啓用二進制日誌
二進制日誌啓用生成文件:/usr/local/mysql/data/master-bin.000001
log-bin=/usr/local/mysql/log/mysql-bin
flush logs;
第三方備份工具
phpMyAdmin
Navicat Premium
等等等等。。。。。。
二、恢復數據庫
1.直接解壓備份的解壓包到數據庫數據目錄
2.mysqldump導出數據恢復
方法一:
先創建數據庫,進入到該庫(名字與需要恢復的庫名字一樣)
mysql>source /mysqlbak/exercise.sql
方法二:
先創建數據庫,退出數據庫(名字與需要恢復的庫名字一樣)
mysql -uroot -p123456 exercise < /mysqlbak/exercise.sql
3.二進制日誌進行恢復
通過查看二進制文件如下圖來查看時間節點或位置
使用編譯安裝自帶的工具查看並恢復mysqlbinlog
查看二進制文件:mysqlbinlog mysql-bin.00001
基於時間節點的恢復(注意命令格式)
mysqlbinlog --stop-datetime='2020-03-06 15:28:26' /usr/local/mysql/data/master-bin.000001 | mysql -uroot -p123456
基於位置的恢復(注意命令格式)
mysqlbinlog --stop-position='1935' /usr/local/mysql/data/master-bin.000001 |mysql -uroot -p123456