MySQL官方备份_Mysqlbackup 备份详解(mysql官方备份工具)
A.1全庫備份.
命令:
mysqlbackup--defaults-file=/home/mysql-server/mysql3/my.cnf? --user=root --password=root? --databases="mysql total2" --with-timestamp?? --backup-dir=/home/mysql-server/backup? ?backup
參數(shù)說明:
--defaults-filemy.cnf文件的路徑,主要用于一臺服務(wù)器多個mysql服務(wù).默認(rèn)位置是/etc/my.cnf
--user用戶名,這個用戶必須在mysql庫里面有創(chuàng)建table和查詢,插入的權(quán)限.在備份的過程中.mysqlbackup會在mysql庫下建立backup_history, backup_progress表.用戶保留備份的歷史信息和備份的基礎(chǔ)信息.
--password密碼
--database需要備份的數(shù)據(jù)庫,要備份多個數(shù)據(jù)庫需要用””包括起來,每個數(shù)據(jù)庫中間用空格分開
--with-timestamp用戶創(chuàng)建一個備份目錄下面當(dāng)前時間的文件夾,如果沒有這個參數(shù),多次備份時,制定同一個目錄,會使上一次備份的文件覆蓋掉.
--backup-dir備份的目錄
Backup表明,這是備份操作
A.2全庫還原.
第一步:檢測事務(wù)日志
Mysqlbackup --defaults-file=/home/mysql-server/mysql2/my.cnf--backup-dir=/home/mysql-server/backup/2012-03-21_14-01-34/ ?apply-log
參數(shù)說明:
apply-log:因為在備份的時候是在線的,如果有新插入的SQL語句,會記錄新增加的LSN點,然后新修改的頁面會放到這個文件里面(ibbackup_logfile),同時也會放到表空間里面.當(dāng)還原使用這個參數(shù)的時候,mysqlbackup會檢測ibbackup_logfile和表空間的LSN點,然后比較ibbackup_logfile文件表空間LSN的差值,把這個值放到事務(wù)日志LOG里面.(事務(wù)日志如果填滿了,會進入表空間的)
第二步:copy物理文件
mysqlbackup --defaults-file=/home/mysql-server/mysql2/my.cnf--backup-dir=/home/mysql-server/backup/2012-03-21_14-01-34/ ?--innodb_log_files_in_group=2 ?copy-back
# 注意:在還原的時候,my.cnf文件中必要要有datadir的參數(shù)
B.1壓縮全庫備份
mysqlbackup--defaults-file=/home/mysql-server/mysql3/my.cnf? --user=root --password=root --compress-level=1 --databases="mysql total2" --with-timestamp?? --backup-dir=/home/mysql-server/backup? backup
參數(shù)說明:
--compress-level=1
1為快速壓縮.共有9個等級
B.2壓縮還原
第一步:檢測事務(wù)日志,并解壓
mysqlbackup --defaults-file=/home/mysql-server/mysql2/my.cnf --uncompress --backup-dir=/home/mysql-server/backup/2012-03-21_14-08-33/ apply-log
uncompress解壓壓縮后的文件.
第二步:copy物理文件
mysqlbackup --defaults-file=/home/mysql-server/mysql2/my.cnf --innodb_log_files_in_group=2 --backup-dir=/home/mysql-server/backup/2012-03-21_14-08-33/copy-back
# 注意:在還原的時候,my.cnf文件中必要要有datadir的參數(shù)
增量備份不支持壓縮. backup-and-apply-log參數(shù)不能跟--compress-level同用
C.1備份時,同時釋放事務(wù)日志
備份
mysqlbackup? --defaults-file=/home/mysql-server/mysql3/my.cnf? --user=root --password=root? --databases="mysql total2" --with-timestamp???? --backup-dir=/home/mysql-server/backup? backup-and-apply-log
參數(shù)說明:
backup-and-apply-log這個參數(shù),在備份的時候,就把事務(wù)日志檢測的功能就完成了,并把ibbackup_logfile與表空間差值的LSN內(nèi)容放入到了事務(wù)日志里面,所以在還原的時候,就只需要備份物理文件就行
還原
mysqlbackup --defaults-file=/home/mysql-server/mysql2/my.cnf --innodb_log_files_in_group=2 --backup-dir=/home/mysql-server/backup/2012-03-21_19-25-09/? copy-back
D.1增量備份
第一次增量備份:
mysqlbackup? --defaults-file=/home/mysql-server/mysql3/my.cnf? --user=root --password=root?? --with-timestamp
--databases=”mysql total2” --incremental --incremental-backup-dir=/home/mysql-server/in/? --incremental-base=dir:/home/mysql-server/backup/2012-03-22_11-10-28? backup
參數(shù)說明:
--incremental:代表為增量備份.
--incremental-backup-dir :增量備份存放到哪個路徑下
--incremental-base :增量備份的基礎(chǔ)備份或增量備份的文件
第二次增量備份:
mysqlbackup? --defaults-file=/home/mysql-server/mysql3/my.cnf? --user=root --password=root?? --with-timestamp
--databases=”mysql total2”? --incremental --incremental-backup-dir=/home/mysql-server/in/? --incremental-base=dir:/home/mysql-server/backup/2012-03-22_11-15-28? backup
參數(shù)說明:
--incremental-base :這里的備份,就是上一次增量備份的路徑
增量備份原理:增量備份是基于第一次的完整備份之后,通過完整最后的LSN點這個基礎(chǔ)在往后進行備份.當(dāng)?shù)诙卧隽總浞莸臅r,就基于前一次增量備份的LSN點的基礎(chǔ)在進行備份.所以--incremental-base這個參數(shù)在增量備份的時候,是指向上一次全備份或增量備份的LSN點
D.2增量還原
1.全備檢測匹配釋放事務(wù)日志
mysqlbackup --defaults-file=/home/mysql-server/mysql2/my.cnf? --backup-dir=/home/mysql-server/backup/2012-03-21_17-59-54/ apply-log
2.檢測匹配釋放第一次的增量備份
mysqlbackup? --backup-dir=/home/mysql-server/backup/2012-03-21_17-59-54/ ?--incremental-backup-dir=/home/mysql-server/in/2012-03-22_11-47-47/? apply-incremental-backup
3.檢測匹配釋放第二次的增量備份
mysqlbackup? --backup-dir=/home/mysql-server/backup/2012-03-21_17-59-54/? --incremental-backup-dir=/home/mysql-server/in/2012-03-22_11-50-47/? apply-incremental-backup
4.最后進行物理文件復(fù)制
mysqlbackup --defaults-file=/home/mysql-server/mysql2/my.cnf? --backup-dir=/home/mysql-server/backup/2012-03-21_17-59-54/copy-back
增量還原原理:
1.首先檢測匹配釋放全備事務(wù)日志文件(當(dāng)然如果備份中使用了backup-and-apply-log,在備份的時候,已經(jīng)檢測匹配了,就不需要這一步了)
2.第一次增量備份的文件釋放到全備文件里面.(首先會進入事務(wù)日志,然后是表空間),所以--backup-dir指向全備目錄(基于LSN點向后增加)
3.第二次增量備份的文件也是釋放到全備文件里面. (首先會進入事務(wù)日志,然后是表空間),因為第一次的增量備份后,全庫里面已經(jīng)有了第一次的LSN點,所以二次還原的時候同樣指向全備文件里面使LSN點在外后增加
4.因為增量的頁面,已經(jīng)全部進入了事務(wù)日志或表空間,這個時候,就可以直接備份物理文件了.
但最后依然記住…
# =======================================================================
把先備份的系統(tǒng)庫MV到原來的地方
修改data目錄的權(quán)限(如果你設(shè)置的是已MySQL用戶訪問的話)
chown -R mysql.mysql data
# =========================================================================
在啟動mysql server..
Mysqlbackup工作原理
1.mysqlbackup對innodb的表空間進行物理復(fù)制,但是,它是記錄LSN點的,在備份過程中,新增加的輸入直接寫入備份文件的ibbackup_logfile中.同時記錄最后的LSN點
2.mysqlbackup對myisam進行的是鎖表全備.就算是增量備份,它依然是全備.
3.還原的時候,檢測對比ibbackup_logfile文件里面與表空間里面的差值,使ibbackup_logfile里面的數(shù)據(jù)進入事務(wù)日志或表空間
4.在備份文件中的meta/backup_variables.txt文件中記錄了備份的一些信息
[backup_variables]
start_lsn=1602048#開始備份的LSN點
end_lsn=687810168#?結(jié)束LSN點
apply_log_done=1#是否釋放檢測ibbackup_logfile文件(0表示沒有,1表示已經(jīng)釋放)
is_incremental=0#是否是增量為增量備份文件(0:否,1:是)
is_incremental_with_redo_log_only=0#只配置重做日志,當(dāng)輸入數(shù)據(jù)大小重做日志大小時,會有一場拋出
is_partial=1#是服務(wù)器備份還是部分備份(0表示全服務(wù)器備份,1表示部分備份)
is_compressed=0#是否壓縮(0表示沒有壓縮,1表示壓縮)
binlog_position=mysql-bin.000001:107#二進制文件大小
is_onlyinnodb=0#是否只備份了innodb的表
文章轉(zhuǎn)自:http://blog.csdn.net/m582445672/article/details/7649944
總結(jié)
以上是生活随笔為你收集整理的MySQL官方备份_Mysqlbackup 备份详解(mysql官方备份工具)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。