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