恢复使用NO_LOG选项完成的MSSQL备份

我正在将数据库的副本从一台服务器编写到另一台服务器。 两者都运行SQL Server 2005,数据库处于完全恢复模式。

这些数据库上的事务日志可能会变得非常大,我不需要它们被复制到服务器上。 (即我不需要能够恢复到任何时间点,我只是想在执行备份时的数据库的副本)。 因此,如果可能的话,我想避免花费时间来执行日志备份,在慢速networking上复制和恢复。

我正在尝试使用“NO_LOG”备份选项来实现此目的。 这会产生备份正常,但是当我尝试将备份还原到目标服务器上时,数据库仍处于“还原”状态,无法访问。 我假设这是因为它期望我恢复事务日志。

有什么办法可以解决这个问题,并创build一个新的空的事务日志? 请注意,在执行备份(不包含NO_LOG)之前,我不能仅截断源服务器上的事务日志,因为它们很重要。

如果没有什么其他选项可以获得备份/恢复以外的数据库副本? 我已经尝试过将所有对象和数据脚本化的“传输”方法,但是由于对象数量太多,我的需求太慢了。

谢谢

编辑:这里是使用的命令

BACKUP DATABASE FrontEnd TO DISK='c:\somepath\abackup.bak' WITH NO_LOG, COPY_ONLY RESTORE DATABASE FrontEnd FROM Disk='c:\somepath\abackup.bak' WITH RECOVERY 

对这个命令的回应是

 Processed 1944 pages for database 'FrontEnd', file 'DimensionPrototype' on file 1. The database cannot be recovered because the log was not restored. This RESTORE statement successfully performed some actions, but the database could not be brought online because one or more RESTORE steps are needed. Previous messages indicate reasons why recovery cannot occur at this point. RESTORE DATABASE ... FILE=<name> successfully processed 1944 pages in 0.923 seconds (17.253 MB/sec). 

我期望最简单的方法是将您的前端数据库的事务日志缩回到其初始大小并备份数据库,然后将事务日志恢复到适当的大小。

你应该在一个安静的时间,在最小的交易活动发生。

您不需要使用NO_LOG和COPY_ONLY选项来完成此操作。 COPY_ONLY完全备份将足以恢复和恢复。 在还原数据库时,它将创build日志和数据文件,使其达到备份时的大小。 你无法绕过那个。 NO_LOG正在截断您的事务日志,因此在您运行此操作之后,您无法对主数据库执行时间点恢复。 如果您已发出此命令,则需要通过执行标准完全备份来启动备份集。

首先在这里似乎有一些误解,整个事务日志(.ldf文件)最终在您的备份文件。 不是这种情况。 SQL Server复制足够的事务日志,以便恢复操作可以恢复数据库。

无法还原数据库的原因是,您需要在刚刚还原的备份之上还原日志备份,以允许数据库执行恢复。 如果没有日志备份,SQL Server无法使数据库联机。 欲了解更多信息,请参阅此ms kb文章 。

这是没有办法的。 吸了起来,去买更多的磁盘空间。