一文學會Mysql數據庫備份與恢復
數據庫備份的分類
物理備份:數據庫操作系統的物理文件(如數據文件,日志文件等)的備份
物理備份的方法:
冷備份(脫機備份):是在關閉數據庫時候進行的
熱備份(聯機備份):數據庫處于運行狀態(tài),依賴于數據庫的日志文件
溫備份:數據庫鎖定表格(不可寫入但可讀)的狀態(tài)下備份操作
邏輯備份:對數據庫邏輯組件(如:表等數據庫對象)的備份
從數據庫的備份策略角度,備份可分為
完全備份:每次對數據庫進行完整的備份
差異備份:備份自從上次完全備份之后被修改過的文件
增量備份:只有在上次完全備份或者增量備份后被修改的文件才會被備份
常見的備份方法
物理冷備:
備份時數據庫處于關閉狀態(tài),直接打包數據庫文件
備份速度快,恢復時也是最簡單的專用備份工具mydump或mysqlhotcopy
mysqldump常用的邏輯備份工具
mysqlhotcopy僅擁有備份MyISAM或ARCHIVE表
啟用二進制日志進行增量備份
進行增量備份,需要刷新二進制日志第三方工具備份
免費的MySQL熱備份軟件Percona XtraBackup
Mysql完全備份
是對整個數據庫、數據庫結構和文件結構的備份
保存的是備份完成時刻的數據庫
是差異備份與增量備份的基礎優(yōu)點:備份與恢復操作簡單方便
缺點:數據存在大量的重復,占用大量的備份空間,備份與恢復時間長
完全備份分類
物理冷備份與恢復:關閉MySQL數據庫,使用tar命令直接打包數據庫文件夾,直接替換現有MySQL目錄即可
mysqldump備份與恢復:MySQL自帶的備份工具,可方便實現對MySQL的備份,可以將指定的庫,表導出為SQL腳本,使用命令mysql導入備份的數據
冷備份方法實現恢復數據庫
現在庫中有兩個表,退出數據口,關閉mysql服務
systemctl stop mysqld
進行壓縮
mkdir /backup tar Jcvf /backup/mysql_alldata_$(date +%F).tar.xz /usr/local/mysql/data/
恢復數據庫
mkdir bak mv /usr/local/mysql/data/ /bak/ ##模擬數據庫丟失 mkdir restore tar Jxvf /backup/mysql_alldata_2022-02-12.tar.xz -C restore/
mysqldump備份與恢復
(1)完全備份一個或多個完整的庫(包括其中所有的表)
mysqldump -u root -p[密碼] --databases 庫名 > /備份路徑/備份文件名.sql
(2) 完全備份 mysql服務器中所有的庫
mysqldump -u root -p[密碼] --all-databases >/備份路徑/備份文件名.sql
(3) 完全備份指定庫中的部分表
mysqldump -u root -p[密碼] 庫名 [表名1] [表名2] > /備份路徑/備份文件名.sql ##使用 -d 選項,說明只保存數據庫的表結構 ##不使用 -d 選項,說明表數據也進行備份
(4) 查看備份文件
grep -v "^--" /backup2/ky17_ky18.sql | grep -v "^/" | grep -v "^$"
Mysql完全恢復
(1) 恢復數據庫
(2) 恢復數據表
Mysql 日志管理
MySQL的日志默認保存位置為/usr/ local/mysql/data
vim /etc/my.cnf
mysql -uroot -pabc123
Mysql增量備份
1.開啟二進制日志功能
systemctl restart mysqld
2.每周凌晨兩點對數據庫或表進行完全備份
進數據庫寫入新的數據
再次生成新的二進制日志文件
查看二進制日志文件的內容
Mysql增量恢復
1.一般恢復
模擬數據丟失
mysqlbinlog --no-defaults mysql-bin.000003 | mysql -u root -p
模擬丟失所有數據的恢復步驟
drop database kgc; mysql -uroot -pabc123 < kgc_2022-02-13.sql mysqlbinlog --no-defaults mysql-bin.000003 | mysql -u root -p
斷點恢復
基于位置點恢復
先將二進制文件轉為txt文件,查看
模擬故障點
那只恢復id=6 name=dc 的數據如何恢復
基于時間點恢復
僅恢復到 15:29:34 之前的數據 即不恢復 dc的數據
僅恢復到 15:29:34 之后的數據 即不恢復 dd的數據
如果恢復某條SQL語句之前的所有數據,就stop在這個語句的位置節(jié)點或時間點
如果恢復某條SQL語句以及之后的所有數據,就從這個語句的位置節(jié)點或時間點start
總結
到此這篇關于Mysql數據庫備份與恢復的文章就介紹到這了,更多相關Mysql備份與恢復內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
MySQL+Redis緩存+Gearman共同構建數據庫緩存的方法
這篇文章主要介紹了MySQL+Redis緩存+Gearman共同構建數據庫緩存,部署后在MySQL端進行創(chuàng)建一個用戶給與遠程登錄權限,使得Redis作為緩存可以用來同步數據使用,需要的朋友可以參考下2022-10-10淺談sql語句中GROUP BY 和 HAVING的使用方法
GROUP BY語句和HAVING語句,經過研究和練習,終于明白如何使用了,在此記錄一下同時添加了一個自己舉的小例子,通過寫這篇文章來加深下自己學習的效果,還能和大家分享下,同時也方便以后查閱,一舉多得,下面由小編來和大家一起學習2019-05-05mysql中url時區(qū)的陷阱該如何規(guī)避詳解
最近在工作中發(fā)現一個問題,是關于mysql中url時區(qū)的,發(fā)現這個陷阱如果大家不注意可能都會遇到,所以給大家總結下,這篇文章主要給大家介紹了關于mysql中url時區(qū)的陷阱該如何規(guī)避的相關資料,需要的朋友可以參考借鑒,下面來一起看看吧。2017-08-08