1. 程式人生 > >使用xtrabackup遠端備份到及重建資料庫

使用xtrabackup遠端備份到及重建資料庫

準備工作:

從percona網站下載xtrabackup:

wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.3.3/binary/tarball/percona-xtrabackup-2.3.3-Linux-x86_64.tar.gz

建立資料庫備份帳號:GRANT SELECT, RELOAD, PROCESS, SUPER, LOCK TABLES, REPLICATION SLAVE, REPLICATION CLIENT, SHOW VIEW ON *.* TO 'db_user'@'localhost' IDENTIFIED BY 'db_password';

使用percona xtrabackup備份工具,以流備份的方式,直接從本地備份到遠端伺服器上,當備份資料比較大,而本地磁碟容量又比較小時很有用。

1.備份

#使用tar流備份

/opt/viewer/percona-xtrabackup-2.3.3-Linux-x86_64/bin/innobackupex --defaults-file=$MY_CNF --tmpdir=$TMP_DIR --ibbackup=/opt/viewer/percona-xtrabackup-2.3.3-Linux-x86_64/bin/xtrabackup --user=user --password=password --slave-info  --stream tar  $DATA_DIR | ssh $REMOTE_HOST  "cat - > /vobiledata/tmp/${LOCAL_HOST}.mysqldata.tar.lzma"

#使用xbstream流備份

./innobackupex  --defaults-file=/etc/mysql/my.cnf --user=xxx --password=xxx --stream=xbstream /vobiledata/mysqldata/ |ssh [email protected]$REMOTE_HOST
 "cd /root/percona-xtrabackup-2.3.3-Linux-x86_64/bin; cat - | ./xbstream -x -C  /vobiledata/mysqldata/" > innobackupex.log 2>&1

#備份指定資料庫

./innobackupex  --defaults-file=/etc/mysql/my.cnf --user=xxx --password=xxx  --databases="db1 db2"  --stream=xbstream /vobiledata/mysqldata/ |ssh [email protected]$REMOTE_HOST
 "cd /root/percona-xtrabackup-2.3.3-Linux-x86_64/bin; cat - | ./xbstream -x -C  /vobiledata/mysqldata/" > innobackupex.log 2>&1

-- 注意 --databases引數值要用引號括起來

2.恢復

#解壓資料庫備份檔案
tar -xi --lzma -f ${db_data_package_file}
        
#還原資料庫
innobackupex-1.5.1 --user=root --apply-log --defaults-file={mysql_conf_file} --ibbackup=/usr/bin/xtrabackup_51 --use-memory=2046M ${mysql_data_dir}

#將資料檔案拷貝到資料目錄,如果解壓的時候檔案已經在資料庫目錄下,則可省略此步驟       
#innobackupex-1.5.1 --user=root --copy-back --defaults-file=${mysql_conf_file} --use-memory=2046M --no-lock ${mysql_data_dir}

#恢復增量備份示例:

/usr/local/percona-xtrabackup-2.4.4-Linux-x86_64/bin/innobackupex --defaults-file=./my.cnf --apply-log --redo-only ./fullbackup
/usr/local/percona-xtrabackup-2.4.4-Linux-x86_64/bin/innobackupex --defaults-file=./my.cnf --apply-log --redo-only ./fullbackup --incremental-dir=/data/db_recovery/hostip/incr1
/usr/local/percona-xtrabackup-2.4.4-Linux-x86_64/bin/innobackupex --defaults-file=./my.cnf --apply-log --redo-only ./fullbackup --incremental-dir=/data/db_recovery/hostip/incr2
/usr/local/percona-xtrabackup-2.4.4-Linux-x86_64/bin/innobackupex --defaults-file=./my.cnf --apply-log --redo-only ./fullbackup --incremental-dir=/data/db_recovery/hostip/incr3
/usr/local/percona-xtrabackup-2.4.4-Linux-x86_64/bin/innobackupex --defaults-file=./my.cnf --apply-log --redo-only ./fullbackup --incremental-dir=/data/db_recovery/hostip/incr4
/usr/local/percona-xtrabackup-2.4.4-Linux-x86_64/bin/innobackupex --defaults-file=./my.cnf --apply-log --redo-only ./fullbackup --incremental-dir=/data/db_recovery/hostip/incr5
/usr/local/percona-xtrabackup-2.4.4-Linux-x86_64/bin/innobackupex --defaults-file=./my.cnf --apply-log ./fullbackup --incremental-dir=/data/db_recovery/hostip/incr6
/usr/local/percona-xtrabackup-2.4.4-Linux-x86_64/bin/innobackupex --defaults-file=./my.cnf --apply-log ./fullbackup

異常處理:

問題1. XtraBackup備份出現"Can't locate Digest/MD5.pm in @INC"
原因分析:安裝Xtrabackup 2.4時,沒有安裝 perl-Digest-MD5元件
解決方法:安裝perl-Digest-MD5後,問題即可解決。
redhat及周邊系統:yum  install perl-Digest-MD5
debian及周邊系統:apt-get install  perl-Digest-MD5
參考文件【http://www.cnblogs.com/kerrycode/p/6433075.html】

問題2:

IMPORTANT: Please check that the backup run completes successfully.
           At the end of a successful backup run innobackupex
           prints "completed OK!".


170511 16:33:48  version_check Connecting to MySQL server with DSN 'dbi:mysql:;mysql_read_default_group=xtrabackup;host=127.0.0.1;mysql_socket=/data/mysql5.6/mysql.sock' as 'db_backup'  (using password: YES).
Failed to connect to MySQL server as DBD::mysql module is not installed at - line 1327.
170511 16:33:48 Connecting to MySQL server host: 127.0.0.1, user: db_backup, password: set, port: 0, socket: /data/mysql5.6/mysql.sock
Using server version 5.6.27-log

原因:沒有安裝perl-DBD-MySQL

解決方法:yum install perl-DBD-MySQL

相關推薦

使用xtrabackup遠端備份重建資料庫

準備工作: 從percona網站下載xtrabackup: wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.3.3/binary/tarball/percona-xtrabacku

安裝oracle客戶端支援oracle遠端備份PL/SQL配置

一、oracle_client安裝(略)下載地址:12g:https://www.oracle.com/technetwork/database/enterprise-edition/downloads/oracle12c-windows-3633015.html11g:https://www.oracle.

使用MySQL命令列備份恢復資料庫

使用MySQL命令列,可以實現對資料庫的備份以及恢復,下面就為您介紹使用MySQL命令列實現該功能的詳細方法步驟,供您參考。 MySQL命令列匯出資料庫: 1,進入MySQL目錄下的bin資料夾:cd MySQL中到bin資料夾的目錄 如我輸入的命令列:cd C:\Prog

遠端備份資料庫

步驟如下 建備份資料夾: mkdir mysql_data_bak 建指令碼檔案: touch autobackupmysql.sh 開啟檔案 vim autobackupmysql.sh 在指令碼中加入如下內容: filename=`date +%Y%m%d`

oracle資料庫定時備份還原方法

一、oracle資料備份 1、找到電腦右下方開始--執行,輸入cmd,進入dos命令視窗。 2、輸入sqlplus system/密碼@orcl (一般管理員登入)--------連線本機oracle資料庫 輸入 sqlplus system/密碼@IP:埠/orcl

Redmine資料庫備份搬家

Bitnami Redmine的備份分2種方式:   1.匯出資料庫   2.整個目錄搬家   不管是哪種都想停掉服務,redmine相關的服務有以下5個:   redmineApache   redmineMySQL   redmineSub

Xtrabackup定時備份mysql資料庫指令碼

定時備份MySQL資料庫 指令碼內容: #!/bin/bash ## 備份計劃任務 ## ## 每天凌晨1:30一次全量備份 ## 每天間隔1小時一次增量備份 ## 30 1 * * * backup.sh full ## 00 * * * * backup.

centOS下資料庫自動備份清理備份sql

要自動備份mysql一般是通過mysqldump來執行的,下面用到的命令會有mysqldump、date、find、rm 先上完整shell script mysqldump -uroot -pyourpassword database_name >>/your/path

【MySQL】資料庫定時備份刪除

1、檢視磁碟空間情況   既然是定時備份,就要選擇一個空間充足的磁碟空間,避免出現因空間不足導致備份失敗、資料丟失的問題。檢視伺服器磁碟空間使用情況的命令為:df -h。(df,disk free;h,human;以人類易讀的形式展示可用磁碟)   這裡

mysql資料庫多表備份excel表格匯出指令碼編寫

#!/bin/sh # Database info DB_USER="root" DB_PASS="min" DB_HOST="localhost" DB_NAME="product" # 資料庫表

Linux下mysql資料庫的自動備份與還原 遠端備份和本地備份

Linux系統下Mysql備份還原 MySql的還原與備份 1 備份     mysqldump -u root -p shop > /home/andy/shop20150910.sql   

使用innobackupex線上備份恢復mysql資料庫

一、安裝解壓 # yum -y install mysql mysql-libs mysql-server MySQL-python 2.建立資料庫 create database dotatest; mysql -uroot -p dotat

Mysqldump遠端備份、恢復mysql資料庫

本地通過Mysqldump備份遠端伺服器上mysql的資料庫: 1、遠端地址 直接上shell指令碼 #!/bin/bash d=`date +'%Y%m%d_%H_%M_%S'` cd /mnt/mysql_db mysqldump -h my

Oracle11g資料庫備份還原

一、備份資料庫(exp)1、完全備份exp demo/[email protected] buffer=1024 file=d:\back.dmp full=ydemo:使用者名稱、密碼 buffer: 快取大小file: 具體的備份檔案地址 full: 是否匯出全部檔案 ignore: 忽略錯誤,

windows下 mongodb 連線,備份,還原遠端伺服器上的資料庫(在cmd命令視窗實現)

1. Windows下遠端連線伺服器上的MongoDB資料庫 使用的是mongo命令,如果安裝mongodb時配置了環境變數,可以直接快捷鍵windows+R開啟cmd。 管理員身份cmd執行如下語句:      mongo -h ip:埠/資料庫名 -u user

DB2資料庫歸檔模式下線上備份恢復

以下方法使用線上備份方式並且恢復時無須手動複製日誌檔案。 前提:          修改資料庫引數,使之開啟歸檔日誌,支援線上備份。 備份命令:            db2 backup db dbname online to 【路徑名】compress includ

Xtrabackup定時備份資料庫指令碼

#!/bin/bash## 備份計劃任務## ## 每天凌晨1:30一次全量備份## 每天間隔1小時一次增量備份## 30 1 * * * backup.sh full## 00 * * * * backup.sh inc#### 恢復資料步驟:## (1)、檢視備份日誌,找到全量備份和增量備份的關係(

Windows下Postgresql資料庫備份恢復

--通過cmd進入目錄cd C:\Program Files\PostgreSQL\9.6\bin--執行匯出,localhost 或者IPpg_dump -h localhost -U postgres ship> C:\ship.bak--執行匯入psql -h l

Linux下DB2資料庫備份還原

背景: 放資料庫DB2的伺服器是windows server作業系統,又在上面安裝了Linux虛擬機器,然後在虛擬機器上安裝了DB2。應用伺服器上裝的是Tomcat。 要求: 在本地電腦上備份資料庫。本操作是離線全備份。 操作前提: 在本地電腦上安裝了SSH,並且已經連線了遠端的伺服器。 步驟

SqlServer 資料庫完整備份差異備份

View Code   --查詢檔案是否存在  CREATE TABLE #tmp ([File Exists] BIT, [File is a Directory] BIT, [Parent Directory Exists] BIT)   INSERT INTO #tm