- 論壇徽章:
- 0
|
分享:mysql異地數(shù)據(jù)庫備份實例代碼
mysql現(xiàn)在應(yīng)用在操作系統(tǒng)中包括有l(wèi)inux系統(tǒng)與windows系統(tǒng),下面是多備份分享常用的兩種系統(tǒng)中實現(xiàn)mysql異地數(shù)據(jù)庫備份,有需要了解的朋友可參考。
windows的任務(wù)計劃定時執(zhí)行該文件。
文件內(nèi)容如下:
cd F:/MySQLBackup
f:
mysqldump -h ip -uusername -ppassworddbname>F:/MySQLBackup/PersonBackupMonday.sql
username:數(shù)據(jù)庫用戶
password:數(shù)據(jù)庫密碼
dbname:數(shù)據(jù)庫名稱
恢復(fù)數(shù)據(jù):可以把數(shù)據(jù)拷貝到數(shù)據(jù)庫的服務(wù)器中
C:/Documents and Settings/Administrator>mysql -u username –p
密碼:password
代碼如下復(fù)制代碼
mysql> use dbname;
mysql> source F:/MySQLBackup/PersonBackupMonday.sql
linux的中實現(xiàn)異地數(shù)據(jù)備份
在ubuntu測試通過。完成任務(wù)是本地備份?捎糜诜⻊(wù)器端。
#! /bin/bash
echo "backupmysql V1.0"
###date stamp###
datestamp=$(date +%Y-%m-%d)
###path ###
startdir=/home/user/mysqlbackup
###bakfile prefix###
fileprefix=sql
echo "sqldump is starting.."
###bakup command####
mysqldump -uuser -ppassword -l databasename > $startdir/$fileprefix$datestamp.sql
echo "########################################################################"
echo "sqldump is done"
###tar file ###
cd $startdir
echo "the current directory is :"
pwd
tar zcvf $startdir/$fileprefix$datestamp.tgz $fileprefix$datestamp.sql
###del the sql file###
rm -rf $startdir/$fileprefix$datestamp.sql
echo "#######################################################################"
echo "...... Done"
如果遠(yuǎn)程將備份取到異地,如下我寫的一個客戶端用例(測試環(huán)境redhat-as-5)。用sftp協(xié)議。
#! /bin/bash
sftp root@wwwdomaincom << EOF
cd /home/user/mysqlbackup
lcd /home/mysqlbackup/
-get fileprefix$(date +%Y-%m-%d).tgz
quit
EOF
注fileprefix$(date +%Y-%m-%d).tgz 與服務(wù)器端備份的相對應(yīng),
路徑為、home/user/mysqlbackup
get命令前加一個"-"以防止其執(zhí)行錯誤時sftp執(zhí)行過程被終止.
注:假設(shè)數(shù)據(jù)庫服務(wù)器名字為database,備份數(shù)據(jù)的服務(wù)器的名字backup,我們需要在backup服務(wù)器端運(yùn)行腳本來取得database服務(wù)器端的備份文件。
兩臺服務(wù)器采用sftp傳輸文件
但是現(xiàn)實shell中sftp登錄需要交互式的密碼,
為了在遠(yuǎn)端服務(wù)器采用非交互的sftp,我們可以選擇用密鑰的方法進(jìn)行驗證登錄權(quán)限。從而代替密碼驗證方式。
首先需要我們在backup生成密鑰,并將其公鑰上傳到database服務(wù)器。
因為shell腳本中使用sftp時必須用到密鑰對(公鑰和私鑰),
可以使用如下命令
$ssh-keygen -d
然后分發(fā)公鑰
為了使用密鑰,必須將公鑰分發(fā)到欲登錄的遠(yuǎn)程backup服務(wù)器上,
1.copy公鑰到欲登錄的遠(yuǎn)程服務(wù)器的遠(yuǎn)程用戶的家目錄下,例如:
cp id_dsa.pub到database:/home/user/.ssh/
若目錄/home/user/.ssh/不存在,需要我們手工建立。
公鑰文件更名為authorized_keys
修改公鑰文件的訪問權(quán)限
chmod 644 authorized_keys
其實數(shù)據(jù)異地備份并不難,看你怎么選擇了。手動操作和自動操作還是有差別的,使用多備份的數(shù)據(jù)庫備份操作起來很簡單,注冊賬號之后新建備份任務(wù),選擇數(shù)據(jù)庫備份。接著按照提示把主機(jī)ip或域名等填寫正確即可開始備份了。并且在備份途中多備份自動壓縮加密備份到多個云端平臺,需要時一鍵下載恢復(fù)即可。比起手動恢復(fù)輕松很多吧?
|
|