mysql 異地和本地備份方法

mysql異地備份方法

兩臺linux服務器,一臺199.20.30.222(mysql服務器),一臺199.20.30.226(與mysql互通的一臺server)

思路:mysql本地做一份備份;226Server做一份同步備份,腳本放在222上面定時任務也設置在222上

(1)mysql本地備份:

#!/bin/sh
#mysql_backup
DATE=`date +%Y%m%d`
/opt/mysql/bin/mysqldump --opt jsweb -u root   > /opt/mysqlbackup/$DATE.sql

(2)將本地備份同步到遠端226上面:

#!/bin/bash
#date:2013/09/24
#function:The script is used copying mysqlbackup to 226
DATE=`date +%Y%m%d`
scp /opt/mysqlbackup/$DATE.sql [email protected]:/data/2013backup/mysql/

(3)222上面設置定時任務:

vim/etc/crontable OR crontable -e
30 1  *  *  *  /bin/sh /home/jiaoben/backup.sh      ===============每天1:30執行
30 3  *  *  *  /bin/sh /home/jiaoben/scp.sh         ===============每天3:30執行

注意:兩個linux之間相互拷貝文件,使用scp工具必須輸入遠端密碼,所以在進行(2)時,需要規避輸入密碼,否則自動備份到remote不會生效,

本人採用的方法:使兩個服務器互相信任,執行scp時,就可以免輸入密碼。

ssh-keygen -t rsa
cd /root/.ssh/
scp id_rsa.pub [email protected]:/root/ssh/
ssh [email protected]
mv /root/.ssh/id_isa_pub /root/.ssh/authorized_key

時間過長備份的mysql就需要定時清理

腳本如下所示

#!/bin/bash
num='ls -al /opt/mysqlbackup/*.sql | wc -l'
if[ $num -gt 10];then
  find /opt/mysqlbackup -name *.sql -mtime +10 -exec rm -fr {}\;
fi

亦或


find /opt/mysqlbackup/ -type f -name \*.sql -mtime +10 -exec rm -fr {} \;
find /opt/mysqlbackup/ -type f -name "*.sql" -mtime +10 -exec rm -fr {} \;

經過測試okj_0057.gif


mysql本地備份方法:

1: 使用像Navicat for MySQL的工具直接備份,圖形化很簡單。

2:命令行備份:  

 

mysqldump -u root -p choeur>/home/choeur2014.sql  
mysqldump -h192.168.1.2 -uroot -p newjswebdb > /home/newjswebdb.sql







發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章