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

2024-04-12 14:58

本文主要是介绍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 Server备份事务日志结尾(Tail)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/897460

相关文章

MySQL 中的 CAST 函数详解及常见用法

《MySQL中的CAST函数详解及常见用法》CAST函数是MySQL中用于数据类型转换的重要函数,它允许你将一个值从一种数据类型转换为另一种数据类型,本文给大家介绍MySQL中的CAST... 目录mysql 中的 CAST 函数详解一、基本语法二、支持的数据类型三、常见用法示例1. 字符串转数字2. 数字

Mysql实现范围分区表(新增、删除、重组、查看)

《Mysql实现范围分区表(新增、删除、重组、查看)》MySQL分区表的四种类型(范围、哈希、列表、键值),主要介绍了范围分区的创建、查询、添加、删除及重组织操作,具有一定的参考价值,感兴趣的可以了解... 目录一、mysql分区表分类二、范围分区(Range Partitioning1、新建分区表:2、分

MySQL 定时新增分区的实现示例

《MySQL定时新增分区的实现示例》本文主要介绍了通过存储过程和定时任务实现MySQL分区的自动创建,解决大数据量下手动维护的繁琐问题,具有一定的参考价值,感兴趣的可以了解一下... mysql创建好分区之后,有时候会需要自动创建分区。比如,一些表数据量非常大,有些数据是热点数据,按照日期分区MululbU

SQL Server配置管理器无法打开的四种解决方法

《SQLServer配置管理器无法打开的四种解决方法》本文总结了SQLServer配置管理器无法打开的四种解决方法,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录方法一:桌面图标进入方法二:运行窗口进入检查版本号对照表php方法三:查找文件路径方法四:检查 S

MySQL 删除数据详解(最新整理)

《MySQL删除数据详解(最新整理)》:本文主要介绍MySQL删除数据的相关知识,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录一、前言二、mysql 中的三种删除方式1.DELETE语句✅ 基本语法: 示例:2.TRUNCATE语句✅ 基本语

MySQL中查找重复值的实现

《MySQL中查找重复值的实现》查找重复值是一项常见需求,比如在数据清理、数据分析、数据质量检查等场景下,我们常常需要找出表中某列或多列的重复值,具有一定的参考价值,感兴趣的可以了解一下... 目录技术背景实现步骤方法一:使用GROUP BY和HAVING子句方法二:仅返回重复值方法三:返回完整记录方法四:

从入门到精通MySQL联合查询

《从入门到精通MySQL联合查询》:本文主要介绍从入门到精通MySQL联合查询,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下... 目录摘要1. 多表联合查询时mysql内部原理2. 内连接3. 外连接4. 自连接5. 子查询6. 合并查询7. 插入查询结果摘要前面我们学习了数据库设计时要满

Spring事务传播机制最佳实践

《Spring事务传播机制最佳实践》Spring的事务传播机制为我们提供了优雅的解决方案,本文将带您深入理解这一机制,掌握不同场景下的最佳实践,感兴趣的朋友一起看看吧... 目录1. 什么是事务传播行为2. Spring支持的七种事务传播行为2.1 REQUIRED(默认)2.2 SUPPORTS2

怎样通过分析GC日志来定位Java进程的内存问题

《怎样通过分析GC日志来定位Java进程的内存问题》:本文主要介绍怎样通过分析GC日志来定位Java进程的内存问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、GC 日志基础配置1. 启用详细 GC 日志2. 不同收集器的日志格式二、关键指标与分析维度1.

解读GC日志中的各项指标用法

《解读GC日志中的各项指标用法》:本文主要介绍GC日志中的各项指标用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、基础 GC 日志格式(以 G1 为例)1. Minor GC 日志2. Full GC 日志二、关键指标解析1. GC 类型与触发原因2. 堆