分享: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或域名等填写正确即可开始备份了。并且在备份途中多备份自动压缩加密备份到多个云端平台,需要时一键下载恢复即可。比起手动恢复轻松很多吧?