Mysqlbackup 備份詳解(mysql官方備份工具)

來源:互聯網
上載者:User

標籤:io   os   使用   ar   strong   檔案   資料   sp   div   

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

 

參數說明:    

--defaults-file my.cnf檔案的路徑,主要用於一台伺服器多個mysql服務.預設位置是/etc/my.cnf

--user  使用者名稱,這個使用者必須在mysql庫裡面有建立table和查詢,插入的許可權.在備份的過程中.mysqlbackup會在mysql庫下建立backup_history, backup_progress表.使用者保留備份的曆史資訊和備份的基礎資訊.   

--password密碼

--database 需要備份的資料庫,要備份多個資料庫需要用””包括起來,每個資料庫中間用空格分開

--with-timestamp使用者建立一個備份目錄下面目前時間的檔案夾,如果沒有這個參數,多次備份時,制定同一個目錄,會使上一次備份的檔案覆蓋掉.

--backup-dir備份的目錄

Backup  表明,這是備份操作

 

A.2全庫還原.

第一步:檢測交易記錄

Mysqlbackup --defaults-file=/home/mysql-server/mysql2/my.cnf  --backup-dir=/home/mysql-server/backup/2012-03-21_14-01-34/  apply-log

參數說明:

apply-log:因為在備份的時候是線上的,如果有新插入的SQL語句,會記錄新增加的LSN點,然後新修改的頁面會放到這個檔案裡面(ibbackup_logfile),同時也會放到資料表空間裡面.當還原使用這個參數的時候,mysqlbackup會檢測ibbackup_logfile和資料表空間的LSN點,然後比較ibbackup_logfile檔案資料表空間LSN的差值,把這個值放到交易記錄LOG裡面.(交易記錄如果填滿了,會進入資料表空間的)

       

第二步: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的參數

 

 

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

 

參數說明:

--compress-level=1

1為快速壓縮.共有9個等級

 

 

B.2壓縮還原

第一步:檢測交易記錄,並解壓

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的參數

增量備份不支援壓縮. backup-and-apply-log參數不能跟--compress-level同用

 

C.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-and-apply-log

參數說明:

backup-and-apply-log 這個參數,在備份的時候,就把交易記錄檢測的功能就完成了,並把ibbackup_logfile與資料表空間差值的LSN內容放入到了交易記錄裡面,所以在還原的時候,就只需要備份物理檔案就行

還原

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

參數說明:  

--incremental :代表為增量備份.

--incremental-backup-dir : 增量備份存放到哪個路徑下

--incremental-base : 增量備份的基礎備份或增量備份的檔案

 

第二次增量備份:

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

 

參數說明:  

--incremental-base : 這裡的備份,就是上一次增量備份的路徑

增量備份原理:增量備份是基於第一次的完整備份之後,通過完整最後的LSN點這個基礎在往後進行備份.當第二次增量備份的時,就基於前一次增量備份的LSN點的基礎在進行備份.所以--incremental-base這個參數在增量備份的時候,是指向上一次全備份或增量備份的LSN點

            

 

 

D.2 增量還原

1. 全備檢測匹配釋放交易記錄

   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. 最後進行物理檔案複製

   mysqlbackup --defaults-file=/home/mysql-server/mysql2/my.cnf  --backup-dir=/home/mysql-server/backup/2012-03-21_17-59-54/copy-back

 

增量還原原理:

1.               首先檢測匹配釋放全備交易記錄檔(當然如果備份中使用了backup-and-apply-log,在備份的時候,已經檢測匹配了,就不需要這一步了)

2.               第一次增量備份的檔案釋放到全備檔案裡面.(首先會進入交易記錄,然後是資料表空間),所以--backup-dir指向全備目錄(基於LSN點向後增加)

3.               第二次增量備份的檔案也是釋放到全備檔案裡面. (首先會進入交易記錄,然後是資料表空間),因為第一次的增量備份後,全庫裡面已經有了第一次的LSN點,所以二次還原的時候同樣指向全備檔案裡面使LSN點在外後增加

4.               因為增量的頁面,已經全部進入了交易記錄或資料表空間,這個時候,就可以直接備份物理檔案了.

 

但最後依然記住…

# =======================================================================

把先備份的系統庫MV到原來的地方

修改data目錄的許可權(如果你設定的是已MySQL使用者訪問的話)

     chown -R mysql.mysql data

# =========================================================================

在啟動mysql server..

 

 

Mysqlbackup工作原理

1.       mysqlbackup對innodb的資料表空間進行物理複製,但是,它是記錄LSN點的,在備份過程中,新增加的輸入直接寫入備份檔案的ibbackup_logfile中.同時記錄最後的LSN點

2.       mysqlbackup對 myisam進行的是鎖表全備.就算是增量備份,它依然是全備.

3.       還原的時候,檢測對比ibbackup_logfile檔案裡面與資料表空間裡面的差值,使ibbackup_logfile裡面的資料進入交易記錄或資料表空間

4.       在備份檔案中的meta/backup_variables.txt檔案中記錄了備份的一些資訊

  [backup_variables]

start_lsn=1602048                                               #開始備份的LSN點

end_lsn=687810168                                           # 結束LSN點

apply_log_done=1                                             # 是否釋放檢測ibbackup_logfile檔案(0表示沒有,1表示已經釋放)

is_incremental=0                                                #是否是增量為增量備份檔案(0:否,1:是)

is_incremental_with_redo_log_only=0              # 只配置重做日誌,當輸入資料大小重做日誌大小時,會有一場拋出

is_partial=1                                                        # 是伺服器備份還是部份備份(0表示全伺服器備份,1表示部份備份)

is_compressed=0                                              #是否壓縮(0表示沒有壓縮,1表示壓縮)

binlog_position=mysql-bin.000001:107          # 二進位檔案大小

is_onlyinnodb=0                                               #是否只備份了innodb的表

Mysqlbackup 備份詳解(mysql官方備份工具)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.