易截截图软件、单文件、免安装、纯绿色、仅160KB

SQL Server备份事务日志结尾(Tail)

事务日志结尾经常提交数据库未备份的事务日志内容。基本上,每一次你执行事务日志备份时,你都在执行事务日志结尾的备份。
那为什么会这么设计呢?因为也许由于介质的损坏,当数据库已经不再可用时,麻烦就来了。如果下一个逻辑步骤正好就是要备份当前事务日志的话,可以应用这个备份来使数据库处于等待(Standby)状态。你甚至可以在数据库文件不可用的状态下使用NO_TRUNCATE来备份事务日志,例如:
BACKUP LOG AdventureWorks TO DISK = 'G:\Backups\AdventureWorks_log_tail.bak' WITH NO_TRUNCATE
然后,你可以使用备份日志的结果把处于等待状态的数据“带回”到发生错误之前的状态。
注意:这也是另一个让你把事务日志文件同数据文件放在不同磁盘上的原因。如果它们在同一个磁盘上的话,磁盘损坏了,你就不能从磁盘上再取到事务日志的备份了。
另一个问题是,当你的数据使用批量日志恢复模型时,当前的事务日志只包括最小化的日志事务。在这种情况下,一个事务日志备份需要存储数据页的修改。如果你的数据文件不可用了,你也就不能备份事务了,甚至是带NO_TRUNCATE选项也不行。
最后,如果你使用的是SQL Server 2005或以上版本,每次你要恢复的数据库都是已经存在的数据库,而且是完整或是批量日志恢复模型,而且事务日志包括活动事务的话,那会收到和下面类似的错误信息:
Server: Msg 3159, Level 16, State 1, Line 1
The tail of the log for the database "AdventureWorks" has not been backed up. Use BACKUP LOG WITH NORECOVERY to backup the log if it contains work you do not want to lose. Use the WITH REPLACE or WITH STOPAT clause of the RESTORE statement to just overwrite the contents of the log.
Server: Msg 3013, Level 16, State 1, Line 1
RESTORE DATABASE is terminating abnormally.
上面的信息就是SQL Server在告诉你,事务日志中有些日志记录还没有被备份。假如当前事务日志可以被丢弃的话,你可以使用REPLACE选项来让SQL Server忽略当前的事务日志。如下:
RESTORE DATABASE AdventureWorks from DISK = 'G:\Backups\AdventureWorks_full.bak' WITH REPLACE
本文翻译自sqlbackuprestore,更多精彩内容请浏览http://www.sqlbackuprestore.com


相关文档:

sql语句查询

sql语句查询
表结构是这样:
ID   姓名    性别
1    张三     男
2    王四     男
3    丽丽     女
4    张三     男
5    赵柳     男
6    高洁     男
7   ......

触发器获取修改表的SQL语句


/*
触发器获取SQL语句增量传输
功能:捕捉修改表的SQL语句
使用说明: 1、先新建一表手动写入主键信息或者唯一索引
   Create table prmary_key
   (tab_name varchar(255),
    key_name varchar(255))
   --此表仅在建立触发器时使用,建完所有触发器后 记得 ......

总结经典常用的SQL语句(1)

说明:复制表(只复制结构,源表名:a 新表名:b)  
  SQL: select * into b from a where 1<>1
  说明:拷贝表(拷贝数据,源表名:a 目标表名:b)  
  SQL: insert into b(a, b, c) select d,e,f from b;
  说明:显示文章、提交人和最后回复时间  
  SQL: select a.title,a.username,b ......

SQL分页方法

表中主键必须为标识列,[ID] int IDENTITY (1,1)
也可以使用联合主键 id+id2+id3+……
 
1.分页方案一:(利用Not In和SELECT TOP分页)
语句形式:  
SELECT TOP 10 *
from TestTable
WHERE (ID NOT IN
          (SELECT TOP 20 id
&nb ......

SQL Server中存储过程与函数的区别

SQL Server用户自定义函数和存储过程有类似的功能,都可以创建捆绑SQL语句,存储在server中供以后使用。这样能够极大地提高工作效率,通过以下的各种做法可以减少编程所需的时间:
   1 重复使用编程代码,减少编程开发时间。
   2 隐藏SQL细节,把SQL繁琐的工作留给数据库开发人员,而程序开发员则集中处理高级编程 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号