我发现数据库位于
Suspected Mode ......
我怎样才能从该模式中恢复它。
答案1
查看 SQL Server 错误日志,找出数据库进入可疑模式的原因。根据数据库进入可疑模式的原因,可以决定下一步的行动方案。
最简单的方法是从良好的备份中恢复。
答案2
首先查看企业管理器 (EM) 中的 SQL Server 日志。要查看该日志,请启动 EM,然后从数据库服务器...管理...SQL Server 日志向下钻取。应该有多个日志,以当前日志开头,然后是 6 个或更多存档日志。
查看所有最近的错误日志。这里将提示数据库被标记为可疑的原因。您需要先修复问题(例如文件丢失、权限问题、硬件错误等)
然后,当问题已解决并且您确定数据没有问题,或者您没有备份,所以您没有什么可失去的,然后将数据库状态更改为正常并重新启动 SQL Server。
要更改数据库状态,我们将使用以下存储过程:sp_resetstatus。步骤如下:
A。
USE master GO sp_configure 'allow updates', 1 GO RECONFIGURE WITH OVERRIDE GO
b.
sp_resetstatus GO -- Example: sp_resetstatus ‘Washington’
该过程运行后,立即禁用对系统表的更新:
sp_configure 'allow updates', 0 GO RECONFIGURE WITH OVERRIDE GO
停止并重新启动所有 SQL Server 服务
如果数据库仍然回到可疑模式,并且您无法修复原始问题,并且您没有最近的备份,那么您可以通过将数据库置于紧急模式来从中获取信息。如果这样做,请使用 DTS 提取数据/对象并重建数据库。请注意,数据可能已损坏或事务不一致。将数据库置于紧急模式后,除了从中提取数据外,您将无法使用此数据库实例!
发出以下命令将数据库置于紧急模式:
A。
USE master GO sp_configure 'allow updates', 1 GO RECONFIGURE WITH OVERRIDE GO
b.
UPDATE master..sysdatabases SET status = 32768 WHERE name = 'DatabaseName'
停止并重新启动所有 SQL Server 服务。
现在,我们已准备好从损坏的数据库中的表中提取所有数据。请记住,某些表可能已损坏,因此您可能需要使用各种 T-SQL 语句来提取数据。首先尝试 DTS...
以下是将数据从损坏的数据库导出到新数据库所需的步骤:
a. 创建一个新的生产数据库或临时数据库,以便有一个地方可以从损坏的数据库中导出任何数据。
b. 进入 EM 并深入到“数据转换服务”...“本地包”,启动 DTS 操作。
c. 右键单击打开一个新的 DTS 包...
d. 当 DTS 打开时,从连接图标中选择“复制 SQL Server 对象任务”。输入描述,如“导出损坏的数据”。从下拉列表中输入 SA/pass 组合以及损坏的数据库。
e. 选择“目标”选项卡。从下拉菜单中输入 SA/pass 组合以及 PRODUCTION 数据库。
f. 选择“复制”选项卡。取消选中“创建目标对象”框。取消选中“复制所有对象”框,然后单击“选择对象”按钮。这将打开“选择对象”屏幕。
g. 仅勾选“显示所有表格”,如上所示。然后勾选需要导出的每个表格。如果需要导出所有表格,请单击“全选”按钮。单击“确定”。
** 如果要恢复所有对象,请选中所有对象,然后单击“全选”按钮。这将抓取所有可能的对象。
h. 再次单击“确定”,我们就完成了此任务的创建。现在我们通过单击菜单栏上的绿色箭头来执行包。
恢复数据问题:将数据恢复到生产数据库取决于当时的时间。如果是在“热门”时段,即游戏高峰时段,请在游戏淡季或游戏日结束时恢复数据!
如果要致电 Microsoft 技术支持,建议准备好日志文件,以便通过电子邮件发送给技术人员进行审查。完成此操作的过程如下:
转到 SQL Server 安装文件夹下的 Bin 文件夹。在此文件夹中,您将找到一个名为 SQLDIAG.exe 的应用程序。
执行 SQLDIAG.exe。此应用程序“假定”将所有日志文件压缩到 SQL Server 安装文件夹下的 Log 文件夹中名为 SQLDIAG.txt 的文件中。此操作对我们来说不起作用。
我们直接进入 SQL Server 的日志文件夹,并使用 PKZip 压缩文件。然后我们直接通过电子邮件将它们发送给技术人员。