如何使用 Cron 选项卡每晚进行 MySQL 数据库备份并将其放入 Amazon s3 中?

发布于 2024-11-10 04:21:08 字数 274 浏览 2 评论 0原文

我在 Rackspace 中有一台服务器,并且我已经在每天晚上运行一个 cron 作业来处理一些东西......(一些与帐户相关的操作 - 每个午夜都会向我发送电子邮件)。我的应用程序是在 groovy on grails 中。现在我想在每个午夜备份 mysql 数据库(称为 myfleet)并将该文件放入 Amezon S3 中。我怎样才能做到这一点?我需要编写任何 java 或 groovy 文件来处理它吗?或者可以从 Linux 盒子本身完成吗?我已经在 Amezon S3 中拥有帐户(存储桶名称为fleetBucket)

I have got one server in Rackspace and i'm already running a cron job evry day night to process something...(some account related operation- that will send me email every mid night). my application is in groovy on grails. now i want to take mysql database (called myfleet) backup on every mid night and put that file in Amezon S3 . how can i do that? do i need to write any java or groovy file to process that? or is it can be done from Linux box itself? i have already got account in Amezon S3 (bucket name is fleetBucket)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

木緿 2024-11-17 04:21:08

AWS CLI 工具 将 mysqldump 的输出直接通过管道传送到 S3:

mysqldump -h [db_hostname] -u [db_user] -p[db_passwd] [databasename] | aws s3 cp - s3://[s3_bucketname]/[mysqldump_filename]

您还可以使用 STDOUT 和 示例:

mysqldump -h localhost -u db_user -ppassword test-database | aws s3 cp - s3://database-mysqldump-bucket/test-database-dump.sql

mysqldump 命令默认输出到 STDOUT。使用 - 作为 aws s3 cp 的输入参数告诉 AWS CLI 工具使用 STDIN 作为输入。

You can also use STDOUT and the AWS CLI tool to pipe the output of your mysqldump straight to S3:

mysqldump -h [db_hostname] -u [db_user] -p[db_passwd] [databasename] | aws s3 cp - s3://[s3_bucketname]/[mysqldump_filename]

For example:

mysqldump -h localhost -u db_user -ppassword test-database | aws s3 cp - s3://database-mysqldump-bucket/test-database-dump.sql

The mysqldump command outputs to STDOUT by default. Using - as the input argument for aws s3 cp tells the AWS CLI tool to use STDIN for the input.

初懵 2024-11-17 04:21:08
mysqldump --host=$HOST --user=$USER --password=$PASSWORD $DB_NAME --routines --single-transaction | gzip -9 | aws s3 cp - s3://bucket/database/filename.sql.gz

将直接将文件存储到s3。

mysqldump --host=$HOST --user=$USER --password=$PASSWORD $DB_NAME --routines --single-transaction | gzip -9 | aws s3 cp - s3://bucket/database/filename.sql.gz

will directly store file to s3.

小傻瓜 2024-11-17 04:21:08

应该非常简单:
- 使用 mysqldump 备份数据库

mysqldump -u [uname] -p[pass] myfleet | gzip -9 > myfleet.sql.gz  

- 使用命令行客户端将转储文件上传到 S3(例如 http://s3tools.org/s3cmd
s3cmd put myfleet.sql.gz s3:///myfleet.sql.gz

只需将其添加到您的 cron 作业中(您可能希望对转储文件使用某种编号方案,以防您想保留多个版本)。

Should be pretty straightforward:
- backup your database using mysqldump

mysqldump -u [uname] -p[pass] myfleet | gzip -9 > myfleet.sql.gz  

- upload your dump file to S3 using a command line client (e.g. http://s3tools.org/s3cmd:
s3cmd put myfleet.sql.gz s3://<bucketname>/myfleet.sql.gz

Just add this to your cron job (you might want to use some kind of numbering scheme for the dump files, in case you want to keep several versions).

人│生佛魔见 2024-11-17 04:21:08

如果源数据库位于 AWS 上并且类型为 Aurora.Mysql,您可以使用类似 See

SELECT * FROM employees INTO OUTFILE S3 's3-us-west-2://aurora-select-into-s3-pdx/sample_employee_data';

。 Integrating.SaveIntoS3.html" rel="nofollow noreferrer">https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Integrating.SaveIntoS3.html 了解详细信息。

If the source DB is on AWS and is of type Aurora.Mysql you can backup directly to S3 with a command like

SELECT * FROM employees INTO OUTFILE S3 's3-us-west-2://aurora-select-into-s3-pdx/sample_employee_data';

See https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Integrating.SaveIntoS3.html for details.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文