久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

MySQL 數(shù)據(jù)庫備份種類以及常用備份工具都有哪些

166次閱讀
沒有評論

共計(jì) 3559 個(gè)字符,預(yù)計(jì)需要花費(fèi) 9 分鐘才能閱讀完成。

本篇文章給大家分享的是有關(guān) MySQL 數(shù)據(jù)庫備份種類以及常用備份工具都有哪些,丸趣 TV 小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著丸趣 TV 小編一起來看看吧。

1 數(shù)據(jù)庫備份種類

按照數(shù)據(jù)庫大小備份,有四種類型,分別應(yīng)用于不同場合,下面簡要介紹一下:

1.1 完全備份

這是大多數(shù)人常用的方式,它可以備份整個(gè)數(shù)據(jù)庫,包含用戶表、系統(tǒng)表、索引、視圖和存儲過程等所有數(shù)據(jù)庫對象。但它需要花費(fèi)更多的時(shí)間和空間,所以,一般推薦一周做一次完全備份。

1.2 事務(wù)日志備份

事務(wù)日志是一個(gè)單獨(dú)的文件,它記錄數(shù)據(jù)庫的改變,備份的時(shí)候只需要復(fù)制自上次備份以來對數(shù)據(jù)庫所做的改變,所以只需要很少的時(shí)間。為了使數(shù)據(jù)庫具有魯棒性,推薦每小時(shí)甚至更頻繁的備份事務(wù)日志。

1.3 差異備份

也叫增量備份。它是只備份數(shù)據(jù)庫一部分的另一種方法,它不使用事務(wù)日志,相反,它使用整個(gè)數(shù)據(jù)庫的一種新映象。它比最初的完全備份小,因?yàn)樗话陨洗瓮耆珎浞菀詠硭淖兊臄?shù)據(jù)庫。它的優(yōu)點(diǎn)是存儲和恢復(fù)速度快。推薦每天做一次差異備份。

1.4 文件備份

數(shù)據(jù)庫可以由硬盤上的許多文件構(gòu)成。如果這個(gè)數(shù)據(jù)庫非常大,并且一個(gè)晚上也不能將它備份完,那么可以使用文件備份每晚備份數(shù)據(jù)庫的一部分。由于一般情況下數(shù)據(jù)庫不會大到必須使用多個(gè)文件存儲,所以這種備份不是很常用。

按照數(shù)據(jù)庫的狀態(tài)可分為三種:

1. 冷備份,此時(shí)數(shù)據(jù)庫處于關(guān)閉狀態(tài),能夠較好的保證數(shù)據(jù)庫的完整性。

2. 熱備份,數(shù)據(jù)庫正處于運(yùn)行狀態(tài),這種方法依賴于數(shù)據(jù)庫的 [1] 日志文件進(jìn)行備份。

3. 邏輯備份,使用軟件從數(shù)據(jù)庫中提取數(shù)據(jù)并將結(jié)果寫到一個(gè)文件上。

2 備份工具簡介

mysql 按照備份恢復(fù)方式分為邏輯備份和物理備份。邏輯備份是備份 sql 語句,在恢復(fù)的時(shí)候執(zhí)行備份的 sql 語句實(shí)現(xiàn)數(shù)據(jù)庫數(shù)據(jù)的重現(xiàn),物理備份就是備份數(shù)據(jù)文件了,比較形象點(diǎn)就是 cp 下數(shù)據(jù)文件,但真正備份的時(shí)候自然不是的 cp 這么簡單。

這 2 種備份各有優(yōu)劣,一般來說,物理備份恢復(fù)速度比較快,占用空間比較大,邏輯備份速度比較慢,占用空間比較小。

官方地址:http://dev.mysql.com/doc/refman/5.6/en/backup-and-recovery.html

2.1 mysqldump 工具

Mysqldump 是 mysql 自帶的備份工具,目錄在 bin 目錄下面:/usr/local/mysql/bin/mysqldump,支持基于 innodb 的熱備份。但是由于是邏輯備份,所以速度不是很快,適合備份數(shù)據(jù)比較小的場景。Mysqldump 完全備份 + 二進(jìn)制日志可以實(shí)現(xiàn)基于時(shí)間點(diǎn)的恢復(fù)。

對 myisam 存儲引擎的表,只能使用溫備份,這個(gè)時(shí)候要防止數(shù)據(jù)的寫入,所以先加上讀鎖。這個(gè)時(shí)候也可以進(jìn)入數(shù)據(jù)庫手動加讀鎖,不過這樣比較麻煩,可以在 mysqldump 工具中直接有一個(gè)加鎖的選擇,就是 –lock-all-tables,例如 mysqldump –databases test –lock-all-tables –flush-logs /tmp/backup_test_`date+%F-%H-%M`.sql。

如果是備份單張表,直接在庫名字 test 后面加上表名字即可。

對于 innodb 存儲引擎表,可以熱備,不必對數(shù)據(jù)庫進(jìn)行加鎖的操作,加一個(gè)選項(xiàng)可以進(jìn)行熱備份,–single-transaction,例如:mysqldump –databases test –single-transaction –flush-logs–master-data=2 /tmp/backup_test_`date +%F-%H-%M`.sql。

PS:注意點(diǎn),恢復(fù)的時(shí)候記得關(guān)閉二進(jìn)制日志:

mysql  set sql_log_bin=0;

因?yàn)檫@是基于邏輯備份方式,所以執(zhí)行 sql 會插入數(shù)據(jù),會記錄到二進(jìn)制日志里面去,因?yàn)檫@事恢復(fù),所以插入的二進(jìn)制日志基本沒有啥意思,可以關(guān)閉掉,縮短恢復(fù)時(shí)間。

2.2 基于 LVM 快照備份

在物理備份中,有基于文件系統(tǒng)的物理備份(LVM 的快照),也可以直接用 tar 之類的命令對整個(gè)數(shù)據(jù)庫目錄進(jìn)行打包備份,但是這些只能進(jìn)行泠備份,不同的存儲引擎?zhèn)浞莸囊膊灰粯樱琺yisam 自動備份到表級別,而 innodb 不開啟獨(dú)立表空間的話只能備份整個(gè)數(shù)據(jù)庫。

下面就介紹下使用 LVM 的快照功能進(jìn)行備份為了安全,首先在數(shù)據(jù)庫上施加讀鎖

mysql FLUSH TABLES WITH READ LOCK

刷新一下二進(jìn)制日志,便于做時(shí)間點(diǎn)恢復(fù)

mysql FLUSH LOGS

然后創(chuàng)建快照卷

lvcreate  ndash;L 1G  ndash;s  ndash;n data-snap  ndash;p  ndash;r/dev/myvg/mydata

*** 進(jìn)入數(shù)據(jù)庫釋放讀鎖

UNLOCK TABLES

掛載快照卷進(jìn)行備份

mount  ndash;r /dev/myvg/data-snap /mnt/snap

然后對 /mnt/snap 下的文件進(jìn)行打包備份

還原的時(shí)候,關(guān)閉 mysqld,然后備份二進(jìn)制日志后將原來備份的文件還原進(jìn)去,然后通過二進(jìn)制日志還原到出錯(cuò)的時(shí)間點(diǎn)(通過二進(jìn)制還原時(shí)間點(diǎn)的時(shí)候不要忘了暫時(shí)關(guān)閉二進(jìn)制日志)

在 2010 年到 2012 年之間,mysql 數(shù)據(jù)庫部署在亞馬遜的云環(huán)境中,他們提供了 LVM 快照,蠻方便快捷的,使用 lvm 快照,在亞馬遜的萬兆網(wǎng)絡(luò)下,恢復(fù)起來也迅速無比。

2.3 tar 包備份

0,準(zhǔn)備從庫 *** 次數(shù)據(jù)備份,臨時(shí)鎖所有表,開啟窗口 1

mysql  flush tables with read lock; Query OK, 0 rows affected (0.00 sec) mysql  show master status; +++++ | File | Position | Binlog_Do_DB |Binlog_Ignore_DB | | mysql-bin.000003 | 194554 | | | 1 row in set (0.00 sec)

PS:這個(gè)窗口不能 exit,要一直保持知道 tar 完包為止。

– 重新開一個(gè) shell 窗口,去數(shù)據(jù)文件目錄 tar 包

開啟窗口 2

[root@myfstv_21_11 data]# tar -zcvf mysqla1.tar.gz mysqla tar -zcvf mysqla1.tar.gz mysqla  壓縮完畢 

切換到窗口 1,執(zhí)行解鎖命令

mysql  unlocktables; Query OK, 0 rows affected (0.00 sec) mysql  copy tar 包到另外一個(gè) mysql 庫服務(wù)器上面,覆蓋 data 目錄,然后重啟 mysql 數(shù)據(jù)庫服務(wù)。

2.4 percona 提供的 xtrabackup 工具

支持 innodb 的物理熱備份,支持完全備份,增量備份,而且速度非常快,支持 innodb 存儲引起的數(shù)據(jù)在不同數(shù)據(jù)庫之間遷移,支持復(fù)制模式下的從機(jī)備份恢復(fù)備份恢復(fù),為了讓 xtrabackup 支持更多的功能擴(kuò)展,可以設(shè)立獨(dú)立表空間,打開 innodb_file_per_table 功能,啟用之后可以支持單獨(dú)的表備份。

支持在線熱備與恢復(fù)

大數(shù)據(jù)量的時(shí)候,備份恢復(fù)都比較快。

xtrabackup 可以實(shí)現(xiàn)完全備份,增量備份,以及部分備份。

xtrabackup 備份原理

xtraBackup 基于 InnoDB 的 crash-recovery 功能。它會復(fù)制 innodb 的 data file,由于不鎖表,復(fù)制出來的數(shù)據(jù)是不一致的,在恢復(fù)的時(shí)候使用 crash-recovery,使得數(shù)據(jù)恢復(fù)一致。

InnoDB 維護(hù)了一個(gè) redo log,又稱為 transaction log,事務(wù)日志,它包含了 innodb 數(shù)據(jù)的所有改動情況。當(dāng) InnoDB 啟動的時(shí)候,它會先去檢查 data file 和 transaction log,并且會做二步操作:

xtraBackup 在備份的時(shí)候,一頁一頁地復(fù)制 innodb 的數(shù)據(jù),而且不鎖定表,與此同時(shí),XtraBackup 還有另外一個(gè)線程監(jiān)視著 transactions log,一旦 log 發(fā)生變化,就把變化過的 log pages 復(fù)制走。為什么要急著復(fù)制走呢?因?yàn)?transactions log 文件大小有限,寫滿之后,就會從頭再開始寫,所以新數(shù)據(jù)可能會覆蓋到舊的數(shù)據(jù)。

在 prepare 過程中,XtraBackup 使用復(fù)制到的 transactionslog 對備份出來的 innodb data file 進(jìn)行 crash recovery。

以上就是 MySQL 數(shù)據(jù)庫備份種類以及常用備份工具都有哪些,丸趣 TV 小編相信有部分知識點(diǎn)可能是我們?nèi)粘9ぷ鲿姷交蛴玫降摹OM隳芡ㄟ^這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注丸趣 TV 行業(yè)資訊頻道。

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-07-19發(fā)表,共計(jì)3559字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 墨脱县| 山阴县| 长汀县| 怀集县| 漳浦县| 廉江市| 廊坊市| 安西县| 喜德县| 长葛市| 瓦房店市| 汽车| 广丰县| 南开区| 安溪县| 齐齐哈尔市| 布拖县| 岢岚县| 濮阳县| 敦煌市| 石家庄市| 徐闻县| 扶沟县| 凭祥市| 德钦县| 区。| 承德县| 朝阳市| 抚顺市| 崇明县| 科尔| 普兰县| 公主岭市| 娄烦县| 嵩明县| 永丰县| 库伦旗| 蓝山县| 凤城市| 遂川县| 工布江达县|