SQL Server 中的 NUL 设备/NIL设备

SQL Server 中的 NUL 设备/NIL设备


在 SQL Server 中,有一个特殊的设备叫做 NUL(注意,不是 NULL),它类似于文件系统中的“黑洞”。NUL 设备类似于 Linux 系统中的 /dev/null,所有写入到 NUL 的数据都会被直接丢弃。

我们可以利用这个特性,在不需要实际生成备份文件的情况下进行测试或模拟备份操作。

 


完整备份的常规操作
通常情况下,我们对某个数据库进行完整备份时,可以使用以下最简单的 SQL 语句:

BACKUP DATABASE AdventureWorks2012 TO DISK = N'AdventureWorks2012.BAK'

执行后,SQL Server 会显示备份的结果

已为数据库 'AdventureWorks2012',文件 'AdventureWorks2012' (位于文件 1 上)处理了 24328 页。
已为数据库 'AdventureWorks2012',文件 'AdventureWorks2012_log' (位于文件 1 上)处理了 2 页。
BACKUP DATABASE 成功处理了 24330 页,花费 4.103 秒(46.326 MB/秒)。



备份文件将存储在实例的默认备份路径中。可以通过以下 SQL 查询来确认该路径:

DECLARE @BackupDest VARCHAR(200)
EXEC master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'BackupDirectory', @BackupDest OUTPUT;
SELECT @BackupDest;


使用 NUL 设备进行备份
如果不想实际生成备份文件,但需要测试备份操作或了解备份时间等,可以将备份数据写入 NUL 设备。
SQL Server 支持两种方式将备份写入 NUL 设备:使用 NUL 或 NUL:。

BACKUP DATABASE AdventureWorks2012 TO DISK = N'NUL' 
GO
BACKUP DATABASE AdventureWorks2012 TO DISK = N'NUL:'
GO

执行后,SQL Server 同样会显示备份的结果

已为数据库 'AdventureWorks2012',文件 'AdventureWorks2012' (位于文件 1 上)处理了 24328 页。
已为数据库 'AdventureWorks2012',文件 'AdventureWorks2012_log' (位于文件 1 上)处理了 2 页。
BACKUP DATABASE 成功处理了 24330 页,花费 1.499 秒(126.803 MB/秒)。


NUL 设备还可以通过备份判断磁盘的读吞吐量,即使你备份至多个NUL设备。备份至NUL设备主要是读取数据,写数据并没有写入具体的磁盘中。

BACKUP DATABASE AdventureWorks2012 TO DISK = N'NUL',DISK = N'NUL',DISK = N'NUL',DISK = N'NUL' ,DISK = N'NUL'

 

 


 
总结
备份至 NUL 设备的主要用途包括:
1、备份吞吐量验证:NUL 设备可以用来测试数据库的读 IOPS 性能,帮助验证备份时的读写吞吐量。
2、没有日志备份导致磁盘满:如果日志文件长期未备份而变得非常大导致磁盘空间不足,可以通过将日志备份写入 NUL 设备来快速释放日志空间,之后再进行日志文件收缩或者设置简单模式收缩文件。
3、在高可用配置:特别是 SQL Server2016或者以上版本, AlwaysOn AG 场景中,使用 automatic seeding 功能配置可用性数据库前需要备份,可将数据库备份至NUL设备后再初始化同步。
4、COPY_ONLY 备份:在不希望中断备份链(不truncate日志文件里的日志)但需要在生产环境中进行测试时,可以使用 COPY_ONLY 参数来创建临时备份,避免对生产环境的备份链产生影响。

需要注意的是,备份至 NUL 设备时的读操作对性能的影响与实际备份相似,因此在生产环境中进行测试时,仍需谨慎评估其影响。



参考文章
https://www.modb.pro/db/452106
https://blog.csdn.net/lnotime/article/details/104847946
https://cloud.tencent.com.cn/developer/information/%E6%AD%A3%E5%9C%A8%E8%BF%98%E5%8E%9F%E6%95%B0%E6%8D%AE%E5%BA%93SQL%20Server%20-%E6%95%B0%E6%8D%AE%E4%B8%BAnull%E4%B8%8D%E8%83%BD%E5%AF%B9null%E5%80%BC%E8%B0%83%E7%94%A8%E6%AD%A4%E6%96%B9%E6%B3%95%E6%88%96%E5%B1%9E%E6%80%A7
 


 

本文版权归作者所有,未经作者同意不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/796864.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PbootCMS调用内容中换行符br不换行怎么办

在 PbootCMS 中,如果你在后台输入的文字包含换行符(如 <br>),但在前台显示时这些换行符被直接输出为文本(如 <br>),可以通过解码标签来解决这个问题。 解决方案 在需要输出的标签中加入 decode=1 参数,这样可以将 HTML 特殊字符解码为实际的 HTML 标签,从…

PbootCMS提交留言成功后跳转到指定的网址

要实现在 PbootCMS 中留言表单提交成功后跳转到指定网址,可以通过修改相关文件来实现。以下是详细的步骤: 步骤 1:定位相关文件 首先找到包含留言表单提交逻辑的相关文件。通常情况下,留言表单的提交逻辑会在 /core/function/helper.php 文件中。 步骤 2:修改提交成功后的…

PbootCMS判断一个字段为空的时候调用另外一个字段

在 PbootCMS 中,如果你想在一个字段为空时调用另一个字段,可以使用条件判断标签来实现。下面是一个具体的示例,展示了如何在某个字段为空时调用另一个字段。 示例场景 假设你有一个字段 ext_icos 用于存储图片,还有一个字段 ico 作为备用的缩略图。当 ext_icos 字段不为空时…

人员睡岗检测识别系统

人员睡岗检测识别系统是基于现场监控摄像头视频采集现场的监控图像画面,人员睡岗检测识别系统运用ai智能神经网络算法和机器学习技术,替代人的眼睛,全天候不间断监控人员办公区域,自动对视频监控画面人员睡岗离岗行为进行分析识别,为安全工作护航。该系统应用已有的监控摄…

PbootCMS生成的sitemap.xml中增加tag标签链接

打开/apps/home/model/SitemapModel.php,在78行后面增加个指定分类标签调用代码 // 指定分类标签调用 public function getSortTags($scode) {$join = array(array(ay_content_sort b,a.scode=b.scode,LEFT),array(ay_model c,b.mcode=c.mcode,LEFT));$scode_arr = array();if…

PbootCMS模板提交留言成功后跳转到指定的网址

要对 PbootCMS 内容页的“上一篇”和“下一篇”的样式进行修改,可以通过以下几个步骤来实现: 步骤 1:定位模板文件 首先找到包含“上一篇”和“下一篇”链接的模板文件。这些链接通常位于内容页的底部,模板文件可能命名为 content.html 或其他类似名称。 步骤 2:修改模板中…

加油站卸油行为监控视频识别系统

加油站卸油行为监控视频识别系统依据监控摄像机采集加油站现场视频,依据机器视觉视频分析技术,分析和识别视频图像。加油站卸油行为监控视频识别系统智能识别职工没戴工帽、不穿工作服、烟火(抽烟)、不按规定操作等违规行为。系统会及时报警语音提醒,将报警信息回传给后台…

加油站视频监控分析系统

加油站视频监控分析系统借助加油站已经有的监控摄像头开展视频监控分析,利用机器视觉AI优化算法24小时不间断智能识别加油站工作人员、现场设备、加油站日常环境下的危害因素,比如现场特殊区域和险区域接打手机、抽烟、职工睡岗离岗、关键设施缺失、烟火等违规行为和异常状态…

Dubbo框架的1个核心设计点

Java领域要说让我最服气的RPC框架当属Dubbo,原因有许多,但是最吸引我的还是它把远程调用这个事情设计得很有艺术。Java领域要说让我最服气的RPC框架当属Dubbo,原因有许多,但是最吸引我的还是它把远程调用这个事情设计得很有艺术。1、Dubbo优点较多,我只钟情其一 1.1、优点…

读构建可扩展分布式系统:方法与实践03分布式系统要点

分布式系统要点1. 通信基础 1.1. 每个分布式系统都包含通过网络进行通信的软件组件 1.2. 硬件1.2.1. 全球互联网就是一台异构机器,由不同类型的网络通信通道和设备组成,它们每秒将数百万条消息通过网络传送到预定目的地1.2.2. 对于单个光纤链路,可以提供每秒超过70 Tbps的总…

Windows Server 2025 中文版、英文版下载 (Inside Preview, updated Sep 2024) - 下一代 Windows 11 Server

Windows Server 2025 中文版、英文版下载 (Inside Preview, updated Sep 2024) - 下一代 Windows 11 ServerWindows Server 2025 中文版、英文版下载 (Inside Preview, updated Sep 2024) - 下一代 Windows 11 Server Windows Server 2025 LTSC 正式版发布在即 请访问原文链接:…

国内第三方支付工作原理

国内第三方支付工作原理