欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

mysql備份與恢復(fù)詳解

 更新時(shí)間:2013年06月14日 09:12:27   作者:  
本篇文章是對(duì)mysql的備份與恢復(fù)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下

MYSQL的備份有多少種,請(qǐng)簡(jiǎn)要的描述:
數(shù)據(jù)庫(kù)分邏輯備份\物理備份
物理備份又分冷備和熱備

A.直接拷貝數(shù)據(jù)文件到安全地方進(jìn)行保存
B.使用MYSQLHOSTCOPY備分?jǐn)?shù)據(jù)
C.使用MYSQLDUMP備份數(shù)據(jù)
D.使用MYSQL的同步復(fù)制,實(shí)現(xiàn)數(shù)據(jù)實(shí)時(shí)數(shù)據(jù)同步備份

常用的邏輯備份主要就是兩種:一種是將數(shù)據(jù)生成為可以完全重現(xiàn)當(dāng)前數(shù)據(jù)庫(kù)中的數(shù)據(jù)的insert語(yǔ)句,另一種是將數(shù)據(jù)通過(guò)邏輯備份軟件,將數(shù)據(jù)庫(kù)表的數(shù)據(jù)以特定分隔符進(jìn)行分割后記錄在文本中。

對(duì)于第一種生成insert語(yǔ)句來(lái)說(shuō)我們可以直接使用mysql自帶的工具mysqldump來(lái)完成。這種方式不好之處在于可能導(dǎo)致數(shù)據(jù)的不一致,或是不完整。解決辦法:一個(gè)是通過(guò)在數(shù)據(jù)庫(kù)系統(tǒng)中加入寫入鎖,只提供數(shù)據(jù)庫(kù)的查詢服務(wù);第二種是對(duì)于支持事務(wù)的存儲(chǔ)引擎來(lái)說(shuō),INNODB BDB可以通過(guò)將整個(gè)備份過(guò)程控制在一個(gè)事務(wù)中,來(lái)達(dá)到備份數(shù)據(jù)的一致性和完整性;并且可以不用影響到數(shù)據(jù)庫(kù)的正常運(yùn)行。
恢復(fù)方式則是通過(guò)mysql<backup.sql直接運(yùn)行的。
第二種直接生成數(shù)據(jù)格式。占用的空間小,數(shù)據(jù)格式清晰。可是沒有數(shù)據(jù)庫(kù)結(jié)構(gòu)的腳本。不容易控制
實(shí)現(xiàn)方式:通過(guò)select******* to outfile from***命令來(lái)實(shí)現(xiàn)?;謴?fù)方式就是通過(guò),load data infile和mysqlimport命令來(lái)做。

這一過(guò)程相當(dāng)?shù)膹?fù)雜需要實(shí)時(shí)的進(jìn)行恢復(fù)測(cè)試,保證備份數(shù)據(jù)是可用的
數(shù)據(jù)庫(kù)的物理備份,主要的對(duì)象是數(shù)據(jù)庫(kù)的物理數(shù)據(jù)文件,日志文件以及配置文件等。

物理數(shù)據(jù)文件有哪些呢?
一是日志文件6大類:錯(cuò)誤日志error Log、二進(jìn)制日志binary Log、更新日志 update log、查詢?nèi)罩?query log、慢查詢?nèi)罩?slow query log、innodb的redo日志。
二是數(shù)據(jù)文件?對(duì)于myisam來(lái)說(shuō)的話,.frm表結(jié)構(gòu)信息.myd數(shù)據(jù)信息.myi數(shù)據(jù)的索引信息。對(duì)于Innodb來(lái)說(shuō)的話.ibd文件(獨(dú)享表空間)和.ibdata(共享表空間)文件。
三是replication文件?master.info存儲(chǔ)在slave端的數(shù)據(jù)目錄下,存放了slave和master的相關(guān)信息,relay log和 relay log index主要存儲(chǔ)了I/O進(jìn)程從Master端讀取到的binary log信息,然后由slave端的SQL線程從該binary log中讀取解析過(guò)的日志信息,轉(zhuǎn)化成master所能執(zhí)行的query語(yǔ)句。index則是存放binarylog的路徑也就是目錄文件。
四是系統(tǒng)文件?如my.cnf、pid文件是mysqld應(yīng)用程序中的一個(gè)進(jìn)程文件存放自己的進(jìn)程id還有就是socket文件它只有在linux下才有的,可以不通過(guò)tcp/ip網(wǎng)絡(luò)協(xié)議直接連接mysql

如果是做冷備的話,直接復(fù)制所有的數(shù)據(jù)文件和日志文件到備份集存放的地方,

熱備的方法針對(duì)不多的數(shù)據(jù)庫(kù)有不同的方案
對(duì)于myisam存儲(chǔ)引擎來(lái)說(shuō),做法就是給數(shù)據(jù)庫(kù)表加鎖來(lái)阻止寫操作,可以直接復(fù)制物理文件,或者也可以通過(guò)mysql專門的mysqlhotcopy(原理就是現(xiàn)鎖住表,然后進(jìn)行操作)程序來(lái)完成相應(yīng)的備份任務(wù)。
flush tables with read lock
cp -R test /tmp/backup/test
unlock tables;

innodb數(shù)據(jù)庫(kù)引擎來(lái)說(shuō),有一款商業(yè)軟件ibbackup,在線物理備份功能。還有一款開源的工具xtrabackup,
如果在備份過(guò)程中,把INNODB數(shù)據(jù)文件備份完成后,會(huì)鎖住整個(gè)庫(kù),并開始復(fù)制MYISAM等非事務(wù)引擎的數(shù)據(jù)和.frm;所以如果你擁有比較多的MYISAM表,鎖庫(kù)的時(shí)候會(huì)持續(xù)很長(zhǎng)。如果是在主庫(kù)上運(yùn)行,千萬(wàn)注意。

同樣也只能通過(guò)xtrabackup進(jìn)行增量的備份,其實(shí)這一工具只是備份innobd的日志信息。

4 xtrabackup/ibbackup
xtrabackup --backup --datadir=/var/lib/mysql/ --target-
dir=/data/backups/mysql/

xtrabackup --backup  --defaults-file=/etc/my.cnf --target-
dir=/data/backups/mysql/
mysql的備份方式

1.mysqldump
效率比較低,備份和還原的速度都很慢,任何數(shù)據(jù)插入和更新操作都會(huì)被掛起

2.mysqlhotcopy
mysqlhotcopy 是專門針對(duì)myisam 數(shù)據(jù)表進(jìn)行備份,備份的過(guò)程中,任何數(shù)據(jù)插入和更新操作都會(huì)被掛起

3.準(zhǔn)備一臺(tái)從服務(wù)器,專門做備份(master-slave方式)

4.xtrabackup 是 percona 的一個(gè)開源項(xiàng)目,可熱備份innodb ,XtraDB,MyISAM(會(huì)鎖表)
 
Xtrabackup有兩個(gè)主要的工具:xtrabackup、innobackupex
xtrabackup只能備份InnoDB和XtraDB兩種數(shù)據(jù)表,而不能備份MyISAM數(shù)據(jù)表
innobackupex-1.5.1則封裝了xtrabackup,是一個(gè)腳本封裝,所以能同時(shí)備份處理innodb和myisam,但在處理myisam時(shí)需要加一個(gè)讀鎖
Øxtra備份原理
記住開始時(shí)候的LSN號(hào),然后開始拷備文件,同時(shí)運(yùn)
行一個(gè)后臺(tái)進(jìn)程監(jiān)視重做日志,并將變化拷備下來(lái)到
xtrabackup_logfile。

innobackupex可以備份myisam表和frm文件。當(dāng)
xtrabackup結(jié)束后,執(zhí)行flush tables with read lock,避
免數(shù)據(jù)更改,然后刷新所有myisam表到磁盤??絺浣Y(jié)
束后,釋放鎖。

mysqlbinlog也是一個(gè)恢復(fù)工具,是基于時(shí)間點(diǎn)來(lái)處理二進(jìn)制文件的

Ø備份:直接拷備

Ø還原:
ü時(shí)間點(diǎn)還原:mysqlbinlog --stop-date="2005-04-20 9:59:59"
/var/log/mysql/bin.123456 | mysql -u root –pmypwd

mysqlbinlog --start-date="2005-04-20 10:01:00"
/var/log/mysql/bin.123456| mysql -u root –pmypwd

Ø日志點(diǎn)還原:
mysqlbinlog --stop-position="368312" /var/log/mysql/bin.123456 \
| mysql -u root -pmypwd
mysqlbinlog --start-position="368315" /var/log/mysql/bin.123456 \
| mysql -u root -pmypwd \

LVM是 Logical Volume Manager(邏輯卷管理)的簡(jiǎn)寫,它是Linux環(huán)境下對(duì)磁盤分區(qū)進(jìn)行管理的一種機(jī)制。
LSN定義:

日志序號(hào)
日志序號(hào) (LSN) 標(biāo)識(shí)特定日志文件記錄在日志文件中的位置。

LSN 由 DB2® 產(chǎn)品中的許多組件用來(lái)維護(hù)數(shù)據(jù)庫(kù)一致性和完整性。除其他作用外,LSN 還對(duì)于分區(qū)數(shù)據(jù)庫(kù)環(huán)境中的落實(shí)和回滾操作、崩潰和前滾恢復(fù)以及數(shù)據(jù)庫(kù)操作同步起非常重要的作用。

日志文件中 LSN 的增長(zhǎng)率與數(shù)據(jù)庫(kù)活動(dòng)直接相關(guān)聯(lián)。也就是說(shuō),隨著事務(wù)發(fā)生并且條目被寫入日志文件,LSN 會(huì)不斷增大。數(shù)據(jù)庫(kù)中的活動(dòng)越多,LSN 增長(zhǎng)得越快。

日志序號(hào)的上限

在 DB2 V9.5 和較早版本中,日志序號(hào) (LSN) 是 6 字節(jié)數(shù)字。從 FP3 開始,LSN 的范圍在 0x0000 0000 0000(首次創(chuàng)建數(shù)據(jù)庫(kù)時(shí))到 0xFFFF 0000 0000(約 256 太字節(jié))之間。在 FP3 之前,上限為 0xFFFF FFFF FFFF。隨著記錄被添加到日志文件中,LSN 在數(shù)據(jù)庫(kù)生命期不斷增長(zhǎng)。

相關(guān)文章

最新評(píng)論