1. 程式人生 > >MySQL備份與恢復之percona-xtrabackup軟體的使用

MySQL備份與恢復之percona-xtrabackup軟體的使用

一 使用percona-xtrabackup的原因

       在前面,我們講到MySQL冷備、熱備、mysqldump、熱拷貝、保證資料的一致性。因為mysql冷備、mysqldump、mysql熱拷貝均不能實現增量備份,在實際環境中增量備份是使用較多的,percona-xtrabackup就是為實現增量備份而生,因此我們需要使用percona-xtrabackup。

二 什麼是percona-xtrabackup

Percona XtraBackup is an open-source hot backup utility for MySQL -based servers that doesn’t lock your database during the backup.

It can back up data from InnoDBXtraDB,and MyISAM tableson MySQL 5.1 [1], 5.5 and5.6 servers, as well as Percona Server with XtraDB.For a high-level overview of many of its advanced features, including a featurecomparison, please see AboutPercona Xtrabackup.

Whether it is a 24x7 highly loaded server or alow-transaction-volume environment, Percona XtraBackup

 isdesigned to make backups a seamless procedure without disrupting theperformance of the server in a production environment.Commercial support contracts areavailable.

Percona XtraBackup is a combination of the xtrabackup C program,and the innobackupex Perl script. The xtrabackupprogramcopies and manipulates 

InnoDB and XtraDB datafiles, and the Perl script enables enhanced functionality,such as interacting with a running MySQL server and backing up MyISAM tables.

三 軟體及文件獲取

軟體獲取

文件獲取

四 軟體使用講解

注:本文采用的percona-xtrabackup版本為2.0.2,作業系統版本為RHEL 6.1 Server,MySQL版本為5.1

第一步,準備檔案並拷貝檔案

[[email protected] ule-mysql]# ll percona-xtrabackup-2.0.2-461.rhel6.x86_64.rpm 
-rwxr-xr-x. 1 root root 3786628 Sep 10 13:45 percona-xtrabackup-2.0.2-461.rhel6.x86_64.rpm

[[email protected] ule-mysql]# scp percona-xtrabackup-2.0.2-461.rhel6.x86_64.rpm 192.168.1.11:/opt

第二步,該軟體需要依賴MySQL客戶端,所以使用yum安裝。注意,此處安裝的只是MySQL的客戶端,和本身使用原始碼安裝的MySQL不衝突

[[email protected] opt]# yum install percona-xtrabackup-2.0.2-461.rhel6.x86_64.rpm -y
Installed:
  percona-xtrabackup.x86_64 0:2.0.2-461.rhel6                                                                                         

Dependency Installed:
  mysql.x86_64 0:5.1.52-1.el6_0.1

第三步,初始化備份

[[email protected] databackup]# innobackupex --user=root --password=123456 /databackup/
InnoDB Backup Utility v1.5.1-xtrabackup; Copyright 2003, 2009 Innobase Oy
and Percona Inc 2009-2012.  All Rights Reserved.

……
innobackupex: Backup created in directory '/databackup/2013-09-10_21-49-44'
innobackupex: MySQL binlog position: filename 'mysql-bin.000001', position 7312
130910 21:50:03  innobackupex: completed OK!

第四步,這樣的備份檔案無法使用,我們需要做統一檢查

[[email protected] databackup]# ll
total 4
drwxr-xr-x. 9 root root 4096 Sep 10 21:50 2013-09-10_21-49-44

#做統一檢查
[[email protected] databackup]# innobackupex --apply-log /databackup/2013-09-10_21-49-44/

InnoDB Backup Utility v1.5.1-xtrabackup; Copyright 2003, 2009 Innobase Oy
and Percona Inc 2009-2012.  All Rights Reserved.
……
xtrabackup: starting shutdown with innodb_fast_shutdown = 1
130910 21:51:52  InnoDB: Starting shutdown...
130910 21:51:56  InnoDB: Shutdown completed; log sequence number 2098188
130910 21:51:56  innobackupex: completed OK!

第五步,模擬資料丟失

[[email protected] databackup]# rm -rf /usr/local/mysql/data/*
[[email protected] databackup]# ll /usr/local/mysql/data/
total 0

第六步,恢復資料

[[email protected] databackup]# innobackupex --copy-back /databackup/2013-09-10_21-49-44/

InnoDB Backup Utility v1.5.1-xtrabackup; Copyright 2003, 2009 Innobase Oy
and Percona Inc 2009-2012.  All Rights Reserved.
……
innobackupex: Starting to copy InnoDB system tablespace
innobackupex: in '/databackup/2013-09-10_21-49-44'
innobackupex: back to original InnoDB data directory '/usr/local/mysql/data'
innobackupex: Copying file '/databackup/2013-09-10_21-49-44/ibdata1'

innobackupex: Starting to copy InnoDB log files
innobackupex: in '/databackup/2013-09-10_21-49-44'
innobackupex: back to original InnoDB log directory '/usr/local/mysql/data'
innobackupex: Finished copying back files.

130910 22:02:29  innobackupex: completed OK!

第七步,重啟mysql服務,發現報錯,pkill掉,然後啟動一切正常

[[email protected] databackup]# /etc/init.d/mysqld restart
 ERROR! MySQL server PID file could not be found!
Starting MySQL. ERROR! The server quit without updating PID file (/usr/local/mysql/data/serv01.host.com.pid).

#檢視恢復的資料目錄,擁有者和所屬組不是mysql使用者,我們更改擁有者和所屬組
[[email protected] databackup]# ll /usr/local/mysql/data/
total 18468
drwxr-xr-x. 2 root  root      4096 Sep 10 22:02 game
drwxr-xr-x. 2 root  root      4096 Sep 10 22:02 hello
-rw-r-----. 1 root  root  18874368 Sep 10 21:51 ibdata1
drwxr-xr-x. 2 root  root      4096 Sep 10 22:02 larrydb
drwxr-xr-x. 2 root  root      4096 Sep 10 22:02 mnt
drwxr-xr-x. 2 root  root      4096 Sep 10 22:02 mysql
-rw-rw----. 1 mysql mysql        0 Sep 10 22:02 mysql-bin.index
drwxr-xr-x. 2 root  root      4096 Sep 10 22:02 performance_schema
-rw-r-----. 1 mysql root       771 Sep 10 22:02 serv01.host.com.err
drwxr-xr-x. 2 root  root      4096 Sep 10 22:02 test
-rw-r--r--. 1 root  root        24 Sep 10 22:02 xtrabackup_binlog_pos_innodb

[[email protected] databackup]# chown mysql.mysql /usr/local/mysql/data/ -R

#再次啟動,仍然失敗,我們殺掉程序,再次啟動mysql,正常
[[email protected] databackup]# /etc/init.d/mysqld restart
 ERROR! MySQL server PID file could not be found!
Starting MySQL.. ERROR! The server quit without updating PID file (/usr/local/mysql/data/serv01.host.com.pid).

[[email protected] databackup]# ps -ef | grep mysql
root      2386     1  0 18:36 pts/0    00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/serv01.host.com.pid
mysql     2664  2386  0 18:36 pts/0    00:00:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/usr/local/mysql/data/serv01.host.com.err --pid-file=/usr/local/mysql/data/serv01.host.com.pid --socket=/tmp/mysql.sock --port=3306
root      3022  1490  0 19:39 pts/0    00:00:00 mysql -uroot -px xxxx
root      5021  3040  0 22:05 pts/2    00:00:00 grep mysql
[[email protected] databackup]# pkill -9 mysql
[[email protected] databackup]# /etc/init.d/mysqld start
Starting MySQL.. SUCCESS! 

[[email protected] databackup]# mysql -uroot -p123456 
Server version: 5.5.29-log Source distribution
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| game               |
| hello              |
| larrydb            |
| mnt                |
| mysql              |
| performance_schema |
| test               |
+--------------------+
8 rows in set (0.00 sec)

五 參考資料



我的郵箱[email protected]  新浪微博@jutdb
  微信公眾平臺:JustOracle(微訊號:justoracle)
  資料庫技術交流群:336882565(加群時驗證 From CSDN XXX)
  All is well
  2013年12月1日
  By Larry Wen


katoon Sina CSDN
@Wentasy 博文僅供參考,歡迎大家來訪。如有錯誤之處,希望批評指正。原創博文如需轉載請註明出處,謝謝 :) [CSDN部落格]

相關推薦

MySQL備份恢復percona-xtrabackup軟體的使用

一 使用percona-xtrabackup的原因        在前面,我們講到MySQL冷備、熱備、mysqldump、熱拷貝、保證資料的一致性。因為mysql冷備、mysqldump、mysql熱拷貝均不能實現增量備份,在實際環境中增量備份是使用較多的,percon

Xtrabackup進行MySQL備份恢復

xtrabackup進行mysql備份與恢復一、使用Xtrabackup進行MySQL備份1、簡介Xtrabackup是由percona提供的mysql數據庫備份工具,據官方介紹,這也是世界上惟一一款開源的能夠對innodb和xtradb數據庫進行熱備的工具。特點:(1)備份過程快速、可靠;(2)備份過程不會

Mysql DBA 高級運維學習筆記-MySQL備份恢復實戰案例及生產方案

人員 副本 and null logs 維護成本 2-0 register pos 1.全量備份與增量備份 1.1 全量備份 全量數據就是數據庫中所有的數據,全量備份就是把數據庫中所有的數據進行備份。 備份所有庫: mysqldump -uroot -p123456 -S

Mysql運維管理-MySQL備份恢復實戰案例及生產方案17

inno 主鍵 文件 黑名單 con dem into info l數據庫 1.全量備份與增量備份 1.1 全量備份 全量數據就是數據庫中所有的數據,全量備份就是把數據庫中所有的數據進行備份。 備份所有庫:mysqldump -uroot -p123456 -S /data

MySQL用戶管理、sql常用語句、mysql備份恢復

mysql用戶 sql語句 mysql備份 mysql恢復 MySQL用戶管理 創建用戶 grant all on *.* to ‘user1‘@‘localhost‘ identified by ‘123456‘; grant all on db1.* to ‘user2‘@‘%‘ iden

MySQL備份恢復

備份與恢復MySQL備份與恢復第1章 關於備份的概念1.1 為什麽要進行備份?備份是數據安全的最後一道防線,對於任何數據丟失的場景,備份雖然不一定能恢復百分之百的數據(這主要取決於備份的周期),但至少能盡量將損失降到最低,衡量備份的恢復有兩個重要的指標:恢復點目標(RPO)和恢復時間目標(RTO),前者關註能

MySQL 備份恢復 常用命令

mysql1.3、MySQL 備份與恢復1、MySQL 備份# mysqldump -uroot -pqweasd -S /data/3307/mysql.sock db8 > /backup/3307-db8.sql# mysqldump -uroot -pqweasd -S /data/3307/m

MySQL-備份恢復

一、備份資料語法格式: SELECT * INTO OUTFILE ‘file_name’ export_options                |INTO DUMPFILE ‘file_name

MySQL備份恢復-3

perl 來講 ann cmdb cmd yum安裝 bcrypt sch color 上一片myloder搞崩潰,為什麽百度的博文都是抄襲一模一樣的,哎煩! 這一片文章我們來介紹物理備份工具xtracebackup! 首先是安裝可以percona官網下載安裝,下載rpm包

mysql備份恢復-xtracebackup

因為percona打算放棄使用innobackupex備份工具,因此我們這裡也說明一下innobackupex的兄弟工具xtraceback工具的使用 這個工具的安裝可以參考上面的一些博文,上面詳細說明了innobackupex的備份與使用:https://www.cnblogs.com/wxzhe/p/1

mysql 備份恢復(全量增量)

全量備份使用自帶的mysqldump命令備份命令mysqldump -u[username] -p[password]  [database] [table] > backup.sql恢復命令mysql -u[username] -p[password] [database] &l

[轉載]mysql備份恢復

5.9. 備份與恢復5.9.1. 資料庫備份5.9.2. 示例用備份與恢復策略5.9.3. 自動恢復5.9.4. 表維護和崩潰恢復5.9.5. myisamchk:MyISAM表維護實用工具5.9.6. 建立表維護計劃5.9.7. 獲取關於表的資訊本節討論如何進行資料庫備份(

RMAN備份恢復基於時間點的不完全恢復

一 不完全恢復講解         在上一篇文章(RMAN備份與恢復之UNDO表空間丟失)中,我們講到UNDO表空間丟失怎麼處理。UNDO表空間是不可離線的,同樣,SYSTEM表空間也是不可離線的,所以SYSTEM表空間丟失的處理辦法和UNDO表空間丟失的處理辦法類似,在

27.MySQL備份恢復

速度慢 socket 數據備份 rsync mys linux平臺 sin xtra 找到 27.備份與恢復27.1 備份/恢復策略考慮因素:備份表的存儲引擎(事務性or非事務性);全備份or增量備份用復制做異地備份定期備份,考慮恢復時間確保mysql打開log-bin,有

《入門MySQL備份恢復

  本篇文章將主要講解 MySQL 資料庫資料備份與恢復相關知識,主要聚焦於邏輯備份,介紹mysqldump工具的

Mysql備份恢復(1)---物理備份

資料庫對企業來說最重要的莫過於其中的資料,所以做好資料庫的備份是一個不可或缺的工作。資料庫及時備份可以幫助我們在資料庫出現異常宕機時及時的使用備份資料進行恢復工作,將因為資料庫宕機產生的影響降低到最小。所以,本篇文章主要資料庫資料備份與恢復進行介紹。由於MyISAM儲存引擎中備份資料是將表儲存到單獨的檔案所以

Mysql備份恢復(2)---邏輯備份

資料庫及時備份可以幫助我們在資料庫出現異常宕機時及時的使用備份資料進行恢復工作,將因為資料庫宕機產生的影響降低到最小。上一篇針對使用xtrabackup工具進行物理備份和資料恢復做了一個詳細講解,本篇主要談談如何使用mysql自帶的備份工具mysqldump進行邏輯備份和資料恢復。如果還圍觀看過上一篇文章的可

XtraBackup全量備份恢復MySQL數據

備份 mysql xtrabackup 防偽碼:沒有相當程度的孤獨是不可能有內心的平和。1、概述Percona XtraBackup(簡稱PXB)是 Percona 公司開發的一個用於 MySQL 數據庫物理熱備的備份工具,支持 MySQl(Oracle)、Percona Server 和 Mar

Mysql數據庫備份恢復--Xtrabackup

mysql innodb xtrabackupMysql數據庫備份與恢復 背景: 作為一個運維工程師,經常會遇到硬件故障(冗余)、軟件故障(bug)、自然災害、黑客攻擊、誤操作等對數據庫破壞的問題,所以一定要做好備份工作,在做好備份後還一定要會恢復,這兩項工作都是很重要的,備份要知道如何備份才能有

DBA成長路---mysql數據備份恢復

insert describe status use 表結構 command osi 5.7 數據 數據備份與恢復備份方式: 物理備份:直接拷貝備份庫和表對應的文件 cp -r /var/lib/mysql/mysql /mysql.bak