SQL SERVER 2000下NO_TRUNCATE
在SQL SERVER 2005下,NO_TRUNCATE相当于COPY_ONLY和CONTINUE_AFTER_ERROR。使用NO_TRUNCATE备份日志,不会截断日志(仅相当于拷贝日志),也可以在数据库发生错误时使用NO_TRUNCATE备份尾日志。
但是在SQL SERVER 2000下,情况就不同了。
1. 尾日志备份
在SQL SERVER 2000下,NO_TRUNCATE只能在数据库出错时备份尾日志,而且只能是SQL SERVER 2000标准版才行,其他版本是不能进行尾日志备份的。当然我们可以将其他版本的日志文件拷贝至标准版下备份尾日志。
正因为只有标准版才能备份尾日志,所以很多人一直以为尾日志备份是从SQL SERVER 2005才开始出现的。
参照知识库(http://support.microsoft.com/kb/253817/en-us )可以知道允许进行尾日志备份的版本有:
Microsoft SQL Server 7.0 Standard Edition
Microsoft SQL Server 2000 Standard Edition
Microsoft SQL Server 2000 64-bit Edition
Microsoft SQL Server 2005 Standard Edition
Microsoft SQL Server 2005 Express Edition
Microsoft SQL Server 2005 Developer Edition
Microsoft SQL Server 2005 Enterprise Edition
Microsoft SQL Server 2005 Workgroup Edition
2. 截断日志
在SQL SERVER 2000下,NO_TRUNCATE是没有拷贝日志(即不截断日志)的功能的(不要被NO_TRUNCATE名字所误导)。所以如果使用NO_TRUNCATE备份日志,日志是会截断的。
因为SQL SERVER 2000下没有COPY_ONLY参数,所以SQL SERVER 2000下根本就没有只拷贝而不截断日志的功能的。
参考文献:
http://www.karaszi.com/SQLServer/info_restore_no_truncate.asp