《MYSQL教程mysql備份的三種方式詳解》要點(diǎn):
本文介紹了MYSQL教程mysql備份的三種方式詳解,希望對您有用。如果有疑問,可以聯(lián)系我們。
MYSQL必讀一、備份的目的
MYSQL必讀做災(zāi)難恢復(fù):對損壞的數(shù)據(jù)進(jìn)行恢復(fù)和還原
需求改變:因需求改變而需要把數(shù)據(jù)還原到改變以前
測試:測試新功能是否可用
MYSQL必讀二、備份需要考慮的問題
MYSQL必讀可以容忍丟失多長時間的數(shù)據(jù);
恢復(fù)數(shù)據(jù)要在多長時間內(nèi)完;
恢復(fù)的時候是否需要持續(xù)提供服務(wù);
恢復(fù)的對象,是整個庫,多個表,還是單個庫,單個表.
MYSQL必讀三、備份的類型
MYSQL必讀1、根據(jù)是否需要數(shù)據(jù)庫離線
MYSQL必讀冷備(cold backup):需要關(guān)mysql服務(wù),讀寫請求均不允許狀態(tài)下進(jìn)行;
溫備(warm backup): 服務(wù)在線,但僅支持讀請求,不允許寫請求;
熱備(hot backup):備份的同時,業(yè)務(wù)不受影響.
MYSQL必讀注:
MYSQL必讀1、這種類型的備份,取決于業(yè)務(wù)的需求,而不是備份工具
2、MyISAM不支持熱備,InnoDB支持熱備,但是需要專門的工具
MYSQL必讀2、根據(jù)要備份的數(shù)據(jù)集合的范圍
完全備份:full backup,備份全部字符集.
增量備份: incremental backup 上次完全備份或增量備份以來改變了的數(shù)據(jù),不能單獨(dú)使用,要借助完全備份,備份的頻率取決于數(shù)據(jù)的更新頻率.
差異備份:differential backup 上次完全備份以來改變了的數(shù)據(jù).
建議的恢復(fù)策略:
完全+增量+二進(jìn)制日志
完全+差異+二進(jìn)制日志
MYSQL必讀3、根據(jù)備份數(shù)據(jù)或文件
MYSQL必讀物理備份:直接備份數(shù)據(jù)文件
MYSQL必讀優(yōu)點(diǎn):
MYSQL必讀備份和恢復(fù)操作都比較簡單,能夠跨mysql的版本,
恢復(fù)速度快,屬于文件系統(tǒng)級別的
MYSQL必讀建議:
MYSQL必讀不要假設(shè)備份一定可用,要測試
mysql>check tables;檢測表是否可用
邏輯備份: 備份表中的數(shù)據(jù)和代碼
MYSQL必讀優(yōu)點(diǎn):
MYSQL必讀恢復(fù)簡單、
備份的結(jié)果為ASCII文件,可以編輯
與存儲引擎無關(guān)
可以通過網(wǎng)絡(luò)備份和恢復(fù)
MYSQL必讀缺點(diǎn):
MYSQL必讀備份或恢復(fù)都需要mysql服務(wù)器進(jìn)程參與
備份結(jié)果占據(jù)更多的空間,
浮點(diǎn)數(shù)可能會丟失精度
還原之后,縮影需要重建
MYSQL必讀四:備份的對象
MYSQL必讀1、 數(shù)據(jù);
2、配置文件;
3、代碼:存儲過程、存儲函數(shù)、觸發(fā)器
4、os相關(guān)的配置文件
5、復(fù)制相關(guān)的配置
6、二進(jìn)制日志
MYSQL必讀五、備份和恢復(fù)的實(shí)現(xiàn)
MYSQL必讀1、利用select into outfile實(shí)現(xiàn)數(shù)據(jù)的備份與還原
1.1把需要備份的數(shù)據(jù)備份出來
MYSQL必讀注意:
MYSQL必讀備份的目錄路徑必須讓當(dāng)前運(yùn)行mysql服務(wù)器的用戶mysql具有訪問權(quán)限
MYSQL必讀備份完成之后需要把備份的文件從tmp目錄復(fù)制走,要不就失去備份的目的了
MYSQL必讀回到tmp目錄下查看剛才備份的文件
MYSQL必讀[root@www ~]# cd /tmp
MYSQL必讀[root@www tmp]# cat stud.txt
MYSQL必讀3Xie Yanke53M216
MYSQL必讀4Ding Dian32M44
MYSQL必讀6Shi Qing46M5\N
MYSQL必讀13Tian Boguang33M2\N
MYSQL必讀25Sun Dasheng100M\N\N
MYSQL必讀[root@www tmp]#
MYSQL必讀你會發(fā)現(xiàn)是個文本文件.所以不能直接導(dǎo)入數(shù)據(jù)庫了.需要使用load data infile 恢復(fù)
MYSQL必讀回到mysql服務(wù)器端,刪除年齡大于30的用戶,模擬數(shù)據(jù)被破壞
MYSQL必讀mysql> delete from students where Age > 30;
MYSQL必讀mysql> load data infile '/tmp/stud.txt' into table students;
MYSQL必讀2、利用mysqldump工具對數(shù)據(jù)進(jìn)行備份和還原
MYSQL必讀mysqldump 常用來做溫備,所以我們首先需要對想備份的數(shù)據(jù)施加讀鎖,
MYSQL必讀2.1 施加讀鎖的方式:
MYSQL必讀1.直接在備份的時候添加選項(xiàng)
MYSQL必讀--lock-all-tables 是對要備份的數(shù)據(jù)庫的所有表施加讀鎖
MYSQL必讀--lock-table 僅對單張表施加讀鎖,即使是備份整個數(shù)據(jù)庫,它也是在我們備份某張表的時候才對該表施加讀鎖,因此適用于備份單張表
MYSQL必讀2、在服務(wù)器端書寫命令,
MYSQL必讀mysql> flush tables with read lock; 施加鎖,表示把位于內(nèi)存上的表統(tǒng)統(tǒng)都同步到磁盤上去,然后施加讀鎖
MYSQL必讀mysql> flush tables with read lock;釋放讀鎖
MYSQL必讀但這對于InnoDB存儲引擎來講,雖然你也能夠請求道讀鎖,但是不代表它的所有數(shù)據(jù)都已經(jīng)同步到磁盤上,因此當(dāng)面對InnoDB的時候,我們要使用mysql> show engine innodb status; 看看InnoDB所有的數(shù)據(jù)都已經(jīng)同步到磁盤上去了,才進(jìn)行備份操作.
MYSQL必讀2.2備份的策略:
MYSQL必讀完全備份+增量備份+二進(jìn)制日志
MYSQL必讀演示備份的過程;
MYSQL必讀2.3 先給數(shù)據(jù)庫做完全備份:
MYSQL必讀然后回到mysql服務(wù)器端,
MYSQL必讀2.4回到mysql服務(wù)器端更新數(shù)據(jù)
MYSQL必讀2.5先查看完全備份文件里邊記錄的位置:
MYSQL必讀2.6 在回到服務(wù)器端:
MYSQL必讀2.7做增量備份
MYSQL必讀2.8再回到服務(wù)器
MYSQL必讀2.9導(dǎo)出這次得二進(jìn)制日志:
MYSQL必讀2.10先讓mysql離線
MYSQL必讀回到服務(wù)器端:
MYSQL必讀2.11模擬數(shù)據(jù)庫損壞
MYSQL必讀2.12開始恢復(fù)數(shù)據(jù):
MYSQL必讀驗(yàn)證完成,顯示結(jié)果為我們預(yù)想的那樣
MYSQL必讀注:
MYSQL必讀1、真正在生產(chǎn)環(huán)境中,我們應(yīng)該導(dǎo)出的是整個mysql服務(wù)器中的數(shù)據(jù),而不是單個庫,因此應(yīng)該使用--all-databases
2、在導(dǎo)出二進(jìn)制日志的時候,可以直接復(fù)制文件即可,但是要注意的是,備份之前滾動下日志.
3、利用lvm快照實(shí)現(xiàn)幾乎熱備的數(shù)據(jù)備份與恢復(fù)
MYSQL必讀3.1策略:
MYSQL必讀完全備份+二進(jìn)制日志;
MYSQL必讀3.2準(zhǔn)備:
MYSQL必讀注:事務(wù)日志必須跟數(shù)據(jù)文件在同一個LV上;
MYSQL必讀3.3創(chuàng)建lvm Lvm的創(chuàng)建這里就不多說了,想了解話點(diǎn)擊/LINUXjishu/105937.html
MYSQL必讀3.4 修改mysql主配置文件存放目錄內(nèi)的文件的權(quán)限與屬主屬組,并初始化mysql
MYSQL必讀3.5修改配置文件:
MYSQL必讀3.6 啟動服務(wù)
MYSQL必讀3.7回到mysql服務(wù)器:
MYSQL必讀3.8導(dǎo)出二進(jìn)制文件,創(chuàng)建個目錄單獨(dú)存放
MYSQL必讀3.9為數(shù)據(jù)所在的卷創(chuàng)建快照:
MYSQL必讀回到服務(wù)器端,釋放讀鎖
MYSQL必讀3.10更新數(shù)據(jù)庫的數(shù)據(jù),并刪除數(shù)據(jù)目錄先的數(shù)據(jù)文件,模擬數(shù)據(jù)庫損壞
MYSQL必讀3.11測試
MYSQL必讀啟動服務(wù)
MYSQL必讀注:此方式實(shí)現(xiàn)了接近于熱備的方式備份數(shù)據(jù)文件,而且數(shù)據(jù)文件放在lvm中可以根據(jù)數(shù)據(jù)的大小靈活改變lvm的大小,備份的方式也很簡單.
MYSQL必讀4、基于Xtrabackup做備份恢復(fù)
MYSQL必讀官方站點(diǎn):www.percona.com
MYSQL必讀優(yōu)勢:
MYSQL必讀1、快速可靠的進(jìn)行完全備份
2、在備份的過程中不會影響到事務(wù)
3、支持?jǐn)?shù)據(jù)流、網(wǎng)絡(luò)傳輸、壓縮,所以它可以有效的節(jié)約磁盤資源和網(wǎng)絡(luò)帶寬.
4、可以自動備份校驗(yàn)數(shù)據(jù)的可用性.
MYSQL必讀安裝Xtrabackup
MYSQL必讀其最新版的軟件可從 http://www.percona.com/software/percona-xtrabackup/ 獲得
MYSQL必讀注意:在備份數(shù)據(jù)庫的時候,我們應(yīng)該具有權(quán)限,但需要注意的是應(yīng)該給備份數(shù)據(jù)庫時的用戶最小的權(quán)限,以保證安全性,
MYSQL必讀4.1前提:
MYSQL必讀應(yīng)該確定采用的是單表一個表空間,否則不支持單表的備份與恢復(fù).
在配置文件里邊的mysqld段加上
MYSQL必讀innodb_file_per_table = 1
MYSQL必讀4.2備份策略
完全備份+增量備份+二進(jìn)制日志
4.3準(zhǔn)備個目錄用于存放備份數(shù)據(jù)
MYSQL必讀4.4做完全備份:
MYSQL必讀注:
MYSQL必讀1、只要在最后一行顯示 innobackupex: completed OK!,就說明你的備份是正確的.
2、另外要注意的是每次備份之后,會自動在數(shù)據(jù)目錄下創(chuàng)建一個以當(dāng)前時間點(diǎn)命名的目錄用于存放備份的數(shù)據(jù),那我們?nèi)タ纯炊加惺裁?/p>
MYSQL必讀[root@www 2013-09-12_11-03-04]# ls
backup-my.cnf ibdata1 performance_schema xtrabackup_binary xtrabackup_checkpoints
hellodb mysql test xtrabackup_binlog_info xtrabackup_logfile
[root@www 2013-09-12_11-03-04]#
xtrabackup_checkpoints :備份類型、備份狀態(tài)和LSN(日志序列號)范圍信息;
xtrabackup_binlog_info :mysql服務(wù)器當(dāng)前正在使用的二進(jìn)制日志文件及至備份這一刻為止二進(jìn)制日志事件的位置.
xtrabackup_logfile :非文本文件,xtrabackup自己的日志文件
xtrabackup_binlog_pos_innodb :二進(jìn)制日志文件及用于InnoDB或XtraDB表的二進(jìn)制日志文件的當(dāng)前position.
backup-my.cnf :備份時數(shù)據(jù)文件中關(guān)于mysqld的配置
MYSQL必讀4.5回到mysql服務(wù)器端對數(shù)據(jù)進(jìn)行更新操作
MYSQL必讀4.6增量備份
MYSQL必讀4.7第二次增量
MYSQL必讀先去修改數(shù)據(jù)
MYSQL必讀4.8最后一次對數(shù)據(jù)更改但是沒做增量備份
MYSQL必讀4.9把二進(jìn)制日志文件備份出來,(因?yàn)樽詈笠淮涡薷?沒做增量備份,要依賴二進(jìn)制日志做時間點(diǎn)恢復(fù))
MYSQL必讀4.10模擬數(shù)據(jù)庫崩潰
MYSQL必讀恢復(fù)前準(zhǔn)備
MYSQL必讀4.11對完全備份做數(shù)據(jù)同步
MYSQL必讀4.12對第一次增量做數(shù)據(jù)同步
MYSQL必讀4.13對第二次增量做數(shù)據(jù)同步
MYSQL必讀注:
MYSQL必讀對于xtrabackup來講,它是基于事務(wù)日志和數(shù)據(jù)文件備份的,備份的數(shù)據(jù)中可能會包含尚未提交的事務(wù)或已經(jīng)提交但尚未同步至數(shù)據(jù)庫文件中的事務(wù),還應(yīng)該對其做預(yù)處理,把已提交的事務(wù)同步到數(shù)據(jù)文件,未提交的事務(wù)要回滾.因此其備份的數(shù)據(jù)庫,不能立即拿來恢復(fù).
MYSQL必讀預(yù)處理的過程:
MYSQL必讀首先對完全備份文件只把已提交的事務(wù)同步至數(shù)據(jù)文件,要注意的是有增量的時候,不能對事務(wù)做數(shù)據(jù)回滾,不然你的增量備份就沒有效果了.
MYSQL必讀然后把第一次的增量備份合并到完全備份文件內(nèi),
MYSQL必讀以此類推,把后幾次的增量都合并到前一次合并之后的文件中,這樣的話,我們只要拿著完全備份+二進(jìn)制日志,就可以做時間點(diǎn)恢復(fù).
MYSQL必讀4.14數(shù)據(jù)恢復(fù)
MYSQL必讀4.15檢測:
MYSQL必讀檢測結(jié)果數(shù)據(jù)正常.
MYSQL必讀本文出自 “遺失ぜ的ァ美好~” 博客
轉(zhuǎn)載請注明本頁網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/2071.html