《Mysql學習MySQL使用xtrabackup進行備份還原操作》要點:
本文介紹了Mysql學習MySQL使用xtrabackup進行備份還原操作,希望對您有用。如果有疑問,可以聯系我們。
本文實例為大家分享了xtrabackup備份還原的具體代碼,供大家參考,具體內容如下MYSQL實例
使用rpm包安裝xtrabackupMYSQL實例
## 安裝依賴包 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-xtrabackup rpm -ivh percona-xtrabackup-24-2.4.4-1.el6.x86_64.rpm
為備份操作創建MySQL賬戶.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;
創建備份文件目錄MYSQL實例
mkdir /export/mysql_backup?MYSQL實例
對數據庫進行完整備份,如果在從庫上進行備份,請添加--slave_info Csafe-slave-backup參數來獲取復制主庫的binlog信息.默認備份會將當前庫的binlog信息保存到xtrabackup_binlog_info文件中,而--slave_info參數將復制主庫的binlog信息保存到xtrabackup_slave_info中,如果使用備份來添加復制,請注意選取正確的binlog信息.MYSQL實例
## 進行完整備份并壓縮 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資源.?MYSQL實例
假設進行完上面操作,將備份文件拷貝到新的服務器上,同樣放到/export/mysql_backup/下MYSQL實例
解壓備份文件MYSQL實例
## 切換到備份壓縮文件所在目錄 ## 強烈建議創建一個空的目錄來存放備份文件,以避免解壓后的文件與其他文件沖突 cd /export/mysql_backup/ ##加壓備份 tar xvf mysql_full_backup.tar.gz
使用xtrabackup備份得到的數據是備份結束時間點的數據,備份期間所產生的事務日志被保存到備份文件xtrabackup_logfile中,因此需要先對備份文件進行日志重做和回滾未提交事務.--apply-log還會根據backup-my.cnf來生成新的事務日志文件.MYSQL實例
#使用apply-log參數來處理事務日志 innobackupex --apply-log /export/mysql_backup/
由于在還原時要求目標目錄為空,而即使新安裝的MySQL服務器也會存在一些如系統數據庫的數據文件,因此在將備份還原到MySQL之前,需要將當前MySQL數據目錄下的文件進行情況,為保險期間,建議先使用mv命令來改名.MYSQL實例
#備份當前MySQL的數據目錄 mv /export/data/mysql /export/data/mysql_bak
?xtrbackup備份操作只備份數據相關的文件,并不會備份如錯誤日志/慢日志等文件或目錄,而上一步操作mv可能移除掉部分文件目錄,因此需要手動再創建一遍.MYSQL實例
## 創建MySQL數據目錄 mkdir -p /export/data/mysql/tmp /export/data/mysql/data /export/data/mysql/dumps /export/data/mysql/log
?使用move-back參數來將數據移動到MySQL數據目錄下,同樣也可以使用--copy-back參數來只拷貝而不復制.MYSQL實例
innobackupex --defaults-file="/export/servers/mysql/etc/my.cnf" --move-back /export/mysql_backup/?MYSQL實例
數據復制到MySQL數據目錄后,需要修改這些數據文件的所有者,保證MySQL服務有權限把持.MYSQL實例
#修改MySQL數據目錄的權限 chown -R mysql:mysql /export/data/mysql
最終啟動MySQL服務,檢查數據是否正常MYSQL實例
以上就是本文的全部內容,希望對大家的學習有所贊助,也希望大家多多支持維易PHP.MYSQL實例
歡迎參與《Mysql學習MySQL使用xtrabackup進行備份還原操作》討論,分享您的想法,維易PHP學院為您提供專業教程。