MS SQL Server 2008 Standard,ShadowProtect Server Edition 4.0.0.5885 - 星期五,我们的客户发现数据库中缺少记录。我发现星期四晚上的SQL备份包含了所有丢失的记录。出于多种原因排除了用户错误。
我在MS SQL Server事件查看器的“应用程序”列表中找不到任何异常。 我们正在运行ShadowProtect Server,以便每小时对2个服务器驱动器进行映像备份。同样的事件发生在4个月前。
ShadowProtect运行数据库的每小时备份。
有一种理论认为,运行每小时差异备份的ShadowProtect Server 4磁盘映像软件会在星期五上午9:00备份时以某种方式导致数据丢失。我不知道任何其他活动。除了正常的用户访问之外,在正常的星期四晚上11点数据库备份和星期五发现的丢失记录之间。
谢谢你的帮助。你可以想象,客户非常关注。
答案 0 :(得分:0)
如果您想知道删除记录的内容或删除记录的时间,数据库应设置审计表,其中包括用户名和更改日期。然后,您可以查看审核日志,以查看何时删除了reords以及由谁或什么进程删除。包含业务关键信息的所有数据库都应具有审计功能。不幸的是,事件发生后为时已晚,无法通过审核找出是谁做的。您可能能够找到某个第三方产品来查看事务日志,并且至少可以找出删除发生的时间,如果不是谁。您还应该每15分钟左右进行一次事务日志备份。
我不熟悉ShadowProtect服务器,但缺少的数据听起来就像运行了一个脚本(并且cacade delete已打开),似乎不太可能是ShadowProtect服务器。如果它是干扰的话,我会期待一种更随机的变化,这种变化可以通过SQL查询轻松完成。你允许直接访问你的桌子吗?您可能会有人试图破坏数据或隐藏欺诈活动。对数据的威胁并非始终来自外部源或事件日志中的应用程序。谁有权访问生产中删除数据库中的数据?我怀疑一个心怀不满的员工。
答案 1 :(得分:0)
我们从来没有找到丢失记录的原因。我们在另一个MS SQL Server实例中重新安装了数据库,将数据库升级到新版本,并将数据从旧数据库迁移到新数据库。这似乎解决了这个问题。
答案 2 :(得分:0)
我在VM上有类似的问题。该错误是指向数据库的,但SQL Server实际上并未运行。由于某些未知原因,SQL Server已停止。似乎VM已重新启动,并且该服务未自动启动。 使用Windows管理工具启动服务后,服务器重新启动并且数据库在那里