MySQL使用xtrabackup進行備份還原作業_Mysql

來源:互聯網
上載者:User

本文執行個體為大家分享了xtrabackup備份還原的具體代碼,供大家參考,具體內容如下

使用rpm包安裝xtrabackup

## 安裝依賴包yum -y install perl perl-devel libaio libaio-devel perl-Time-HiRes perl-DBD-MySQL rsync## 安裝libev4包rpm -ivh libev4-4.15-7.1.x86_64.rpm## 安裝percona-xtrabackuprpm -ivh percona-xtrabackup-24-2.4.4-1.el6.x86_64.rpm

為備份操作建立MySQL賬戶。

## xtrabackup備份建立備份使用者CREATE USER 'backuper'@'localhost' IDENTIFIED BY 'backup@123';GRANT SELECT, RELOAD, PROCESS, SHOW DATABASES, SUPER, LOCK TABLES, REPLICATION CLIENT, SHOW VIEW, EVENT ON *.* TO 'backuper'@'localhost';FLUSH PRIVILEGES;

建立備份檔案目錄

mkdir /export/mysql_backup 

對資料庫進行完整備份,如果在從庫上進行備份,請添加--slave_info –safe-slave-backup參數來擷取複製主庫的binlog資訊。預設備份會將當前庫的binlog資訊儲存到xtrabackup_binlog_info檔案中,而--slave_info參數將複製主庫的binlog資訊儲存到xtrabackup_slave_info中,如果使用備份來添加複製,請注意選取正確的binlog資訊。

## 進行完整備份並壓縮innobackupex --defaults-file="/export/servers/mysql/etc/my.cnf" \--host="localhost" \--port=3358 \--user="backuper" \--password="backup@123" \--socket="/export/data/mysql/tmp/mysql.sock" \--stream=tar \"/export/mysql_backup/" | gzip -> "/export/mysql_backup/mysql_full_backup.tar.gz"

注意檢查命令是否成功執行,使用tar備份能有效降低備份檔案的大小,但是壓縮和加壓縮都會嚴重消耗cpu資源。 

假設進行完上面操作,將備份檔案拷貝到新的伺服器上,同樣放到/export/mysql_backup/下

解壓備份檔案

## 切換到備份壓縮檔所在目錄## 強烈建議建立一個空的目錄來存放備份檔案,以避免解壓後的檔案與其他檔案衝突cd /export/mysql_backup/##加壓備份tar xvf mysql_full_backup.tar.gz

使用xtrabackup備份得到的資料是備份結束時間點的資料,備份期間所產生的交易記錄被儲存到備份檔案xtrabackup_logfile中,因此需要先對備份檔案進行日誌重做和復原未提交事務。--apply-log還會根據backup-my.cnf來產生新的交易記錄檔。

#使用apply-log參數來處理交易記錄innobackupex --apply-log /export/mysql_backup/ 

由於在還原時要求目標目錄為空白,而即使新安裝的MySQL伺服器也會存在一些如系統資料庫的資料檔案,因此在將備份還原到MySQL之前,需要將當前MySQL資料目錄下的檔案進行情況,為保險期間,建議先使用mv命令來改名。

#備份當前MySQL的資料目錄mv /export/data/mysql /export/data/mysql_bak

 xtrbackup備份操作只備份資料相關的檔案,並不會備份如錯誤記錄檔/慢日誌等檔案或目錄,而上一步操作mv可能移除掉部分檔案目錄,因此需要手動再建立一遍。

## 建立MySQL資料目錄mkdir -p /export/data/mysql/tmp /export/data/mysql/data /export/data/mysql/dumps /export/data/mysql/log

 使用move-back參數來將資料移動到MySQL資料目錄下,同樣也可以使用--copy-back參數來只拷貝而不複製。

innobackupex --defaults-file="/export/servers/mysql/etc/my.cnf" --move-back /export/mysql_backup/ 

資料複製到MySQL資料目錄後,需要修改這些資料檔案的所有者,保證MySQL服務有許可權操縱。

#修改MySQL資料目錄的許可權chown -R mysql:mysql /export/data/mysql 

最終啟動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.