資料庫備份工具innobackupex

2021-10-02 01:10:28 字數 3079 閱讀 7099

一、了解innobackupex

1、mysqldump

mysql邏輯備份工具,作用於伺服器本地,不需要額外安裝外掛程式

可以單錶備份,備份為sql檔案形式、方便,在多個場景通用

可通過shell命令實現定時備份,但備份時如果使用者有操作,容易造成髒資料

將資料庫備份到伺服器本地sql檔案,屬於邏輯備份,不受資料庫引擎限制

只能全量備份,恢復的話只能覆蓋原有資料,或者恢復到新的表中,再手動處理

單執行緒,資料量大時備份耗時較長,且鎖表容易引對不支援事務的表造成影響

2、mysqlhotcopy

需要安裝perl-dbd-mysql包,只能執行、備份在伺服器本地

檔案的快速備份,屬於物理備份,恢復時只需要複製檔案到目錄下替換原始檔

只支援myisam引擎的mysql資料庫備份

3、innobackupex

屬於物理備份,需要安裝額外的外掛程式,支援全量備份&增量備份

備份、恢復速度快,支援遠端、併發、限速備份,支援加密傳輸到本地

支援 myisam (會鎖表,似乎不支援增量?)跟 innodb

二、安裝

注意innobackup版本與mysql版本,innobackup2.2不支援mysql5.7+
1、檢視最新版本:

image.png

2、開始安裝

[root@localhost ~]# yum -y install

image.png

三、配置遠端免密登入

如果要實現遠端備份,必須配置遠端免密登入,否則備份過程會沒有報錯,但是一直卡死在『log scanned up to』,導致無法繼續備份

180920 17:15:39 >> log scanned up to (1023762231)

180920 17:15:40 >> log scanned up to (1023762231)

180920 17:15:41 >> log scanned up to (1023762231)

....

但如果log scanned up to後面括號中的數值有變動,則並未卡死,仍在備份中

生成秘鑰,如果已經生成過,則跳過這一步

ll ~/.ssh/ //如果已有rsa檔案,則是已生成

ssh-keygen -t rsa

一路回車,不需要其他資訊

新增公鑰到遠端主機
ssh-copy-id -i ~/.ssh/id_rsa.pub 使用者名稱@主機ip

會提示輸入遠端主機使用者名稱對應的密碼,必須輸入不能留空

最後會提示通過『ssh 使用者名稱@ip』命令確認是否成功開啟免密登入

image.png

四、備份

定時備份

定時通過innobackupex備份資料庫、scp傳送到指定
#!/bin/bash

cd /home

if [ ! -d 「crontab」 ];then

mkdir crontab

else

echo 「資料夾已經存在」

ficd crontab

date=date +%y%m%d

echodate +%y%m%d-%h%m:開始備份 >> backup_db.log

echo 「------ start backup db ------」

ssh [email protected] \ 「mkdir /home/backup/database/date +%y%m%d

echodate +%y%m%d-%h%m:建立目錄-$date >> backup_db.log

innobackupex --defaults-file=/etc/my.cnf --no-lock --user 『root』 --password 『password123』 --stream=tar ./ | ssh [email protected] \ 「cat - > /home/backup/database/date +%y%m%d/date +%h-%m-backup.tar」

echodate +%y%m%d-%h%m:備份結束 >> backup_db.log

echo 「------ end backup db ------」

五、還原

1、全量還原

1)解壓tar包到目錄/backup/full/05-00-backup中

tar -xvf 05-00-backup.tar -c /backup/full/05-00-backup

2)停止mysql服務,並移除mysql目錄下的檔案,當然可以先打包備份下以防萬一

service mysqld stop

rm -rf /var/lib/mysql/*

mysql目錄並不一定是/var/lib/mysql/,可以執行innobackupex看下目錄所在

[root@localhost ~]# innobackupex

xtrabackup: recognized server arguments: --datadir=/var/lib/mysql

190116 16:37:40 innobackupex: missing argument

可以看到--datadir=/var/lib/mysql

innobackupex --defaults-file=/etc/my.cnf --user=root --password=hello12345 --copy-back /backup/full/05-00-backup

4)重新設定mysql資料夾及子檔案使用者群組為mysql

chown -r mysql:mysql /var/lib/mysql/

5)啟動mysql

service mysqld start

Mydumper MySQL資料庫備份工具

mydumper 是 mysql 資料庫伺服器備份工具,它比 mysql 自帶的 mysqldump 快很多。它還有在轉儲的同時獲取遠端伺服器二進位制日誌檔案的能力。開啟終端執行以下命令 sudo apt get install mydumper 語法 mydumper options 應用程式選項...

MySQL資料庫備份以及常用備份工具集合

一 資料庫備份種類 按照資料庫大小備份,有四種型別,分別應用於不同場合,下面簡要介紹一下 1.1完全備份 這是大多數人常用的方式,它可以備份整個資料庫,包含使用者表 系統表 索引 檢視和儲存過程等所有資料庫物件。但它需要花費更多的時間和空間,所以,一般推薦一周做一次完全備份。1.2事務日誌備份 事務...

資料庫備份

匯出方案 匯出自己的方案exp scott tiger oracle owner scott file d scott.dmp 成功匯入方案 imp userid retest retest oracle file e rem.dmp full y 匯出表 兩百萬資料 exp userid scot...