mysql本地異地備份


1.所有數據庫一起備份

數據庫地址: 192.168.1.50

異地服務器地址: 192.168.1.202


192.168.1.50操作:

生成ssh秘鑰對

ssh-keygen


在192.168.1.202操作,確保192.168.1.50可以免密登錄1.202

scp root@192.168.1.50:/root/.ssh/id_rsa.pub /root/.ssh/

cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys

rm -rf /root/.ssh/id_rsa.pub


192.168.1.50操作:

確保免密連接沒問題

ssh 192.168.1.202

exit

2.備份腳本

mkdir -p /bak/mysqlbak

cd /bak/mysqlbak

vim bakmysql.sh

#!/bin/bash
#name:bakmysql.sh
#This is a mysql backup
#本地存放備份數據庫目錄
backupdir=/bak/mysqlbak
#如果文件夾不存在,創建文件夾
if [ ! -d $backupdir ]; then
   mkdir $backupdir
fi
#定義時間
time=` date +%Y%m%d%H `
#備份所有數據庫到本地
/usr/local/mysql/bin/mysqldump  -uroot -pGZml136 --opt --all-databases  > $backupdir/$time-all.sql

#備份單個數據庫

#mysqldump  -uroot –pGZml136  --databases auth  > $backupdir/$time-auth.sql
#只保留7天前的數據
find $backupdir -name "name_*.sql" -type f -mtime +7 -exec rm {} \; > /dev/null 2>&1
#把數據備份到異機
scp -r  $backupdir  root@192.168.1.202:/opt

chmod +x  bakmysql.sh

./bakmysql.sh

image

3.登錄數據庫刪除一個測試數據庫

mysql -uroot –p

mysql> show databases;

image

里面是有表有數據的

image

刪除 atuh 測試數據庫

4.還原數據庫

還原所有庫

mysql –uroot –pGZml136 < /bak/mysqlbak/2021122315-all.sql

還原單個庫

mysql –uroot –pGZml136 auth  < /bak/mysqlbak/2021122315-auth.sql


5.定時備份

vim /etc/crontab

30 2 * * * root  /bak/mysqlbak/bakmysql.sh

或者

crontab  -e

30 2 * * * /usr/bin/sh /bak/mysqlbak/bakmysql.sh > /dev/null 2>&1


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM