您好,登錄后才能下訂單哦!
數(shù)據(jù)庫(kù)備份
1 冷備(cp)
2 LVM快照備份
lvcreate -s -n rhel6node1 -L 2G /dev/vg_kvm/rhel6base
3 熱備
mysqldump -hserip -u用戶(hù)名 -p密碼 數(shù)據(jù)庫(kù)名 > 目錄名/xxx.sql
數(shù)據(jù)庫(kù)名的表示方式
--all-databases 備份服務(wù)器上的所有數(shù)據(jù)
數(shù)據(jù)庫(kù)名 備份一個(gè)庫(kù)的所有數(shù)據(jù)
數(shù)據(jù)庫(kù)名 表名 備份一個(gè)表的所有數(shù)據(jù)
-B 數(shù)據(jù)庫(kù)名1 數(shù)據(jù)庫(kù)名2 備份幾個(gè)庫(kù)的所有數(shù)據(jù)
完整恢復(fù)
mysql -hlocalhost -uroot -p123 [數(shù)據(jù)庫(kù)名] < xxx.sql
4 增量備份
1 binlog日志加腳本實(shí)現(xiàn)增量備份
1 使用mysql自帶binlog日志功能實(shí)現(xiàn)對(duì)數(shù)據(jù)的增量備份
2 安裝第3方軟件提供增量備份工具對(duì)數(shù)據(jù)做增量備份
------------------------------------------------------------------
使用binlog日志增量備份/增量恢復(fù)
binlog日志的使用
mysql服務(wù)有4種日志文件:錯(cuò)誤日志、查詢(xún)?nèi)罩?、慢查?xún)?nèi)罩?/span>
、binlog日志
binlog日志 (二進(jìn)制日志)
記錄客戶(hù)端連接自己之后,執(zhí)行的除查詢(xún)之外的sql命令。
默認(rèn)沒(méi)開(kāi)啟binlog日志
service mysql stop
vim /etc/my.cnf
[mysqld]
Log-bin=/logdir/plj
:wq
mkdir /logdir
chown mysql /logdir
service mysql start
cd /var/lib/mysql/
www-bin.000001 binlog日志文件
500M+
www-bin.000002
www-bin.index 日志的索引文件
查看binlog日志文件內(nèi)容
mysqlbinlog binlog日志文件名
手動(dòng)生成新binlog日志文件方式?
mysql> flush logs;
mysql -hlocalhost -uroot -p123 -e "flush logs"
service mysql restart
binlog記錄SQL命令的方式?
1 字符偏移量
2 時(shí)間點(diǎn)
mysqlbinlog 【選項(xiàng)】 binlog日志文件名
時(shí)間點(diǎn)
--start-datetime="2015-12-16 14:20:30" 自己去庫(kù)里找時(shí)間
--stop-datetime="2015-12-16 17:20:30" 自己去庫(kù)里找時(shí)間
字符偏移量
--start-position=數(shù)字 自己去庫(kù)里找偏移量
--stop-position=數(shù)字 自己去庫(kù)里找偏移量
mysqlbinlog --start-position=385 --stop-position=1134 plj.000010 | mysql -hlocalhost -uroot -p123 【數(shù)據(jù)庫(kù)名】
vim /shell/newlogfilebak.sh
#!/bin/bash
if [ ! -e /logbak ];then
mkdir /logbak
fi
mysql -hlocalhost -uroot -p123 -e "flush logs" &> /dev/null
cd /logdir
for file in `sed '$d' plj.index`
do
name=`echo $file | awk -F "/" '{print $3}'`
if [ ! -e /logbak/$name ];then
cp $name /logbak/
fi
done
:wq
00 18 * * 1 /shell/bakadb.sh &> /dev/null
00 19 * * 2-7 /shell/newfillogbak.sh
2 三方插件xtrabackup增量備份
yum -y install perl-Time-HiRes perl-DBD-MySQL
rpm -ivh percona-xtrabackup-2.1.6-702.rhel6.x86_64.rpm
增量備份/增量恢復(fù)命令 xtrabackup_56
備份過(guò)程中不鎖庫(kù)表
備份時(shí)只備份表記錄,不備份表結(jié)構(gòu)。
使用xtrabackup_56增量備份時(shí),必須有一次完整備份,這樣再備份時(shí),才能知道哪些數(shù)據(jù)是新產(chǎn)生的。
xtrabackup:C程序,支持InnoDB/XtraDB
xtrabackup_56 <選項(xiàng)>
選項(xiàng)
--backup 備份數(shù)據(jù)
--prepare 準(zhǔn)備恢復(fù)數(shù)據(jù)
--target-dir=目錄名 備份目錄
--datadir=數(shù)據(jù)庫(kù)目錄 備份的源文件
--incremental-basedir=目錄名 增量備份時(shí),指定上一次備份文件存儲(chǔ)的目錄
--incremental-dir=目錄名 準(zhǔn)備恢復(fù)數(shù)據(jù)時(shí),指定使用那個(gè)備份目錄下的數(shù)據(jù)做恢復(fù)
1001 5
xtrabackup_56 --backup --datadir=/var/lib/mysql --target-dir=/onedir
2002 7
xtrabackup_56 --backup --datadir=/var/lib/mysql --target-dir=/new1 --incremental-basedir=/onedir
3003 10
xtrabackup_56 --backup --datadir=/var/lib/mysql --target-dir=/new2 --incremental-basedir=/new1
mysql > delete from testdb.a;
drop table testdb.a;
增量恢復(fù)
1 、準(zhǔn)備恢復(fù)數(shù)據(jù)
xtrabackup_56 --prepare --datadir=/var/lib/mysql --target-dir=/onedir
xtrabackup_56 --prepare --datadir=/var/lib/mysql --target-dir=/onedir --incremental-dir=/new1
xtrabackup_56 --prepare --datadir=/var/lib/mysql --target-dir=/onedir --incremental-dir=/new2
2、被備份文件拷貝回?cái)?shù)據(jù)庫(kù)目錄下對(duì)應(yīng)的位置
cp /onedir/testdb/a.ibd /var/lib/mysql/testdb/
3、重啟數(shù)據(jù)庫(kù)服務(wù)器 service mysql restart
xtrabackup工作過(guò)程
lsn 日志序列號(hào)
/var/lib/mysql/
ibdata1
ib_logfile0
ib_logfile1
ibdata1
ibdata1.delta
ibdata1.meta
xtrabackup_checkpoints
xtrabackup_logfile
a.ibd
a.ibd.delta a.ibd.meta
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。