log backup chain被打断后是不是需要从一个完整备份重新开始?

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:

般我们的理解是logbackup chain被打破后一定需要一个完整备份然后才能开始新的日志备份,其实不一定需要完整备份,差异备份也是可以的。

 

 

首先我们先做个测试:创建数据库做完整备份和日志备份,然后将恢复模式变成简单恢复模式。

 

 

CREATEDATABASE LogChainTest;
GO
ALTER DATABASE LogChainTest SET RECOVERY FULL;
GO
BACKUP DATABASE LogChainTest TO DISK = 'D:\MSSQL\LogChainTest.bck' WITH INIT;
GO
BACKUP LOG LogChainTest TO DISK = 'D:\MSSQL\LogChainTest_log1.bck' WITH INIT;
GO
ALTER DATABASE LogChainTest SET RECOVERY SIMPLE;
GO
ALTER DATABASE LogChainTest SET RECOVERY FULL;
GO

 

 

然后再开始一个新的Log备份就会出现下面的错误:

 

 

BACKUP LOGLogChainTest TO DISK = 'D:\MSSQL\LogChainTest_log2.bck' WITH INIT;
GO

Msg 4214,Level 16, State 1, Line 1
BACKUP LOG cannot be performed because there is no current database backup.
Msg 3013, Level 16, State 1, Line 1
BACKUP LOG is terminating abnormally.

 

 

我们都知道,数据库日志备份包含的是从上次日志备份以来发生的交易。当我们将数据库模式更改为简单以后,SQL Server就会认为这次的日志备份不会包含所有的日志交易,所以日志备份无法完成。

 

 

现在我们做一个差异备份然后再开始做日志备份就会成功了:

 

 

BACKUPDATABASE LogChainTest TO DISK = 'D:\MSSQL\LogChainTest_Diff1.bck' WITH INIT,DIFFERENTIAL;
GO
BACKUP LOG LogChainTest TO DISK = 'D:\MSSQL\LogChainTest_log2.bck' WITH INIT;
GO

 

 

做完日志备份之后我做了恢复测试完全没有问题。

 

 

这个功能针对大数据库是非常有用的,如果Logbackup chain被打破后,就可以直接选择差异备份,而不需要执行一次完整备份,这样可以节省很多时间和资源。


本文转自 lzf328 51CTO博客,原文链接:

http://blog.51cto.com/lzf328/1032127


相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
SQL 关系型数据库 MySQL
第19章 数据库备份与恢复【4.日志与备份篇】【MySQL高级】2
第19章 数据库备份与恢复【4.日志与备份篇】【MySQL高级】2
225 0
|
缓存 关系型数据库 MySQL
第18章 主从复制【4.日志与备份篇】【MySQL高级】1
第18章 主从复制【4.日志与备份篇】【MySQL高级】1
155 0
|
8月前
|
Kubernetes Shell Linux
linux|shell脚本|有趣的知识---格式化输出日志和脚本调试方法以及kubernetes集群核心服务重启和集群证书备份脚本
linux|shell脚本|有趣的知识---格式化输出日志和脚本调试方法以及kubernetes集群核心服务重启和集群证书备份脚本
244 0
|
7月前
|
存储 SQL 关系型数据库
|
5月前
|
数据库 Java 监控
Struts 2 日志管理化身神秘魔法师,洞察应用运行乾坤,演绎奇幻篇章!
【8月更文挑战第31天】在软件开发中,了解应用运行状况至关重要。日志管理作为 Struts 2 应用的关键组件,记录着每个动作和决策,如同监控摄像头,帮助我们迅速定位问题、分析性能和使用情况,为优化提供依据。Struts 2 支持多种日志框架(如 Log4j、Logback),便于配置日志级别、格式和输出位置。通过在 Action 类中添加日志记录,我们能在开发过程中获取详细信息,及时发现并解决问题。合理配置日志不仅有助于调试,还能分析用户行为,提升应用性能和稳定性。
67 0
|
5月前
|
SQL 安全 测试技术
【数据守护者必备】SQL数据备份与恢复策略全解析:从全量到日志备份,手把手教你确保企业信息万无一失的实战技巧!
【8月更文挑战第31天】数据库是企业核心业务数据的基石,为防止硬件故障、软件错误或人为失误导致的数据丢失,制定可靠的备份与恢复策略至关重要。本文通过一个在线购物平台的案例,详细介绍了使用 SQL Server 进行全量备份、差异备份及事务日志备份的方法,并演示了如何利用 SQL Server Agent 实现自动化备份任务。此外,还提供了数据恢复的具体步骤和测试建议,确保数据安全与业务连续性。
237 0
|
6月前
|
存储 SQL Oracle
关系型数据库Oracle归档日志备份
【7月更文挑战第19天】
80 5
|
7月前
|
存储 运维 关系型数据库
|
7月前
|
Shell Linux
linux shell 脚本实现:根据文件内容中的每行分隔符放入数组,根据规则打印日志并重新创建目录 备份文件
linux shell 脚本实现:根据文件内容中的每行分隔符放入数组,根据规则打印日志并重新创建目录 备份文件
57 0
|
8月前
|
弹性计算 运维 Shell