数据库损坏

时间:2014-05-15 10:07:37

标签: c# linq-to-sql localdb

我打算将localdb用于下一个项目,并考虑进行数据库的旋转备份(它将正常分离,仅在软件运行时附加)。我正在考虑如何从备份中自动恢复。这需要我知道数据库是否已损坏。我无法找到关于这个主题的任何内容。

我的猜测是,人们不关心数据库完整性。备份和维护是IT的一项工作,SQL Express有许多工具。

我的数据库将在PC上本地化并且不大。我想说得很简单:

  • 检测数据库是否已损坏(如何?
  • 为用户提供从最新备份恢复数据库的选项(这很容易)

P.S。:也许我对sql express,localdb,linq-to-sql一无所知。这就是问题非常普遍的原因。


得到答案后,我会选择简单的选项:

  • 如果数据库无法打开且文件存在 - 数据库已损坏,提供还原(不存在 - 创建空数据库并进行初始设置);
  • 提供以下选项(如果用户注意到某些异常或在更新期间出现错误等):检查数据库DBCC CHECKDB (0, REPAIR_REBUILD)(最好先尝试)或恢复。

自动检测似乎很昂贵。而是保持每周/每次备份以进行手动恢复(如果这对于旧数据确实是必要的)并在每次运行时创建mdf文件备份以最小化到最大1天的丢失(在我的情况下对于数据库损坏等异常情况完全没问题) )。

1 个答案:

答案 0 :(得分:0)

  

我打算将localdb用于下一个项目

您的意思是您计划运行一个明确没有在生产环境中运行的数据库吗?

  

我在考虑如何从备份中自动恢复。这需要我知道是否   数据库已损坏。我无法找到关于这个主题的任何内容。

阅读SQL文档。 Backusp,还原都是使用标准SQL命令。完全容易做到。

  

我想让它变得非常简单:   检测数据库是否已损坏(如何?)

DBC Checkdb命令。但是,可能需要花费很多时间,具体取决于数据库。

  

也许我对sql express,localdb,linq-to-sql一无所知。

这可以通过阅读文档来解决。例如,我不会在任何生产中使用localdb。

阅读文档?它从第一行开始:

  

Microsoft SQL Server 2014 Express LocalDB是SQL Server Express的执行模式   针对程序开发人员。