我尝试从存储在S3存储桶中的bak文件运行还原查询到RDS SQL Server Web版,并且不断收到此错误:
[2017-09-13 20:30:22.227]由于任务失败或并发RESTORE_DB请求而中止了任务。 [2017-09-13 20:30:22.287]磁盘上没有足够的空间来执行恢复数据库操作。
bak文件是77 GB,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';
答案 0 :(得分:1)
磁盘上没有足够的空间来执行还原数据库 operaton。
...
bak文件是77 GB,DB有2TB,为什么还没有 足够?
您需要2Tb
个空间才能恢复此备份。
事实是restore
操作将重建原始数据库2Tb。
Backup
仅备份数据,而不是空白空间。如果您的备份仅为77Gb而不是compressed
,这意味着原始数据库只有77Gb的数据(甚至更少,因为备份也包含一定数量的日志)。 / p>
任何数据库都包含数据文件和日志文件,如果您的数据库大约是2Tb且只有77Gb的数据,则表示它具有巨大的日志文件。我认为它在full
恢复模式中,并且有人不进行常规日志备份(甚至根本没有进行任何日志备份!)
因此,如果您不需要时间点恢复并且不进行日志备份,或者如果您确实需要simple
,那么您应该查看原始数据库,将恢复模型更改为full
恢复模型,您应该更频繁地备份日志。
定期日志备份或将恢复模式更改为simple
将允许您将shrink
日志设置为合理的大小,从那一刻起,您将不再需要2Gb的空间来恢复它