欧美日韩精品在线,国内精品久久久久久久久,一级毛片恃级毛片直播,清纯唯美亚洲综合欧美色

利用Xtrabackup工具備份及恢復(fù)(MySQL DBA的必備工具)_MySQL教程

編輯Tag賺U幣
教程Tag:Xtrabackup添加

推薦:linux下mysql提示mysql deamon failed to start錯(cuò)誤的解決方法
網(wǎng)站突然連接不上數(shù)據(jù)庫,于是朋友直接重啟了一下服務(wù)器。進(jìn)到cli模式下,執(zhí)行 service myqsld start 發(fā)現(xiàn)還是提示mysql deamon failed to start錯(cuò)誤信息

Xtrabackup------MySQL DBA的必備工具

注意:

1)文檔參照http://www.percona.com/docs/wiki/percona-xtrabackup:start

2)mysql要使用5.1.50版本或以上。

一、Xtrabackup簡介及安裝

1、Xtrabackup 是percona的一個(gè)開源項(xiàng)目,可以熱備份innodb ,XtraDB,和MyISAM(會(huì)鎖表),可以看做是InnoDB Hotbackup的免費(fèi)替代品。

Percona Support for MySQL

參考:http://www.percona.com/mysql-support/

先看看如何安裝Xtrabackup,最簡單的安裝方式是使用RPM包,不過想使用源代碼方式安裝的話,其安裝方式有點(diǎn)古怪,因?yàn)樗捎玫脑贛ySQL源代碼上打補(bǔ)丁構(gòu)建的方式安裝的。

2、安裝:

wget http://www.percona.com/downloads/XtraBackup/XtraBackup-1.4/Linux/binary/i686/

tar zxf xtrabackup-1.4.tar.gz

cd xtrabackup-1.4

./configure

make

進(jìn)行到這里時(shí),千萬別make install,那樣就會(huì)接著安裝MySQL了,正確方法是:

cd innobase/xtrabackup/

make

make install

安裝參照:http://www.percona.com/docs/wiki/percona-xtrabackup:installation:from-source

3、如此一來,就會(huì)在/usr/bin目錄里安裝上兩個(gè)有用的工具:xtrabackup、innobackupex

1)xtrabackup 只能備份InnoDB和XtraDB兩種數(shù)據(jù)表,支持在線熱備份,可以在不加鎖的情況下備份Innodb數(shù)據(jù)表,不過此工具不能操作Myisam引擎表

2)innobackupex 是一個(gè)腳本封裝,封裝了xtrabackup,能同時(shí)處理Innodb和Myisam,但在處理Myisam時(shí)需要加一個(gè)讀鎖。

按如上的介紹,由于操作Myisam時(shí)需要加讀鎖,這會(huì)堵塞線上服務(wù)的寫操作,而Innodb沒有這樣的限制,所以數(shù)據(jù)庫中Innodb表類型所占的比例越大,則越有利。實(shí)際應(yīng)用中一般是直接使用innobackupex方法,它主要有三種操作方式,按手冊(cè)中的介紹:

Usage:

innobackup [--sleep=MS] [--compress[=LEVEL]] [--include=REGEXP] [--user=NAME]

[--password=WORD] [--port=PORT] [--socket=SOCKET] [--no-timestamp]

[--ibbackup=IBBACKUP-BINARY] [--slave-info] [--stream=tar]

[--defaults-file=MY.CNF]

[--databases=LIST] [--remote-host=HOSTNAME] BACKUP-ROOT-DIR

innobackup --apply-log [--use-memory=MB] [--uncompress] [--defaults-file=MY.CNF]

[--ibbackup=IBBACKUP-BINARY] BACKUP-DIR

innobackup --copy-back [--defaults-file=MY.CNF] BACKUP-DIR

——————————————————————————————————

第一個(gè)命令行是熱備份mysql數(shù)據(jù)庫。

帶有--apply-log選項(xiàng)的命令是準(zhǔn)備在一個(gè)備份上啟動(dòng)mysql服務(wù)。

帶有--copy-back選項(xiàng)的命令從備份目錄拷貝數(shù)據(jù),索引,日志到my.cnf文件里規(guī)定的初始位置。

Xtrabackup還可以用來moving InnoDB tables between servers,更多的內(nèi)容可以參考官方文檔及例子。

參考鏈接:

1.官方文檔:http://www.percona.com/docs/wiki/percona-xtrabackup:xtrabackup_manual

2.Xtrabackup online backup for InnoDB/XTraDB(pdf):

http://www.percona.com/ppc2009/PPC2009_xtrabackup.pdf

二、innobackupex 和 xtrabackup備份詳解

注:innobackupex會(huì)根據(jù)/et/my.cnf來確定MySQL的數(shù)據(jù)位置。

1.普通備份:

innobackupex [--defaults-file=/etc/my.cnf] --user=root [--host=192.168.1.52] [--password=xxx] [--port=3306] /data/back_data/ 2>/data/back_data/1.log

備份的目錄是/data/back_data/,這里的2>/data/back_data/1.log,是將備份過程中的輸出信息重定向到1.log

innobackupex-1.5.1 –slave-info …..

–slave-info會(huì)記錄復(fù)制主日志的 復(fù)制點(diǎn),便于重新做復(fù)制用。(用在備份從機(jī)器用)

備份后的文件:

xtrabackup_binlog_info — 存放binlog的信息。(binlog需要另外拷貝備份,如果需要binlog的話)

xtrabackup_checkpoints — 存放備份的起始位置和結(jié)束位置。

恢復(fù):

首先停掉數(shù)據(jù)庫,然后刪除數(shù)據(jù)庫目錄下的所有數(shù)據(jù)庫文件.

cd /data/mysql_data

rm -rf * # 刪除數(shù)據(jù)目錄里的所有文件

innobackupex-1.5.1 --user=root --apply-log /data/back_data/2010-10-26_16-09-37 # 應(yīng)用日志

innobackupex-1.5.1 --user=root --copy-back /data/back_data/2010-10-26_16-09-37

默認(rèn)innobackupex-1.5.1會(huì)將二進(jìn)制日志信息存放在文件xtrabackup_binlog_info中發(fā)(方便做Slave)。

cd /data

chown -R mysql:mysql mysql_data/

重啟mysql服務(wù)

2.打包(Tar)備份:

innobackupex-1.5.1 --user=root [--password=xxx] --stream=tar /data/back_data/2/ 2>/data/back_data/2.log 1>/data/back_data/2.tar

還原:

#cd /data/back_data/2/

#tar ixvf 2.tar

# ls

2.tar backup-my.cnf ibdata1 ibdata2 mablevi mysql xtrabackup_binlog_info xtrabackup_checkpoints xtrabackup_logfile

準(zhǔn)備還原

# innobackupex-1.5.1 --user=xxx [--password=xxx]--apply-log /data/back_data/

……

innobackupex: completed OK!

刪除數(shù)據(jù)目錄里的所有文件

rm -rf /data/mysql_data/*

拷貝:

# innobackupex-1.5.1 --user=xxx [--password=xxx] --copy-back /data/back_data/

……

innobackupex: completed OK!

cd /data

chown -R mysql:mysql mysql_data/

重啟mysql服務(wù)

3. 壓縮(tar gzip)備份

innobackupex-1.5.1 --user=root [--password=xxx] --stream=tar

/data/back_data/2/ 2>/data/back_data/2.log | gzip > /data/back_data/2.tar.gz

這里使用了管道|將innobackupex-1.5.1作為gzip的標(biāo)準(zhǔn)輸入。恢復(fù),只需要使用tar -izxvf 解壓對(duì)應(yīng)的文件后,操作完全同普通備份。

還原:

使用tar –izxvf 解壓對(duì)應(yīng)的文件后,操作完全同普通備份。

#cd /data/back_data/2/

#tar ixvf 2.tar

# ls

backup-my.cnf ibdata1 ibdata2 mablevi mysql xtrabackup_binlog_info xtrabackup_checkpoints xtrabackup_logfile

準(zhǔn)備還原:

# innobackupex-1.5.1 --user=xxx [--password=xxx] --apply-log /data/back_data/2/

……

innobackupex: completed OK!

刪除數(shù)據(jù)目錄里的所有文件

rm -rf /data/mysql_data/*

# innobackupex-1.5.1 --user=xxx [--password=xxx] --copy-back /data/back_data/2/

cd /data

chown -R mysql:mysql mysql_data/

重啟mysql服務(wù)

———————————————————————————————————————

xtrabackup 備份和恢復(fù)

備份:

xtrabackup --defaults-file=/etc/my.cnf --backup --target-dir=/data/back_data/

恢復(fù):

需要執(zhí)行兩次xtrabackup –prepare

xtrabackup --defaults-file=/etc/my.cnf --prepare --target-dir=/data/back_data/

xtrabackup --defaults-file=/etc/my.cnf --prepare --target-dir=/data/back_data/

注意,xtrabackup只備份數(shù)據(jù)文件,并不備份數(shù)據(jù)表結(jié)構(gòu)(.frm),所以使用xtrabackup恢復(fù)的時(shí)候,你必須有對(duì)應(yīng)表結(jié)構(gòu)文件(.frm)。

增量備份:

1. 全量備份

xtrabackup --defaults-file=/etc/my.cnf --backup --target-dir=/data/back_data/

2. 增量備份

xtrabackup --defaults-file=/etc/my.cnf --backup --target-dir=/data/back_data_inc/ --incremental-

basedir=/data/back_data/

在增量備份的目錄下,數(shù)據(jù)文件都是以.delta結(jié)尾的。增量備份只備份上一次全量備份后被修改過的page,所以增量備份只暫用較少的空間。增量備份可以在增量備份的基礎(chǔ)上增量。

增量備份恢復(fù):

我們需要分別對(duì)全量、增量備份各做一次prepare操作。

xtrabackup --defaults-file=/etc/my.cnf --prepare --target-dir=/data/back_data/2010-10-26_16-09-37

xtrabackup --prepare --target-dir=/data/back_data/2010-10-26_16-09-37--incremental-

dir=/data/back_data_inc

xtrabackup --prepare --target-dir=/data/back_data/ #這一步不是必須的

這樣,/data/back_data/下的數(shù)據(jù)文件就可以直接放到你的MySQL數(shù)據(jù)目錄下,恢復(fù)數(shù)據(jù)了。

再次提醒,xtrabackup只備份InnoDB數(shù)據(jù)文件,表結(jié)構(gòu)是不備份的,所以恢復(fù)的時(shí)候,你必須有對(duì)應(yīng)表結(jié)構(gòu)文件(.frm)。

rm -rf /data/mysql_data/ib*

cp -i /data/back_data/2010-10-26_16-09-37/ib* /data/mysql_data/

cd /data

chown -R mysql:mysql mysql_data/

2.innobackupex 與 xtrabackup 相結(jié)合

首先,innobackupex全備份:

innobackupex --user=root /data/back_data/ 2>/data/back_data/1.log #會(huì)生成一個(gè)時(shí)間文件夾,這里假如是2010-10-29_15-57-44

然后,xtrabackup 做增量備份:

xtrabackup --defaults-file=/etc/my.cnf --backup --target-dir=/data/back_data_inc/4 --incremental-basedir=/data/back_data/2010-10-29_15-57-44

恢復(fù):

首先停掉數(shù)據(jù)庫,備份二進(jìn)制日志(如果有的話),然后刪除數(shù)據(jù)庫目錄下的所有數(shù)據(jù)庫文件.

cd /data/mysql_data

rm -rf * # 刪除數(shù)據(jù)目錄里的所有文件

恢復(fù)全量備份:

innobackupex --user=root --apply-log /data/back_data/2010-10-29_15-57-44 # 應(yīng)用日志

innobackupex --user=root --copy-back /data/back_data/2010-10-29_15-57-44 # 拷貝文件

恢復(fù)增量備份:

xtrabackup --prepare --target-dir=/data/back_data/2010-10-29_15-57-44 --incremental-dir=/data/back_data_inc/5

cd /data

chown -R mysql:mysql mysql_data/

重啟mysql服務(wù)。

分享:使用java處理字符串公式運(yùn)算的方法
本篇文章介紹了,使用java處理字符串公式運(yùn)算的方法。需要的朋友參考下

來源:模板無憂//所屬分類:MySQL教程/更新時(shí)間:2013-04-27
相關(guān)MySQL教程