萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> mysql異地數據庫備份實例代碼

mysql異地數據庫備份實例代碼

mysql現在應用在操作系統中包括有linux系統與windows系統,下面我來給大家在常用的兩種系統中實現mysql異地數據庫備份,有需要了解的朋友可參考。

windows的任務計劃定時執行該文件。

文件內容如下:

 代碼如下 復制代碼

cd F:/MySQLBackup

f:

mysqldump  -h ip  -uusername  -ppassword dbname>F:/MySQLBackup/PersonBackupMonday.sql

username:數據庫用戶

password:數據庫密碼

dbname:數據庫名稱

恢復數據:可以把數據拷貝到數據庫的服務器中

 代碼如下 復制代碼

C:/Documents and Settings/Administrator>mysql -u username –p

密碼:password

 代碼如下 復制代碼

mysql> use  dbname;

mysql> source  F:/MySQLBackup/PersonBackupMonday.sql

linux的中實現異地數據備份

在ubuntu測試通過。完成任務是本地備份。可用於服務器端。

 代碼如下 復制代碼

 
#! /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"


如果遠程將備份取到異地,如下我寫的一個客戶端用例(測試環境redhat-as-5)。用sftp協議。

 代碼如下 復制代碼

 
#! /bin/bash

sftp [email protected] << EOF

cd /home/user/mysqlbackup

lcd /home/mysqlbackup/

-get fileprefix$(date +%Y-%m-%d).tgz

quit

EOF


注fileprefix$(date +%Y-%m-%d).tgz 與服務器端備份的相對應,

路徑為、home/user/mysqlbackup

get命令前加一個"-"以防止其執行錯誤時sftp執行過程被終止.

注:假設數據庫服務器名字為database,備份數據的服務器的名字backup,我們需要在backup服務器端運行腳本來取得database服務器端的備份文件。

兩台服務器采用sftp傳輸文件

但是現實shell中sftp登錄需要交互式的密碼,

為了在遠端服務器采用非交互的sftp,我們可以選擇用密鑰的方法進行驗證登錄權限。從而代替密碼驗證方式。

首先需要我們在backup生成密鑰,並將其公鑰上傳到database服務器。

因為shell腳本中使用sftp時必須用到密鑰對(公鑰和私鑰),

可以使用如下命令

$ssh-keygen -d

然後分發公鑰

為了使用密鑰,必須將公鑰分發到欲登錄的遠程backup服務器上,

1.copy公鑰到欲登錄的遠程服務器的遠程用戶的家目錄下,例如:

cp id_dsa.pub到database:/home/user/.ssh/

若目錄/home/user/.ssh/不存在,需要我們手工建立。

公鑰文件更名為authorized_keys

修改公鑰文件的訪問權限

chmod 644 authorized_keys

copyright © 萬盛學電腦網 all rights reserved