提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔
目錄
前言
一、概述
二、數(shù)據(jù)備份的重要性
三、造成數(shù)據(jù)丟失的原因
四、備份類型
4.1物理與邏輯角度
4.2數(shù)據(jù)庫備份策略角度
五、常見的備份方法
5.1 物理備份
5.2 使用專用備份工具
5.3 通過啟用二進(jìn)制日志增量備份
5.4 第三方工具備份
六、備份
6.1 完整備份
6.1.1 打包數(shù)據(jù)庫文件備份
?6.1.2 備份工具備份
6.2 增量備份
MySQL企業(yè)備份案例
?總結(jié)
前言
? ? ? ?數(shù)據(jù)庫備份是指將數(shù)據(jù)庫的數(shù)據(jù)和結(jié)構(gòu)復(fù)制到其他存儲介質(zhì)或位置的過程。數(shù)據(jù)庫備份是數(shù)據(jù)庫管理的重要任務(wù),它可以提供數(shù)據(jù)的保護(hù)和恢復(fù)功能,并在發(fā)生數(shù)據(jù)丟失、系統(tǒng)故障、災(zāi)害等情況下可以迅速還原數(shù)據(jù)庫。
提示:以下是本篇文章正文內(nèi)容,下面案例可供參考
一、概述
? ? ? ? ?數(shù)據(jù)庫備份是指將數(shù)據(jù)庫中的數(shù)據(jù)、表格、視圖、存儲過程、觸發(fā)器等信息備份到另一個地方,以便在數(shù)據(jù)庫丟失或損壞時進(jìn)行恢復(fù)。數(shù)據(jù)庫備份是數(shù)據(jù)庫管理中必不可少的一項工作,通過備份可以保護(hù)數(shù)據(jù)庫中的數(shù)據(jù)和業(yè)務(wù)。
二、數(shù)據(jù)備份的重要性
備份的主要目的是災(zāi)難恢復(fù),備份還可以測試應(yīng)用,回滾數(shù)據(jù)修改,查詢歷史數(shù)據(jù),審計等。
三、造成數(shù)據(jù)丟失的原因
? ? 程序錯誤
?? ?人為錯誤
?? ?運算失敗
?? ?磁盤故障
?? ?災(zāi)難(如火災(zāi)、地震)和盜竊
四、備份類型
4.1物理與邏輯角度
物理備份 | 對數(shù)據(jù)庫操作系統(tǒng)的物理文件(如數(shù)據(jù)文件、日志文件等)的備份 | |
?冷備份 | ?是在關(guān)閉數(shù)據(jù)庫的時候進(jìn)行的 | |
?熱備份 | ?數(shù)據(jù)庫處于運行狀態(tài),這種備份方法依賴于數(shù)據(jù)庫的日志文件 |
?邏輯備份 | 對數(shù)據(jù)庫邏輯組件(如表等數(shù)據(jù)庫對象)的備份,表時為邏輯數(shù)據(jù)庫結(jié)構(gòu)(create database、 create table等語句)和內(nèi)容(insert語句或分割文本文件)的信息 |
4.2數(shù)據(jù)庫備份策略角度
?完整備份 |
?? ??? ?完整備份指的是備份整個數(shù)據(jù)庫的所有信息,包括數(shù)據(jù)庫文件中所有的數(shù)據(jù)、表、視圖、存儲過程、觸發(fā)器等。一般來說,完整備份是備份最全面、可靠的方式,但備份文件體積較大,備份時間也相對較長 |
?增量備份 | ?增量備份指的是在完整備份的基礎(chǔ)上,每隔一定時間備份新增的數(shù)據(jù)或修改的數(shù)據(jù)。這種備份方式可以節(jié)省備份時間和備份文件的空間,但需要配合特定軟件或命令進(jìn)行 |
五、常見的備份方法
5.1 物理備份
? ? ? ?物理冷備份時需要在數(shù)據(jù)庫處于關(guān)閉狀態(tài)下,能夠較好的保證數(shù)據(jù)庫的完整性。物理冷備份以用于非核心業(yè)務(wù),這類業(yè)務(wù)都允許中斷,物理冷備份的特點就是速度快,恢復(fù)時也是最為簡單的,通過直接打包數(shù)據(jù)庫文件夾(/usr/local/mysql/data)來實現(xiàn)備份。
5.2 使用專用備份工具
? ? ? ? mysqldump
?? ??? ?mysqlhotcopy
5.3 通過啟用二進(jìn)制日志增量備份
? ? ? ? ?MySQL支持增量備份,進(jìn)行增量備份時必須啟用二進(jìn)制日志。二進(jìn)制日志文件為用戶提供復(fù)制。對執(zhí)行備份點后進(jìn)行的數(shù)據(jù)庫更改所需的信息進(jìn)行備份。如果進(jìn)行增量備份(包含上次完全備份或增量備份以來發(fā)生的數(shù)據(jù)修改),需要刷新二進(jìn)制日志。
5.4 第三方工具備份
? ? ? ? ?Percona XtraBackup是一個免費的MySQL熱備份軟件,支持在線備份innodb和XtraDB,也可以支持MySQL表備份。
?? ?注意事項
?? ??? ?定期備份,指定備份計劃,嚴(yán)格遵守
?? ??? ?除了完全備份之外,開啟binlog日志功能很重要
?? ??? ?使用統(tǒng)一的、容易理解的備份名稱,推薦使用庫名或者表名加上時間的命名規(guī)則
六、備份
6.1 完整備份
6.1.1 打包數(shù)據(jù)庫文件備份
? ? 位置
?? ??? ?源碼包的位置/usr/local/mysql/data/
?? ??? ?rpm包的位置/var/lib/mysql
?? ?備份
?? ??? ?在數(shù)據(jù)庫中創(chuàng)建數(shù)據(jù)表,并寫入數(shù)據(jù)
?? ??? ?停止數(shù)據(jù)庫服務(wù)
?? ??? ?創(chuàng)建備份目錄
?? ??? ?按照特定格式對數(shù)據(jù)庫目錄進(jìn)行備份
?? ??? ??? ?tar ?czf ?mysql_all-$(date ?+%F).tar.gz ?/var/lib/mysql/*
?? ?還原
?? ??? ?創(chuàng)建還原目錄
?? ??? ?模擬元數(shù)據(jù)丟失
?? ??? ?將解壓之后的數(shù)據(jù)還原至原目錄
?? ??? ?登錄查看
創(chuàng)建數(shù)據(jù)表并寫入數(shù)據(jù)?
?停止數(shù)據(jù)庫服務(wù)
對數(shù)據(jù)庫目錄進(jìn)行壓縮歸檔備份
?還原:創(chuàng)建目錄
?移動到/bak?
?將包解壓到/restore
?還原到原目錄
?啟動服務(wù),查看
?6.1.2 備份工具備份
?1. 備份
?? ??? ?工具
?? ??? ??? ?mysqldump
?? ??? ?對單個庫進(jìn)行完全備份
?? ??? ??? ?mysqldump -u用戶名 -p[密碼] [選項] --databases [數(shù)據(jù)庫名] > /備份路徑/備份文件名
?? ??? ?對多個庫進(jìn)行完全備份
?? ??? ??? ?mysqldump -u用戶名 -p[密碼] [選項] --databases 庫名1 [庫名2]…… > /備份路徑/備份文件名
?? ??? ?對所有庫進(jìn)行完全備份
?? ??? ??? ?mysqldump -u用戶名 -p[密碼] [選項] --opt --all-databases > /備份路徑/備份文件名
?? ??? ?對表進(jìn)行完全備份
?? ??? ??? ?mysqldump -u用戶名 -p[密碼] [選項] 數(shù)據(jù)庫名 表名 > /備份路徑/備份文件名
?? ??? ?對表的結(jié)構(gòu)進(jìn)行備份
?? ??? ??? ?mysqldump -u用戶名 -p[密碼] -d 數(shù)據(jù)庫名 表名 > /備份路徑/備份文件名
? ?2. 還原
?? ??? ?工具
?? ??? ??? ?source
?? ??? ??? ??? ?登錄mysql 數(shù)據(jù)庫執(zhí)行source ?備份sql腳本路徑
?? ??? ??? ?mysql
?? ??? ??? ??? ?mysql -u用戶名 -p[密碼] < 庫備份腳本的路徑
?? ??? ??? ??? ?mysql -u用戶名 -p[密碼] 庫名 < 表備份腳本的路徑
?進(jìn)入數(shù)據(jù)庫,刪除庫test
?還原
?進(jìn)入數(shù)據(jù)庫,刪除表massage
?還原
6.2 增量備份
? ? 使用完全備份時,備份與恢復(fù)的時間過長
?? ?增量備份就是備份自上一次備份之后增加的或改變的文件內(nèi)容
?? ?特點 :
?? ??? ?沒有重復(fù)數(shù)據(jù),備份量不大,時間短
?? ??? ?恢復(fù)麻煩,需要上次完全備份及完全備份之后所有的增量備份才能恢復(fù),而且要對所有增量備份進(jìn)行逐個反推恢復(fù)
?? ??? ?MySQL沒有提供直接的增量備份辦法,可以通過MySQL提供的二進(jìn)制日志(binary logs(binlog))間接實現(xiàn)增量備份
?? ?MySQL二進(jìn)制日志對備份的意義
?? ??? ?二進(jìn)制日志保存了所有更新或者可能更新數(shù)據(jù)庫的操作。
?? ??? ?二進(jìn)制日志在啟動MySQL服務(wù)器后開始記錄,并在文件達(dá)到max_binlog_size所設(shè)置的大小或者接收到flush logs命令后重新創(chuàng)建新的日志文件。
?? ?開啟二進(jìn)制日志備份功能
?? ??? ?MySQL的配置文件的[mysqld]項中加入 log-bin=文件存放路徑/文件前綴,如 log-bin=mysql-bin,然后重啟mysqld服務(wù)。默認(rèn)此配置存在。
?? ??? ?使用mysqld --log-bin=文件存放路徑/文件前綴 重新啟動mysqld服務(wù)每周選擇服務(wù)器負(fù)載較輕的時間段,或者用戶訪問較少的時間段進(jìn)行備份
?? ?增量恢復(fù) :
?? ??? ?應(yīng)用場景
?? ??? ??? ?人為的SQL語句破壞了數(shù)據(jù)庫
?? ??? ??? ?在進(jìn)行下一次全備之前發(fā)生系統(tǒng)故障導(dǎo)致數(shù)據(jù)庫丟失
?? ??? ??? ?在主從架構(gòu)中,主庫數(shù)據(jù)發(fā)生了故障,保證從庫數(shù)據(jù)一致性
?? ??? ?方法
?? ??? ??? ?一般恢復(fù)
?? ??? ??? ??? ?備份的二進(jìn)制日志內(nèi)容全部恢復(fù)
?? ??? ??? ??? ?格式: mysqldbinlog [--no-defaults] 增量備份文件 | mysql -u用戶名 -p密碼
?? ??? ??? ?基于時間點的恢復(fù)
?? ??? ??? ??? ?便于跳過某個發(fā)生錯誤的時間點實現(xiàn)數(shù)據(jù)恢復(fù)
?? ??? ??? ??? ?格式:從日志開頭截止到某個時間點的恢復(fù):
?? ??? ??? ??? ?mysqlbinlog [--no-defaults] --stop-datetime=’年-月-日 小時:分鐘:秒‘ 二進(jìn)制日志 | mysql -u用戶名 -p密碼
?? ??? ??? ?從某個時間點到日志結(jié)尾的恢復(fù)
?? ??? ??? ??? ?mysqlbinlog [--no-defaults] --start-datetime=’年-月-日 小時:分鐘:秒‘ 二進(jìn)制日志 | mysql -u用戶名 -p密碼
?? ??? ??? ?從某個時間點到某個時間點的恢復(fù)
?? ??? ??? ??? ?mysqlbinlog [--no-defaults] --start-datetime=’年-月-日 小時:分鐘:秒‘ --stop-datetime=’年-月-日 小時:分鐘:秒‘ 二進(jìn)制日志 | mysql -u用戶名 -p密碼
?? ??? ??? ?基于位置的恢復(fù)
?? ??? ??? ??? ?可能在同一時間點既有錯誤的操作也有正確的操作,基于位置進(jìn)行恢復(fù)更加準(zhǔn)確
?? ??? ??? ??? ?mysqlbinlog --stop-position=‘操作 id‘ 二進(jìn)制日志 | mysql -u用戶名 -p密碼
?? ??? ??? ??? ?mysqlbinlog --start-position=‘操作 id‘ 二進(jìn)制日志 | mysql -u用戶名 -p密碼
?一般恢復(fù) :
?第一次完全備份??第一次日志回滾
?查看表的內(nèi)容
新增數(shù)據(jù)
?刪除表
恢復(fù)第一次表的備份
??查看
?恢復(fù)增量
MySQL企業(yè)備份案例
需求描述:
北京移電通信公司的用戶信息數(shù)據(jù)庫為client,用戶資費數(shù)據(jù)表為user_info
請為該公司每周進(jìn)行完全備份
每天為該公司進(jìn)行增量備份
· 新增加的用戶信息如表所示
安裝mysql(yum?方式)
添加數(shù)據(jù)庫、表,錄入數(shù)據(jù)
?先進(jìn)行一次完全備份
?進(jìn)行一次日志回滾(生成新的二進(jìn)制日志)
?繼續(xù)錄入新的數(shù)據(jù)
進(jìn)行增量備份
模擬誤操作刪除user_info表
?恢復(fù)完全備份
?恢復(fù)增量備份
?基于時間點的增量備份恢復(fù)
?
?基于位置的恢復(fù)
文章來源:http://www.zghlxwxcb.cn/news/detail-614940.html
?總結(jié)
? ? ? ?數(shù)據(jù)庫備份的重要性在于保護(hù)數(shù)據(jù)免遭丟失、誤刪、病毒攻擊、硬件故障、自然災(zāi)害等風(fēng)險。所以,我們在以后的生產(chǎn)、生活中要及時做數(shù)據(jù)備份,防止造成數(shù)據(jù)的丟失。文章來源地址http://www.zghlxwxcb.cn/news/detail-614940.html
到了這里,關(guān)于數(shù)據(jù)庫—數(shù)據(jù)庫備份(三十四)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!