分享:mysql异地数据库备份实例代码
mysql现在应用在操作系统中包括有linux系统与windows系统,下面是多备份分享常用的两种系统中实现mysql异地数据库备份,有需要了解的朋友可参考。
windows的任务计划定时执行该文件。
文件内容如下:
cd F:/MySQLBackup
f:
mysqldump -h ip -uusername -ppassworddbname>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 root@www.domain.com << 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
其实数据异地备份并不难,看你怎么选择了。手动操作和自动操作还是有差别的,使用多备份的数据库备份操作起来很简单,注册账号之后新建备份任务,选择数据库备份。接着按照提示把主机ip或域名等填写正确即可开始备份了。并且在备份途中多备份自动压缩加密备份到多个云端平台,需要时一键下载恢复即可。比起手动恢复轻松很多吧?
转载于:https://blog.51cto.com/9673367/1601616