免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1478 | 回复: 0
打印 上一主题 下一主题

分享:mysql异地数据库备份实例代码 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-01-10 14:12 |只看该作者 |倒序浏览
  分享: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@wwwdomaincom << 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或域名等填写正确即可开始备份了。并且在备份途中多备份自动压缩加密备份到多个云端平台,需要时一键下载恢复即可。比起手动恢复轻松很多吧?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP