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

相关文章

MySQL8.0设置redo缓存大小的实现

《MySQL8.0设置redo缓存大小的实现》本文主要在MySQL8.0.30及之后版本中使用innodb_redo_log_capacity参数在线更改redo缓存文件大小,下面就来介绍一下,具有一... mysql 8.0.30及之后版本可以使用innodb_redo_log_capacity参数来更改

Springboot中分析SQL性能的两种方式详解

《Springboot中分析SQL性能的两种方式详解》文章介绍了SQL性能分析的两种方式:MyBatis-Plus性能分析插件和p6spy框架,MyBatis-Plus插件配置简单,适用于开发和测试环... 目录SQL性能分析的两种方式:功能介绍实现方式:实现步骤:SQL性能分析的两种方式:功能介绍记录

使用 sql-research-assistant进行 SQL 数据库研究的实战指南(代码实现演示)

《使用sql-research-assistant进行SQL数据库研究的实战指南(代码实现演示)》本文介绍了sql-research-assistant工具,该工具基于LangChain框架,集... 目录技术背景介绍核心原理解析代码实现演示安装和配置项目集成LangSmith 配置(可选)启动服务应用场景

oracle DBMS_SQL.PARSE的使用方法和示例

《oracleDBMS_SQL.PARSE的使用方法和示例》DBMS_SQL是Oracle数据库中的一个强大包,用于动态构建和执行SQL语句,DBMS_SQL.PARSE过程解析SQL语句或PL/S... 目录语法示例注意事项DBMS_SQL 是 oracle 数据库中的一个强大包,它允许动态地构建和执行

SQL 中多表查询的常见连接方式详解

《SQL中多表查询的常见连接方式详解》本文介绍SQL中多表查询的常见连接方式,包括内连接(INNERJOIN)、左连接(LEFTJOIN)、右连接(RIGHTJOIN)、全外连接(FULLOUTER... 目录一、连接类型图表(ASCII 形式)二、前置代码(创建示例表)三、连接方式代码示例1. 内连接(I

在MySQL执行UPDATE语句时遇到的错误1175的解决方案

《在MySQL执行UPDATE语句时遇到的错误1175的解决方案》MySQL安全更新模式(SafeUpdateMode)限制了UPDATE和DELETE操作,要求使用WHERE子句时必须基于主键或索引... mysql 中遇到的 Error Code: 1175 是由于启用了 安全更新模式(Safe Upd

Spring Boot整合log4j2日志配置的详细教程

《SpringBoot整合log4j2日志配置的详细教程》:本文主要介绍SpringBoot项目中整合Log4j2日志框架的步骤和配置,包括常用日志框架的比较、配置参数介绍、Log4j2配置详解... 目录前言一、常用日志框架二、配置参数介绍1. 日志级别2. 输出形式3. 日志格式3.1 PatternL

轻松上手MYSQL之JSON函数实现高效数据查询与操作

《轻松上手MYSQL之JSON函数实现高效数据查询与操作》:本文主要介绍轻松上手MYSQL之JSON函数实现高效数据查询与操作的相关资料,MySQL提供了多个JSON函数,用于处理和查询JSON数... 目录一、jsON_EXTRACT 提取指定数据二、JSON_UNQUOTE 取消双引号三、JSON_KE

MySql死锁怎么排查的方法实现

《MySql死锁怎么排查的方法实现》本文主要介绍了MySql死锁怎么排查的方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录前言一、死锁排查方法1. 查看死锁日志方法 1:启用死锁日志输出方法 2:检查 mysql 错误

MySQL数据库函数之JSON_EXTRACT示例代码

《MySQL数据库函数之JSON_EXTRACT示例代码》:本文主要介绍MySQL数据库函数之JSON_EXTRACT的相关资料,JSON_EXTRACT()函数用于从JSON文档中提取值,支持对... 目录前言基本语法路径表达式示例示例 1: 提取简单值示例 2: 提取嵌套值示例 3: 提取数组中的值注意