Cas*_*per 2 sql-server amazon-rds
我尝试从存储在 S3 存储桶中的 bak 文件到 RDS SQL Server Web 版本运行恢复查询,但不断收到此错误:
[2017-09-13 20:30:22.227] 由于任务失败或并发 RESTORE_DB 请求而中止任务。[2017-09-13 20:30:22.287] 磁盘上没有足够的空间来执行恢复数据库操作。
bak文件有77GB,DB有2TB,为什么还不够呢?
这是来自 AWS 文档的查询:
exec msdb.dbo.rds_restore_database
@restore_db_name='database_name',
@s3_arn_to_restore_from='arn:aws:s3:::bucket_name/file_name_and_extension';
Run Code Online (Sandbox Code Playgroud)
磁盘上没有足够的空间来执行恢复数据库操作。
...
bak文件有77GB,DB有2TB,为什么还不够呢?
您需要2Tb空间才能恢复此备份。
事实上,该restore操作将重建您原来的 2Tb 数据库。
Backup仅备份数据,不备份空白空间。如果您的备份只有 77Gb,而不是compressed这意味着您的原始数据库只有 77Gb 的数据(甚至更少,因为备份也包含一定数量的日志)。
任何数据库都由数据文件和日志文件组成,如果您的数据库约为 2Tb,其中只有 77Gb 的数据,则意味着它有巨大的日志文件。我认为这是在full恢复模式下,有人没有定期进行日志备份(或者甚至根本没有进行任何日志备份!!)
因此,您应该检查一下原始数据库,simple如果您不需要时间点恢复并且不进行日志备份,则将恢复模式更改为,或者,如果您确实需要full恢复模式,则应该更频繁地备份日志。
定期进行日志备份或更改恢复模式将simple允许您将shrink日志调整到合理的大小,从那时起您将不再需要 2Gb 的空间来恢复它