首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重建事务日志

重建事务日志
EN

Database Administration用户
提问于 2018-12-19 11:37:59
回答 2查看 556关注 0票数 0

同事意外删除了Server 2016实例的所有事务日志(SQLServer/Logs/*.ldf文件)。现在我们不能再启动Server服务了。我们尝试使用恢复数据工具(https://www.cgsecurity.org/wiki/Undelete_文件_从…_NTFS_使用_TestDisk),但并不是所有的文件都在那里。

下面是Windows事件日志中显示的错误:

是否有任何恢复/重建日志的方法或任何其他使其再次工作的过程?

谢谢

EN

回答 2

Database Administration用户

回答已采纳

发布于 2018-12-20 20:59:58

首先,我想知道同事是如何删除日志文件的。删除发生时,SQL实例必须没有处于运行状态。在实例运行时,无法删除该文件。您将得到错误:

幸运的是,如果它是您的master数据库,那么事务日志中可能没有全部的信息。大多数登录和元数据不会更改,而且很可能已经写入磁盘上的.mdf

另一件事是,您正在运行SQL Server 2016,如果您不知道,它具有系统数据库模板。这些是在第一次安装期间创建的模板空白数据库。你只需更换它们,你就会启动并运行。唯一的警告是,您将没有任何用户元数据。

模板可以在BINN文件夹中找到,例如:

代码语言:javascript
复制
C:\Program Files\Microsoft SQL Server\MSSQL13.SQL2K16\MSSQL\Binn\Templates

然后,您将立即启动并运行您的实例。如果需要的话,您可以立即修复您的主数据库。还可以使用SQL数据库恢复工具来恢复系统数据库或用户数据库。

票数 1
EN

Database Administration用户

发布于 2018-12-19 11:49:28

是否有任何恢复/重建日志的方法或任何其他使其再次工作的过程?我们没有备份。

这取决于您如何定义“再次工作”,因为日志保存了使数据库一致的信息。这意味着,即使数据库恢复并运行,也不能保证数据库中的数据是正确的。因此,也许这对你来说“可行”,但如果它是类似应付款,这可能不是一个解决方案。

您可以为用户数据库提供这是一次机会,但同样地,YMMV和数据不应该被信任。如果有重新创建数据库和导入数据的方法,那将是最好的方法。

对于系统数据库,最简单的方法是从媒体中重建他们。由于master在这个实例中是一个问题,您将丢失诸如登录(如果是SQL与其关联的密码)、链接服务器、任何实例范围的证书等信息。

如果您备份并运行,我将实现备份,并锁定服务器和权限。

票数 3
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/225367

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档