一、了解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...