<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>惜分飞 &#187; 备份结尾日志</title>
	<atom:link href="https://www.xifenfei.com/tag/%e5%a4%87%e4%bb%bd%e7%bb%93%e5%b0%be%e6%97%a5%e5%bf%97/feed" rel="self" type="application/rss+xml" />
	<link>https://www.xifenfei.com</link>
	<description>提供7*24专业数据库(Oracle,SQL Server,MySQL,PostgreSQL等)恢复和技术支持@Tel:17813235971</description>
	<lastBuildDate>Thu, 29 Oct 2026 15:31:46 +0000</lastBuildDate>
	<language>zh-CN</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	
	<item>
		<title>模拟sql server故障备份完成恢复实现数据0丢失</title>
		<link>https://www.xifenfei.com/2025/12/sql-bak-0-lost-data.html</link>
		<comments>https://www.xifenfei.com/2025/12/sql-bak-0-lost-data.html#comments</comments>
		<pubDate>Fri, 12 Dec 2025 02:39:26 +0000</pubDate>
		<dc:creator><![CDATA[惜分飞]]></dc:creator>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[sql最后ldf备份]]></category>
		<category><![CDATA[备份结尾日志]]></category>

		<guid isPermaLink="false">https://www.xifenfei.com/?p=11833</guid>
		<description><![CDATA[联系：手机/微信(+86 17813235971) QQ(107644445)  &#8230; <a href="https://www.xifenfei.com/2025/12/sql-bak-0-lost-data.html">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<div id="xifenfeicopyright">
<p>联系：<a href="https://www.xifenfei.com/about_xifenfei" target="_blank">手机/微信(+86 17813235971)   QQ(107644445)</a><a target="_blank" href="http://wpa.qq.com/msgrd?v=3&#038;uin=107644445&#038;site=qq&#038;menu=yes"><img src="https://www.xifenfei.com/wp-content/themes/img/site_qq.jpg" alt="QQ咨询惜分飞" title="QQ咨询惜分飞"/></a></p>
<p>标题：<a href="https://www.xifenfei.com/2025/12/sql-bak-0-lost-data.html" target="_blank">模拟sql server故障备份完成恢复实现数据0丢失</a></p>
<p>作者：<a href="https://www.xifenfei.com" target="_blank">惜分飞</a>©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]</p>
</div>
<p>在sql server数据库中,使用备份还原,可以用来恢复的备份文件只能是全备、增量备份、事务日志备份,在很多情况下,sql server生产库异常,最后的事务日志没有来得及备份(但是ldf文件存在),这种情况下如何最大限度恢复数据实现数据0丢失,其实最重要的关键点就是对最后异常库的ldf文件的事务日志进行备份,在sql server里面给这个操作起了一个专业的词叫做:备份结尾日志（Tail of log).我这边通过一个实验来模拟整个操作过程.<br />
1. 创建一个库,恢复模式为完整<br />
<a href="https://www.xifenfei.com/wp-content/uploads/2025/12/s1.png"><img src="https://www.xifenfei.com/wp-content/uploads/2025/12/s1.png" alt="s1" width="1137" height="239" class="alignleft size-full wp-image-11834" /></a><br />
<hr />
2.创建表并插入一条记录,然后进行全备<br />
<a href="https://www.xifenfei.com/wp-content/uploads/2025/12/s2.png"><img src="https://www.xifenfei.com/wp-content/uploads/2025/12/s2.png" alt="s2" width="513" height="205" class="alignleft size-full wp-image-11836" /></a><br />
<a href="https://www.xifenfei.com/wp-content/uploads/2025/12/s3.png"><img src="https://www.xifenfei.com/wp-content/uploads/2025/12/s3.png" alt="s3" width="800" height="401" class="alignleft size-full wp-image-11835" /></a><br />
<hr />
3. 再插入一条记录,并做事务日志备份<br />
<a href="https://www.xifenfei.com/wp-content/uploads/2025/12/s4.png"><img src="https://www.xifenfei.com/wp-content/uploads/2025/12/s4.png" alt="s4" width="538" height="212" class="alignleft size-full wp-image-11838" /></a><br />
<a href="https://www.xifenfei.com/wp-content/uploads/2025/12/s5.png"><img src="https://www.xifenfei.com/wp-content/uploads/2025/12/s5.png" alt="s5" width="691" height="372" class="alignleft size-full wp-image-11837" /></a><br />
<hr />
4. 再插入一条记录,并在脱机情况下删除掉数据库的mdf文件（模拟故障）,在实际生产中如果原机器损坏,可以把在新机器上安装同版本sql,然后创建同名库,把ldf文件替换<br />
<a href="https://www.xifenfei.com/wp-content/uploads/2025/12/s6.png"><img src="https://www.xifenfei.com/wp-content/uploads/2025/12/s6.png" alt="s6" width="641" height="319" class="alignleft size-full wp-image-11839" /></a><br />
<a href="https://www.xifenfei.com/wp-content/uploads/2025/12/s8.png"><img src="https://www.xifenfei.com/wp-content/uploads/2025/12/s8.png" alt="s8" width="1139" height="454" class="alignleft size-full wp-image-11840" /></a><br />
<hr />
5. 进行最后的ldf(事务日志的备份),在sql server中这个备份操作叫做“备份结尾日志（Tail of log)”,先尝试直接使用图形化工具进行备份<br />
<a href="https://www.xifenfei.com/wp-content/uploads/2025/12/s9.png"><img src="https://www.xifenfei.com/wp-content/uploads/2025/12/s9.png" alt="s9" width="926" height="400" class="alignleft size-full wp-image-11841" /></a><br />
<hr />
6. 图形化这种情况无法直接备份,使用命令行形式成功备份<br />
<a href="https://www.xifenfei.com/wp-content/uploads/2025/12/s10.png"><img src="https://www.xifenfei.com/wp-content/uploads/2025/12/s10.png" alt="s10" width="615" height="245" class="alignleft size-full wp-image-11842" /></a><br />
<hr />
这里备份命令带WITH NORECOVERY、WITH NO_TRUNCATE、WITH CONTINUE_AFTER_ERROR相关内容官方描述:</p>
<pre class="brush: bash; title: ; notranslate">
如果数据库处于联机状态并且您计划对数据库执行还原操作，则从备份日志结尾开始。 
要避免联机数据库出错，必须使用 BACKUP Transact-SQL 语句的 WITH NORECOVERY 选项。

如果数据库处于脱机状态而无法启动，则需要还原数据库，从备份日志结尾开始。 
由于此时不会发生任何事务，因此请使用 WITH NO_TRUNCATE 选项。 
NO_TRUNCATE 实际上与仅复制事务日志备份相同。 由于此时不会发生任何事务，因此可以选择使用 WITH NORECOVERY。

如果数据库损坏，则尝试使用 WITH CONTINUE_AFTER_ERROR 语句的 BACKUP 选项执行结尾日志备份。

在损坏的数据库上，仅当日志文件未受损、数据库处于支持结尾日志备份的状态并且数据库不包含任何大容量日志更改时，
日志尾部备份才会成功。 如果无法创建结尾日志备份，则最新日志备份后提交的任何事务都将丢失。
</pre>
<p>7. 进行数据库还原操作(这里先删除了故障库和对应ldf文件),也可以还原成其他库名和不同路径,也可以通过命令行进行还原(全备和除最后一个事务日志之前的备份需要使用WITH NORECOVERY)<br />
<a href="https://www.xifenfei.com/wp-content/uploads/2025/12/s11.png"><img src="https://www.xifenfei.com/wp-content/uploads/2025/12/s11.png" alt="s11" width="857" height="399" class="alignleft size-full wp-image-11845" /></a><br />
<a href="https://www.xifenfei.com/wp-content/uploads/2025/12/s12.png"><img src="https://www.xifenfei.com/wp-content/uploads/2025/12/s12.png" alt="s12" width="852" height="379" class="alignleft size-full wp-image-11844" /></a><br />
<a href="https://www.xifenfei.com/wp-content/uploads/2025/12/s13.png"><img src="https://www.xifenfei.com/wp-content/uploads/2025/12/s13.png" alt="s13" width="494" height="273" class="alignleft size-full wp-image-11843" /></a><br />
<hr />
基于上述测试,完美的恢复故障之前的所有数据</p>
<div id="crp_related"><ul><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2025/10/linux7-8-single-user.html" rel="bookmark" class="crp_title">redhat系列7/8进入单用户模式</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2025/10/grubx64-efi-not-found.html" rel="bookmark" class="crp_title">Failed to open \EFI\redhat\grubx64.efi &#8211; Not Found 故障处理</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2025/12/ufs-recovery-lvm.html" rel="bookmark" class="crp_title">linux异常磁盘lvm恢复操作演示</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2025/01/fio-disk-destruction-recovery.html" rel="bookmark" class="crp_title">fio测试io,导致磁盘文件系统损坏故障恢复</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2025/01/ar8mswin1256.html" rel="bookmark" class="crp_title">中文环境显示AR8MSWIN1256（阿拉伯语字符集）</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2025/02/sql-server-recovering.html" rel="bookmark" class="crp_title">sql server数据库“正在恢复”故障处理</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2025/03/aix-disk-had-oracle-recovery.html" rel="bookmark" class="crp_title">aix磁盘损坏oracle数据库恢复</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2025/09/delete-df-some-overwrit-recovery.html" rel="bookmark" class="crp_title">删除数据库文件并部分覆盖情况下Oracle恢复</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2025/01/first-oracle-21c-recovery-ask.html" rel="bookmark" class="crp_title">第一例Oracle 21c恢复咨询</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2025/04/sql-tempdb-error.html" rel="bookmark" class="crp_title">可能是 tempdb 空间用尽或某个系统表不一致故障处理</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2025/12/orarecovery-suspend-oracle-open.html" rel="bookmark" class="crp_title">win平台挂起Oracle数据库启动进程</a></li><li style="list-style-type:decimal;font-size:11px;" ><a href="https://www.xifenfei.com/2025/11/mysql-drop-database-recovery.html" rel="bookmark" class="crp_title">mysql drop database 恢复思路</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>https://www.xifenfei.com/2025/12/sql-bak-0-lost-data.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
