为了进行备份,我创build了一个脚本,将所有需要备份的文件夹归档,并将其发送到S3(通过s3cmd),然后在上载完成后将其删除。 我正在寻找一种方法来避免创build存档,然后删除它,因为我没有足够的空间临时存储存档! 可能吗? 这是我的脚本: DBLIST=`mysql -uMYSQL_USERNAME -pMYSQL_PASSWORD –events -ANe"SELECT GROUP_CONCAT(schema_name) FROM information_schema.schemata WHERE schema_name NOT IN ('information_schema','performance_schema')" | sed 's/,/ /g'` MYSQLDUMP_OPTIONS="-uMYSQL_USERNAME -pMYSQL_PASSWORD –single-transaction –routines –triggers" BACKUP_DEST="/home/backup/db" for DB in `echo "${DBLIST}"` do mysqldump ${MYSQLDUMP_OPTIONS} ${DB} | gzip -f > ${BACKUP_DEST}/${DB}.sql.gz & done wait tar -czvf /home/backup/db2/`date +\%G-\%m-\%d`_db.tar.gz ${BACKUP_DEST} s3cmd –reduced-redundancy put -r /home/backup/db2/ s3://MY-S3-BUCKET/ […]
当您在pg_dump上指定压缩时,是在服务器端发生压缩,以便传输更快或是进行压缩的pg_dump? 谢谢
我最近被要求把我们的数据库的一个.bak文件发送到客户端,并通过重新索引100%填充因子(以确保没有空插槽)的所有表,并调整事务日志的大小,并“缩小”文件仍然很大(在7zipping之前)。 我无法find有关在.bak任何地方发生索引数据的信息。 所以,问题是,.bak文件已经排除了索引数据吗? 或者有没有一种方法,剥夺所有索引数据之前采取.bak,只是在恢复重build? 我曾尝试寻找类似的职位发布之前,道歉,如果这已被问及/回答。 是否有一套已知的步骤来制作最小的可恢复的.bak文件 a)不关心transcations(你在单用户模式下,所有的交易都提交)。 b)不关心可以重build的索引/统计数据 c)不关心恢复需要多长时间。
早上好。 我们在Amazon EC2上有一个SQL框的服务,就像这个问题所build议的 ,我们使用EBS来存储数据……问题是,设置存储的最佳方式是什么? 目前,在开发阶段,我们有4个10Gb的“磁盘”(对于下一个应该足够了,可能会更晚些看)在RAID 0(这使我担心…)。 我们每隔3个小时对SQL盒进行一次备份,但是我担心RAID 0和丢失EBS卷,导致我们丢失了几个小时的数据。 我只是想知道,鉴于我们正在运行Windows,这是什么最好的做法? RAID 1? 10? 5? 别的东西? 谢谢。
我正在尝试使用mongodump工具来每日备份我的mongodb服务器(启用auth)。 mongodump提供了两个参数来设置凭据: -u [ –username ] arg username -p [ –password ] arg password 不幸的是,他们没有提供任何参数来从标准input读取密码。 因此,每次运行这个命令时,服务器上的每个人都可以读取密码(例如,通过使用ps aux)。 我find的唯一解决方法是停止数据库,并使用–dbpath参数直接访问数据库文件。 有没有其他的解决scheme,让我备份mongodb数据库而不停止服务器,没有“发布”我的密码? 我正在用MongoDB 1.4.4-3使用Debian 6.0.5和amd64。
关于: 在新的挂载点下重新挂载MySQL 在移动挂载点之前备份MySQL数据的最佳方法是什么? 这可以用MySQL运行吗? 一个简单的rsyncclosures到另一台服务器的工作?
在我的一个mysql从服务器上,我写了一个每日运行的脚本,它停止了slave,2)取得一个db转储,3)再次启动slave,4)encryption它,5)将它复制到我的s3桶。 我正在使用aws-cli将转储复制到s3-bucket。 这里的问题是,如果有人访问服务器,他可以从存储桶中删除转储,因为aws-cli授予对存储桶的更新/删除访问权限。 如何将转储复制到某处(最好是s3),如果有人访问数据库服务器,则不能删除转储。 当我想到我能想到的是,我需要一个不同的服务器上的一个服务器接受转储作为input,然后将其保存到s3。 此服务不接受任何其他types的请求。 这样我为db备份添加了一个额外的安全层。 问题是我不知道任何这样的系统。 更一般的问题,人们通常如何保护他们的数据。 如果有人访问我的主数据库,即使通过SQL注入,他可以导致所有复制截断或删除。 在这种情况下,需要进行某种常规备份。 在注入的情况下,备份是安全的,但在访问服务器的情况下不是。
我们存储用PGP Command Line 9.7.0encryption的数据库备份。 文件看起来像2009.bak.pgp 这里是用来备份这些文件的命令行: pgp –encrypt F:\2009.bak –recipient [email protected] –encrypt-to-self –input-cleanup off –temp-dir F:\TEMP\ -v 所有这些备份恢复正常这个命令 pgp –decrypt F:\2009.bak.pgp –passphrase "18_characters_password" –temp-dir F:\Temp -v –output F:\2009.bak 所有这些,除了一个,失败,这个错误: Decoding file F:\2009.bak.pgp… 32% (2.1GB) F:\2009.bak.pgp:decrypt (3090:operation failed, error decompressing data) Wiping file F:\Temp\pgp-5532-0.tmp… 1% 我也尝试用这个命令在Linux机器上解密这个文件: gpg -v <2009.bak.pgp> 2009.bak 但是也出现这个错误: gpg: Fatal: zlib inflate problem: […]
我在Amazon RDS上有一个相当大的postgres数据库(压缩时大约9GB),有时我们需要复制它,并在我们的本地机器上做一些testing。 做一个数据库转储(pg_dump)并下载它太简单了,老实说,我们试过了几次。 有一个简单的方法来以聪明的方式获取数据库的一部分? 例如,只能得到最近10天的更改,然后我们可以将它们与本地数据库合并,也可以将数据块分块等等。 我确定我不是第一个有这种需求的人,但是找不到一个体面的方法或教程来解释最好的方法。 谢谢!
是否可以在两台PostgreSQL服务器之间直接传输PostgreSQL数据库? 我目前正在使用pg_dump将整个数据库序列化到文件,下载文件,然后使用pg_restore将数据库加载到开发服务器上,从而设置了我的生产数据库的“开发”版本。 但是,随着数据库的不断增长,这个过程现在需要数小时。 有没有办法简单地“连接”两台服务器,并直接传输数据库,而不是这个冗长的转储/下载/恢复过程?