远程备份mysql到amazon的s3

之前有篇文章是讲述远程备份mysql数据库的,这次我们讲一下如何将数据库远程备份到amazon的上s3,amazon s3全称是Amazon Simple Storage Service,字面意思很好理解,主要是用来做存储的。我们可以将本地的数据库导出后打包,然后上传到这里。
首先使用这个s3我们需要s3ync来和amazon s3通信,s3ync又需要ruby的支持,因此我们需要安装ruby。
[shell]yum –y install ruby
//查看一下ruby是否成功安装
ruby –v
//下载安装s3sync
wget http://s3.amazonaws.com/ServEdge_pub/s3sync/s3sync.tar.gz
tar xvzf s3sync.tar.gz
rm s3sync.tar.gz
cd s3sync(certs的路径可以任意选择)
mkdir certs
cd certs
wget http://mirbsd.mirsolutions.de/cvs.cgi/~checkout~/src/etc/ssl.certs.shar
sh ssl.certs.shar
cd ..[/shell]
安装完之后我们就可以使用上传脚本了:
[shell]#!/bin/bash
cd /path/s3sync/
date=$(date +%Y%m%d)
#先优化一下表,你也可以分析一下表,将分析结果写入一个日志
mysqlcheck -o -uusername -ppasswd dbname
mysqldump -uusername -ppasswd dbname > /tmp/$date.sql
cd /tmp/back/
tar -zcPf dbname.${date}.tar.gz /tmp/$date.sql
#这个路径根据你解压的不同而已,例如你要是 su – root 登陆,可能是/root/s3sync
cd /path/s3sync/
//导入相关信息,这些从你的账户中可以获得
export AWS_ACCESS_KEY_ID=YOURID
export AWS_SECRET_ACCESS_KEY=YOURKEY
export SSL_CERT_DIR=/path/s3sync/certs
//将你的文件通过s3sync上传到到s3的指定bucket目录,这个目录可以在web控制台建立
ruby s3sync.rb -r –ssl /tmp/back/ new-bucket-0745e300:/bucketname
#ruby s3sync.rb -r –ssl –delete /tmp/back/ new-bucket-0745e300:/bucketname
#注意 –delete这个参数的作用覆盖上传,也就是相当于s3上的文件先被删除掉然后再上传新文件。大部分情况下不需要这个参数。
rm -rf /tmp/$date.sql /tmp/back/dbname.${date}.tar.gz[/shell]
这里有个地方需要注意的就是s3sync在你的服务器时间不正确的情况下会报错,类似:[shell]
S3 command failed:
list_bucket prefix /data max-keys 200 delimiter /
With result 403 Forbidden
S3 ERROR: #
s3sync.rb:290:in `+’: can’t convert nil into Array (TypeError)
from s3sync.rb:290:in `s3TreeRecurse’
from s3sync.rb:346:in `main’
from ./thread_generator.rb:79:in `call’
from ./thread_generator.rb:79:in `initialize’
from ./thread_generator.rb:76:in `new’
from ./thread_generator.rb:76:in `initialize’
from s3sync.rb:267:in `new’
from s3sync.rb:267:in `main’
from s3sync.rb:735[/shell]
因此如果遇到这个错误,请检查服务器时间,正确的设置一下即可。

Avatar photo

About Blackford

这是个最好的时代,这是个最坏的时代,这是个充满希望的春天,这是个令人绝望的冬天,我们前面什么都有,我们前面什么都没有。梦想,让我们一次次的走远,又一次次的回头,一个关于人生的梦想还在不断奔跑,带着喜悦和疼痛,不过一切才刚刚开始,并且直到今天也远远没有结束
This entry was posted in 架构运维 and tagged , , , , . Bookmark the permalink.

发表评论

电子邮件地址不会被公开。 必填项已用*标注