一尘不染

是否可以同时恢复 sql-server bak 和缩小日志?

sql-server

我们有一个客户的 bak 文件,我们已将其转移到我们的开发人员办公室进行问题调查。备份当前为 25GB,恢复的数据库大小大致相同,但需要 100GB 才能恢复。我相信这是因为数据库设置为具有 75GB 的事务日志大小。恢复数据库后,我们可以缩小日志文件,但有没有办法在恢复中做到这一点?


阅读 140

收藏
2022-11-11

共1个答案

一尘不染

通过将日志文件恢复到压缩文件夹,您可以在空间有限的情况下使用“永远不要在实时环境中执行此操作” 。尝试通过压缩现有文件夹并还原到它会导致错误,因此您必须使用符号链接作弊。

  1. 创建一个压缩文件夹D:\LogCompressed\
  2. 创建指向压缩文件夹的符号链接mklink /D /J D:\Log\ D:\LogCompressed\
  3. 使用指向的 ldf 文件恢复数据库D:\Log\
  4. 将日志文件缩小到合适的大小
  5. 分离数据库,将日志文件移动到未压缩的文件夹,附加

这是肮脏的,是作弊的,永远不要在现场做,但它有效。使用 32MB 日志文件对新创建的数据库进行快速测试显示它在压缩时占用了 330kb 磁盘,解压文件夹并且磁盘大小恢复到 32MB。

2022-11-11