日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql远程备份工具_innobackupex实现MySQL远程备份

發布時間:2024/9/27 数据库 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql远程备份工具_innobackupex实现MySQL远程备份 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、了解innobackupex

1、mysqldump

mysql邏輯備份工具,作用于服務器本地,不需要額外安裝插件

可以單表備份,備份為sql文件形式、方便,在多個場景通用

可通過shell命令實現定時備份,但備份時如果用戶有操作,容易造成臟數據

將數據庫備份到服務器本地sql文件,屬于邏輯備份,不受數據庫引擎限制

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

單線程,數據量大時備份耗時較長,且鎖表容易引對不支持事務的表造成影響

2、mysqlhotcopy

需要安裝perl-DBD-mysql包,只能運行、備份在服務器本地

文件的快速備份,屬于物理備份,恢復時只需要復制文件到目錄下替換源文件

只支持MyISAM引擎的MySQL數據庫備份

3、innobackupex

屬于物理備份,需要安裝額外的插件,支持全量備份&增量備份

備份、恢復速度快,支持遠程、并發、限速備份,支持加密傳輸到本地

支持 MyISAM (會鎖表,似乎不支持增量?)跟 InnoDB

二、安裝

注意innobackup版本與mysql版本,innobackup2.2不支持mysql5.7+

image.png

2、開始安裝

[root@localhost ~]# yum -y install https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.12/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.12-1.el7.x86_64.rpm

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 "文件夾已經存在"

fi

cd crontab

date=`date +%Y%m%d`

echo `date +%Y%m%d-%H%M`:開始備份 >> backup_db.log

echo "------ start backup db ------"

ssh root@39.108.123.165 \ "mkdir /home/backup/database/`date +%Y%m%d`"

echo `date +%Y%m%d-%H%M`:創建目錄-$date >> backup_db.log

innobackupex --defaults-file=/etc/my.cnf --no-lock --user 'root' --password 'password123' --stream=tar ./ | ssh root@192.1168.2.100 \ "cat - > /home/backup/database/`date +%Y%m%d`/`date +%H-%M`-backup.tar"

echo `date +%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

3)開始恢復(apply-log),應用備份文件,回滾未提交的事務

innobackupex --defaults-file=/etc/my.cnf --user=root --password=hello12345 --use-memory=1G --apply-log /backup/full/05-00-backup

--use-memory=1G是為了加快速度,apply-log之后目標文件下的文件已經準備就緒

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

總結

以上是生活随笔為你收集整理的mysql远程备份工具_innobackupex实现MySQL远程备份的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。