关于ssms:SQL Server:如何附加/修复分离/损坏的数据库?

您所在的位置:网站首页 数据库附加数据库时出错 关于ssms:SQL Server:如何附加/修复分离/损坏的数据库?

关于ssms:SQL Server:如何附加/修复分离/损坏的数据库?

2023-04-24 02:10| 来源: 网络整理| 查看: 265

数据库服务器崩溃。我能够获取mdf和日志文件,并且试图将其安装在另一台服务器上。我没有备份,因为它是开发数据库。

当我尝试附加mdf和ldf文件时,Sql Server Management Studio给我这个错误:

1234567891011121314    TITLE: Microsoft SQL Server Management Studio     ------------------------------     Attach database failed for Server     ------------------------------     Could not redo log record (457:14202:19), for transaction ID (0:478674), on page (1:519205), database 'WSS_Content_5555' (database ID 15). Page: LSN = (370:463:113), type = 1. Log: OpCode = 2, context 2, PrevPageLSN: (298:40524:64).     Restore from a backup of the database, or repair the database.     During redoing of a logged operation in database 'WSS_Content_5555', an error occurred at log record ID (457:14202:19).     Typically, the specific failure is previously logged as an error in the Windows Event Log service.     Restore the database from a full backup, or repair the database.     Could not open new database 'WSS_Content_5555'.     CREATE DATABASE is aborted. (Microsoft SQL Server, Error: 3456)

我不知道如何修复数据库。养蜂之前是否需要将其连接?在这种情况下,如何附上它?

相关讨论 这有帮助吗? dba.stackexchange.com/questions/42762 / ...

您可以尝试解决方法。简而言之:

创建一个具有相同名称的虚拟数据库(可能需要先删除真实的数据库,然后保存原始文件或重命名)。 使虚拟机脱机(分离并(设置为脱机或停止SQL服务))。 删除虚拟文件,然后替换为真实的数据库文件。 尝试重新连接数据库

编辑

如OP注释所述,您还可能需要重建日志(如果丢失了交易)

ALTER DATABASE [MyDatabase]重建登录(NAME =" MyDatabaseLog",FILENAME =" D:\\\\ Microsoft SQL Server \\\\ YourDataPath \\\\ Data \\\\ Logfile.ldf")

并将数据库放置在多个用户日志中(关闭数据库可能需要您将其置于单次使用模式)

ALTER DATABASE [nomdb] SET MULTI_USER

有关所有血腥细节,请参阅《保罗·兰德尔》(Paul Randal Article)

(本文中的注释作者使用紧急模式来(尝试)修复事务日志)

我已经成功使用了它,但是根据损坏程度或其他细节,这可能是不可能的任务。考虑恢复备份。

请注意,这种特技在开发服务器中很好用,但是您确实需要计划(并深入研究)在生产服务器中进行灾难恢复。

相关讨论 感谢您的答复,该答复正在起作用,但Ranjana答复中有一些其他步骤,这些内容在Paul Randal Article中不存在。 缺少的步骤是7和8。ALTER DATABASE [MyDatabase ] REBUILD LOG ON (NAME=’MyDatabaseLog’,FILENAME=’D:\\Microsoft SQL Server\\YourDataPath\\Data\\Logfile.ldf’)和ALTER DATABASE [nomdb] SET MULTI_USER @Cyril谢谢,稍后将正确编辑问题。我也认为我在文章中看到了这一点,因为这是当您获得未完成事务的日志文件时可以使用的可选步骤(我猜)

您可以使用SQL数据库恢复工具修复

我有一个损坏的数据库文件(Diamond.mdf),无法附加到SQL Server DB中,并且包含大多数业务数据。我对错误一无所知,无法恢复损坏的数据库。我做了很多手动机制来克服此问题,但无法做到。

选择MDF文件:通过选择"选择",打开"选择数据库"对话框。 文件菜单中的数据库图标。在"选择数据库"对话框中,单击"确定"。 浏览。 出现打开对话框。浏览并选择所需的文件,然后 然后单击"打开",然后选择"包括已删除的记录"复选框以 在修复过程中恢复已删除的记录(如果找到)。 通过选择"选择数据库"图标,打开"选择数据库"对话框。 文件功能区。在"搜索"部分中,选择要搜索的驱动器 用于MDF文件。单击

搜索完成后,找到了MS SQL数据库文件列表 显示所选驱动器中的。选择您要修复的文件 此列表,然后单击修复按钮以开始修复过程。

搜索完成后,找到了MS SQL数据库文件列表 显示所选驱动器中的。选择您要修复的文件 此列表,然后单击修复按钮以开始修复过程。

这将修复损坏的mdf文件并加载数据库对象 在左侧窗格中。这样,我们可以查看所有存储的表 过程和所有对象。 成功完成修复过程后,Stellar Repair 对于MS SQL,显示损坏的数据库文件的预览。左窗格 显示项目列表(表,视图,同义词,默认值,数据类型 等等)在树状结构中,右上窗格显示 在树状视图和底部窗格中选择的项目的内容显示 消息日志。下面显示一个示例屏幕

修复过程完成后,单击"保存" 文件功能区。指定是否要保存修复的数据库 通过选择适当的单选以MDF,CSV,HTML或XLS格式显示 按钮。将修复的数据库另存为MDF将修复的数据库另存为 CSV,HTML或XLS如果要将修复的数据库另存为 MDF,您可以将数据库另存为新数据库,也可以 将数据插入现有的Live数据库。 要将修复的数据库另存为全新数据库,请按照下列步骤操作: 下面提到的步骤:选择"新建数据库"单选按钮。进入 服务器/实例名称。从中选择身份验证方法 用于登录服务器的下拉列表。 如果选择的身份验证方法是Windows身份验证,则您 无需输入任何用户名和密码。输入服务器用户名 和密码(如果所选的身份验证方法是SQL Server) 验证。

选择用于保存修复的MDF文件的目的地。点击保存 按钮保存修复的MS SQL数据库文件。一条消息是 该过程成功完成后显示。

修复已完全完成,我能够打开数据库 从SQL Server Db,如下所示。

注意:这不是免费工具。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3