AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题 / 256345
Accepted
RGO
RGO
Asked: 2019-12-28 00:04:36 +0800 CST2019-12-28 00:04:36 +0800 CST 2019-12-28 00:04:36 +0800 CST

SQL Server - 文件时间戳不变,那么备份的是什么?

  • 772

请参阅下面的快照,其中显示了我管理下的一个 SQL Server 实例的所有数据文件以及事务日志文件的时间戳。这是一个生产实例。

在此处输入图像描述

今天是 2019 年 12 月 27 日。但是,如您所见,所有时间戳都显示了更早的时间。

事实是,我在几天前的 12 月 24 日拍摄了这张快照。但是,正如我今天检查的那样,情况仍然没有改变。

上面的快照取自用户数据库。我还检查了驻留在单独驱动器上的系统数据库,并拍摄了文件时间戳的快照,如下所示:

在此处输入图像描述

这些数据库当然不是超级活跃的。但是,我确信有交易一直在运行。此外,我查看了其中一些的“架构更改历史记录”报告,并且可以确认我们的维护工作直到昨天 12 月 26 日一直在工作和重建索引。

数据库都处于完全恢复模式(尽管这可能不相关 - 只是需要提及的事实)。操作系统是 Windows NT 6.0 (= Windows Server 2007),SQL Server 版本是 2008 SP3。操作系统和 SQL 服务都将在明年第一季度升级。从上面的快照中也可以看出,数据文件和日志文件都驻留在同一个磁盘驱动器和文件夹中,我“继承”的这个服务器的配置肯定不是最好的。因此,希望在几个月后进行的计划升级/迁移活动期间,所有这些都将得到解决。

现在我的问题是为什么这些文件的时间戳没有得到更新,尽管数据库仍然处于活动状态?(即使手动运行 Checkpoint 也没有改变任何东西)。然后,如果事务日志文件没有得到更新,备份是否良好且可靠?它们真的包含它们应该包含的记录吗?

sql-server sql-server-2008-r2
  • 1 1 个回答
  • 1994 Views

1 个回答

  • Voted
  1. Best Answer
    Josh Darnell
    2019-12-28T03:47:18+08:002019-12-28T03:47:18+08:00

    在回答您的主要问题(“正在备份什么”)时,所有应该是 ? 更严重的是,您不能使用这些时间戳作为数据库文件中发生更改的标志。SQL Server 不保证数据库文件的修改日期将如何更改或更新。

    这里有一篇有趣的博客文章,它试图找到在 MDF 文件上更新日期修改戳的时间和方式的模式:

    SQL Server 数据库文件 - 修改日期

    我认为他们的观察与您的情况一致:对数据文件的正常写入不会更新日期修改戳。看起来增长事件(手动或自动)会更新该值,就像重新启动服务(或任何其他可能“打开”或“关闭”数据库 - 使用自动关闭功能,显式使数据库脱机等)一样。

    我预计 2019 年 19 月 12 日晚上 9:52 对应于 Windows 或 SQL Server 重新启动,这就是几个日期/时间同步的方式。

    然而,同样,这种行为是无证的。我们注意到的任何模式都可能随时改变,或者有意想不到的边缘情况。

    对于驻留在 NTFS 文件系统上的 SQL Server 数据文件,这适用:

    关于文件时间戳的唯一保证是在关闭进行更改的句柄时正确反映文件时间。

    不过,需要明确的是,这是 Windows 提供的保证。我们不一定知道 SQL Server 在每种情况下如何创建和销毁文件句柄。

    David Browne(微软顶级人物)在评论中提到了这一点,了解这一点很有用:

    SQL Server 在运行时保持数据库文件打开,以提高性能并防止其他进程更改它们。所以属性不会在每次文件写入时都改变。

    • 11

相关问题

  • SQL Server - 使用聚集索引时如何存储数据页

  • 我需要为每种类型的查询使用单独的索引,还是一个多列索引可以工作?

  • 什么时候应该使用唯一约束而不是唯一索引?

  • 死锁的主要原因是什么,可以预防吗?

  • 如何确定是否需要或需要索引

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve