快速,持续,稳定,傻瓜式
支持Mysql,Sqlserver数据同步

如何获取有关备份的信息

在线QQ客服:1922638

专业的SQL Server、MySQL数据库同步软件

当您需要还原但不确定100%备份文件的内容时,该怎么办?前往标题。格兰特·弗里奇(Grant Fritchey)解释了如何在这些庞大的信息存储中找到有用的信息,并确保您恢复正确的文件。

您正在备份系统。您正在监视进程和磁盘空间。您甚至正在验证备份,因此您感觉自己处在一个不错的位置。

你是。

然后,那一天是您遇到紧急情况的时候。您需要进行备份,但是…哪个完整备份可与这组日志备份一起使用?无论如何,此备份文件上有什么?是不是其中一个系统配置为在单个文件中放置多个备份?您需要哪一个?你怎么知道

您甚至可能处在有人从谁知道的地方递给您备份的情况下,他们想要从中运行还原。您如何获得有关备份内容的信息?

就个人而言,我将从备份头开始。备份头中存储着大量信息。其中一些对于您的过程绝对至关重要。其中有些是晦涩的,只是偶尔有用。其中有些是完全无关紧要的。让我们探索我们能得到什么。

检索备份信息

我们将看三个不同的命令:LABELONLYHEADERONLYFILELISTONLY。这三个文件会读取备份文件中存储的有关备份的信息,并为您全部显示。诀窍是从备份中运行RESTORE操作以获取信息。让我们从LABELONLY开始:

标签

我的备份文件中的输出如下:

媒体名称 空值
MediaSetId C78024B4-4FD7-4141-98F4-685C8B127B14
家庭人数 1个
家庭序列号 1个
MediaFamilyId B61166AA-0000-0000-0000-000000000000
MediaSequenceNumber 1个
MediaLabelPresent 0
媒体描述 空值
软体名称 Microsoft SQL服务器
SoftwareVendorId 4608
MediaDate 2012-02-01 14:31:09.000
MirrorCount 1个
被压缩 0

这样可以很好地概述此备份文件上的内容。其中一些是您永远不会使用的,但是大多数都是有用的。我们将从第一栏的顶部开始逐步地浏览信息。如果您为备份提供这样的名称:

然后,您将在第一列中看到该信息。它使您有机会为备份定义媒体集(即,明确说明特定备份文件属于哪个备份集),并通过MEDIADESCRIPTION提供文件描述。如果您在同一介质(即磁带或磁盘)中有多个备份(我通常不这样做),则可以通过NAME选项将备份本身标记为一件事,并通过MEDIANAME选项分别描述介质。

MediaSetID是一个GUID唯一定义这一套。你可以用它做什么?我不确定。但是,它也将记录在msdb中,因此您可以将备份链接到特定服务器,例如:

如果您同时对多个位置执行BACKUP操作,则FamilyCountFamilySequenceNumberMediaFamilyIdMediaSequenceNumber都会派上用场。如果您这样做,那么这些地点将构成一个家庭。由于FamilyCount会大于1,因此您可以判断特定文件是否具有系列。如果有,则已经准备好该系列的GUID,因此可以在还原过程中查找更多信息。毫不奇怪,MediaSequenceNumber会告诉您正在查看的备份是否是第一,第二,第三等的备份。

MediaLabelPresent是一个布尔值,它告诉您是否使用了磁带备份标签。如果没有,您可以像我上面所做的那样提供MediaDescription

SoftwareNameSoftwareVendorId来自与写入备份的备份软件……除了我无法找到证据表明,这种变化。我已经从几个不同的供应商工具运行备份,并且始终保持不变。我还搜索了Boogle(或者是Ging吗?),找不到除上面显示的值以外的任何证据。我会说,总的来说,除非我看到其他证据,否则这是没有用的。

最后几个很简单,但很有用。MediaDate是您创建文件的时间。一点也不混淆。镜子ç ‘mount是你运行该备份文件时,无论是用于镜像的指示。最后,sCompressed说是否使用SQL Server压缩来压缩此备份文件。很高兴知道是否需要将备份还原到没有压缩的系统。

标签总结

简而言之,LABELONLY为您提供了有关备份本身的许多有用信息,这些信息将在您管理备份时派上用场。但是,完成备份并不那么方便。为此,我们将继续到牛肉在哪里。

天堂

阅读整个标题时获得的信息量相当疯狂。您可以通过检索LABELONLY数据的相同方式来检索它:

此命令输出很多信息,在这里列出:

备份名称 电影管理
备份说明 每日完整备份
备份类型 1个
截止日期 空值
压缩的 0
位置 1个
设备类型 2
用户名 从来没有\格兰特
服务器名称 GRANT-RED1 \ GFR1
数据库名称 电影管理
数据库版本 661
数据库创建日期 2011-04-19 13:24:09.000
备份大小 63001600
第一LSN 89000000041600037
LastLSN 89000000043200001
检查点 89000000041600037
数据库备份 89000000039100037
BackupStartDate 2012-02-13 10:08:21.000
BackupFinishDate 2012-02-13 10:08:22.000
排序 52
代码页 0
UnicodeLocaleId 1033
UnicodeComparisonStyle 196609
相容性等级 100
SoftwareVendorId 4608
软件版本主要 10
次要版本 50
软件版本构建 1797年
机器名称 赠品红1
标志 512
绑定ID 62BB8F51-371F-4F17-8F43-7644232F8932
RecoveryForkID 872E823E-2130-4BF1-8B04-054B295F0E08
校对 SQL_Latin1_General_CP1_CI_AS
家庭GUID EEF9BC86-F81B-4CF0-A8E2-462C04E342E0
HasBulkLoggedData 0
IsSnapshot 0
IsReadOnly 0
IsSingleUser 0
HasBackupChecksums 0
已经损坏 0
BeginsLogChain 0
HasIncompleteMetaData 0
IsForceOffline 0
IsCopyOnly 0
FirstRecoveryForkID 872E823E-2130-4BF1-8B04-054B295F0E08
叉点LSN 空值
恢复模型 简单
差分基准 空值
DifferentialBaseGUID 空值
备份类型说明 数据库
BackupSetGUID 56E75391-D781-4394-AE0A-979D85F7A0D9
压缩后的备份大小 63001600

一个大量的信息!我将带您逐步了解所有这些内容,并重点介绍一些更重要的专栏。

BackupNameBackupDescription都在运行中提供BACKUP命令。这是标记数据库的好方法,以便您知道数据库的用途,而不必依赖文件本身的时髦命名约定。我强烈建议在备份过程中使用它们作为一种清晰明确的机制来确定备份的目的。由于您可以在描述中以完全简洁的语言描述备份,因此无需在备份文件名中使用编码值。

之后,您将获得一些有关备份的信息,这些信息可能有用也可能不会有用,这取决于您要查看的备份类型和当前需求。BackupType是7种不同的备份类型之一,但由数字(而不是描述)标识。完整列表在联机丛书中。ExpirationDate是您运行BACKUP命令时设置的另一个值。如果您打算允许在特定日期后删除备份文件,最好知道此文件将保留多长时间。

压缩是一个布尔值,指示数据库备份是否已被SQL Server压缩。值得一提的是,此备份头来自SQL HyperBac压缩的备份,但该头未将其显示为已压缩。请记住,此标记用于SQL Server压缩,而不用于第三方压缩。位置告诉您备份集中备份的位置,用于在单个文件中存储多个备份时的位置。DeviceType告诉您此备份最初存储在哪种备份设备上。

下一组信息对于跟踪备份信息绝对至关重要。在调查备份时,UserNameServerNameDatabaseNameCreationDate都非常重要。他们告诉您谁运行备份,从哪个服务器,在哪个数据库上以及何时进行备份–您将要一遍又一遍地查询信息。同样在这组详细信息中还有DatabaseVersion,但这是一个编码版本,不像我将在下面解决的标头中的其他信息一样清晰。

备份大小…我想这可能会有用。再一次,您可以访问该文件。但是,如果已压缩,则此值将是未压缩备份的大小,因此在此很有用。

有关有用的信息,请注意下一组。这些是与此备份相关的日志序列号(LSN)。该FirstLSN显示了与此相关的备份日志的初始LSN。该LastLSN显示该备份的最终LSN。您将同时使用它们与完整备份,差异备份和日志备份,以了解它们之间的关系以及以什么顺序运行它们。恢复差异时,这是您可以确定日志链中的差距的方法。简而言之,这绝对是至关重要的信息。您还将看到CheckpointLSNDatabaseBackupLSN。该检查点主要是提供信息。该DatagbaseBackupLSN是备份的官方LSN。除非您的数据库非常活跃,或者您正在处理复制,否则它将与FirstLSN对应。无论哪种情况,都将DatabaseBackupLSN用作数据库的记录的LSN。如果它通常对应于FirstLSN,请不要感到震惊。

BackupStartDateBackupFinishDate应该是不言自明的。如果没有其他显示备份完成所花费的时间,它们将是有用的措施。但是无论如何,知道备份何时来自是很好的信息。

提供了SortOrderUnicodeLocaleIdUnicodeComparisonStyle都是为了向后兼容。

CodePage显示从中获取备份的服务器正在使用的字符集。如果您要处理多种语言等,这可能会很方便。CompatibilityLevel也与数据库有关。数据库可以在兼容模式下的服务器上运行,这意味着它就像在旧版本的SQL Server上一样运行。CompatibilityLevel通过备份标头让您知道是否是这种情况。SoftwareVendorIdLABELONLY还原中的相同。

下一组列显示有关用于进行备份的服务器版本的信息。这比上面的编码DatabaseVersion更精确和清晰。您具有SoftwareVersionMajorSoftwareVersionMinorSoftwareVersionBuild,以便您可以准确知道使用了哪个版本的SQL Server以及是否已应用任何Service Pack,累积更新或修补程序。有时有些备份版本无法与其他版本一起使用,因此此信息对于解决这些问题绝对至关重要。

计算机名不显示从中获取备份服务器,但执行备份操作的计算机的名称。当您调查备份的来源,运行者等时,这可能很方便。

标志是一种显示备份可用的设置是打开还是关闭的方式。这是一个位掩码。布莱克 好消息是,您只需要向下看一系列位字段即可获得所需的一切,而无需解密位掩码。

BindingID是分配给系统表中数据库的唯一标识符。这对于回溯备份时所用的现有系统很有用,但对还原操作没有多大意义,因为此值只会在要还原到的系统上创建。

RecoveryForkID有点复杂,但可能会非常有用。假设您将数据库恢复到最近一次可能的日志备份之前的某个时间点。然后,假设您在新数据库上运行事务日志备份。您刚刚要做的就是创建一个恢复叉。这意味着您可以从两组不同的备份中恢复数据库。该RecoveryForkID是一个标识符,可让您确定此备份将与哪个恢复分支相对应。在大多数情况下,这并不重要。但是,您可能需要调查哪些备份集将使您恢复到适当的时间点,并且使用此标识符进行备份。它将显示所有位于同一分支上的日志备份之间的一组通用数据,但另一分支上的日志具有不同的数据。老实说,这不是我用过的工具,但是知道它在那里就为我提供了工具箱中的另一种工具。

归类FamilyGUID是数据库的标记,还原时这些标记仍然存在。这些功能很有用,这样您就可以知道运行此还原时将得到什么。

后面的位字段都是非常不言自明的。它们是可以从位掩码字段标志中检索的值:HasBulkLoggedDataIsSnapshotIsReadOnlyIsSingleUserHasBackupChecksums(对验证备份非常有用),IsDamaged(再次知道),BeginsLogChainHasIncompleteMetaData(仅设置为尾部)日志备份),IsForceOfflineIsCopyOnly

FirstRecoveryForkID告诉您,此备份对应于链中的第一个恢复叉,假定备份链中有多个恢复叉。这应该与RecoveryForkID一起使用。我上面的备份对于这两者具有相同的值,这意味着根本没有恢复叉。当RecoveryForkIDFirstRecoveryForkID不匹配时,下一个值ForkPointLSN是相关的,它将是与第一个恢复分支的LSN对应的非空值。

RecoveryModel告诉您可以从此备份中运行哪种还原。如果您要备份SIMPLE中的数据库,则将无法执行日志备份,因此不必担心。

DifferentialBaseLSN各色ntialBaseGUID将确定需要恢复差异备份的基础值。对于非差异备份,这些将始终为null。

虽然标头的开头有BackupType代码,但是您也可以使用BackupTypeDescription来了解此备份文件代表的备份类型。

BackupSetGUID仅标识此备份属于哪个备份集。CompressedBackupSize提供压缩文件的大小(如果已压缩)。您可以将其与BackupSize进行比较,以了解压缩率。

总结

标头中提供了令人难以置信的大量信息,因此很难说出最重要的信息。能够确定LSN的完整备份,差异备份和日志备份是管理恢复的极其重要的机制。有关备份和备份源的所有常规元数据也将派上用场。确实有很多信息,因此您需要专注于对您立即重要的部分,而忽略其余部分。不幸的是,这意味着要了解其中的大多数含义,这就是为什么上面的摘要值得了解的原因。

仅文件清单

现在,您可以找到许多有关备份的信息,但是您是否有足够的能力根据收集到的信息运行还原操作?简短的回答:不。您仍然对数据库本身的分发方式一无所知,如果要运行完全还原或任何类型的文件/文件组还原,则需要此线索。如果要将现有数据库替换为从该数据库获取的备份,则不需要此数据库。但是,如果要还原到具有不同磁盘布局的服务器,则可能只想知道您拥有多少文件以及它们的存储位置。要获取该信息,您只需要一个RESTORE FILELIST,就可以像这样运行:

结果像这样返回:

逻辑名称 电影管理 电影管理日志
物理名称 C:\ Program Files \ Microsoft SQL Server \ MSSQL10_50.GFR1 \ MSSQL \
DATA \ MovieManagement.mdf
C:\ Program Files \ Microsoft SQL Server \ MSSQL10_50.GFR1 \ MSSQL \
DATA \ MovieManagement_log.LDF
类型 d 大号
FileGroupName 空值
尺寸 63176704 3604480
最大尺寸 35184372080640 2199023255552
FileId 1个 2
创建LSN 0 0
降落 0 0
唯一身份 F50B75A6-C564-4E44-A117-D7AF48B637BF F1C86747-7D4F-4E80-9C28-50460B38C537
ReadOnlyLSN 0 0
ReadWriteLSN 0 0
BackupSizeInBytes 62455808 0
SourceBlockSize 512 512
FileGroupId 1个 0
LogGroupGUID 空值 空值
差分基准 89000000039100037 0
DifferentialBaseGUID BB5D1D2C-75AD-4CD6-B20F-70CEBABC0176 00000000-0000-0000-0000-000000000000
IsReadOnly 0 0
存在 1个 1个
TDET打印 空值 空值

这与标题中的信息一起,是正确还原此数据库所需的一切。知道逻辑和物理名称是使用MOVE语句,甚至要知道在运行RESTORE操作时需要使用MOVE语句的必要条件。但是这里也有更多信息。让我们来看一下。

首先,请注意,我包含了两组数据,而不是本文中用于其他命令的一组数据。这是因为此命令将根据构成数据库的文件数返回多行数据。有趣的是,几乎包括了多个文件的每个字段,并且它们具有来自FULLDIFFERENTIALLOG备份的相同数据。如果您正在查看仅文件备份,您仍然会看到其他文件的引用,这是FILELISTONLY返回的其他行。密钥接近值的结尾:IsPresent。如果是1,则该文件在引用的备份中。如果没有,那么您已经从FILELISTONLY获取了信息操作,但该文件本身不在此处。例如,如果您仅查看完整备份,则将包含所有文件。这实际上仅在开始执行FILEFILEGROUP备份时才起作用

LogicalName和PhysicalName是定义文件及其存储位置的名称。这些是您要从FILELISTONLY中提取的最基本的信息,而且值得庆幸的是,它们位于顶部,因此很容易找到它们。这些后面紧随其后的是Type,在我的示例中显示为数据的“ D”和登录的“ L”。您可能还会在“全文目录”中看到“ F”。之后是FileGroupName,它显示文件在不同文件组中的分布。对于大多数人来说,这就是使用FILELISTONLY所需的全部。

其余各列很有用,但主要用于更具体的情况或仅作为一般信息。说到常规信息,Size,MaxSize和FileID都是数据库中文件的描述。拥有大小值将帮助您决定可以将这些文件还原到何处。

FILELISTONLY中,您获得与所讨论文件关联的日志序列号(LSN)信息。当您试图确定还原链中的位置时,这将至关重要。CreateLSN是创建文件时的LSN。对于上面的简单数据库,您会注意到两个文件都是在LSN = 0时创建的。如果您要修改数据库结构,则该值将有所不同。如果删除文件,它将保留在描述中,但在DropLSN上将获得一个值。

UniqueID是文件的标识符。

ReadOnlyLSNReadWriteLSN显示何时更改这些值。如果在您担心的时间范围内将还原从一个切换到另一个,这可能会影响还原的方式。例如,如果要还原到某个时间点,并且想知道是否包括特定的还原,因为该还原与您感兴趣的那一刻重叠,则请看一下ReadWriteLSN。如果在您需要的时间之后,则可能不需要该文件,但需要检查ReadOnlyLSN以确保。

差异备份将显示在额外的,有用的信息DifferentialBaseLSN,它告诉你从中这个差获取其数据的LSN和DifferentialBaseGUID,它显示了完全备份是此差基地的GUID。这两条信息都有助于确定可以在哪里恢复此差异。

IsReadOnly位让你知道,如果文件被标记的方式。IsPresent会告诉您所引用的备份媒体是否包含此文件。请记住,所有文件类型都将显示结构,但并非所有文件类型都将包含您感兴趣的信息。这一点很重要。

最后,您将获得TDEThumprint,该文件显示此文件的加密密钥的加密哈希。

FILELISTONLY摘要

您将一遍又一遍使用的三部分信息是LogicalNamePhysicalNameIsPresent。其他所有内容都很有用,但是没有任何一个像这些字段一样会一直摆在您面前。

结论

总之,当您面临着来自未知来源的神秘备份,或者您陷入了紧急响应小组并且模糊的文件名无法帮助您恢复数据库时,请不要惊慌。您可以参考LABELONLYHEADERONLYFILELISTONLY来组合所需的信息。最好的信息将来自HEADERONLYFILELISTONLY,借助这些信息,您应该能够弄清楚从可用的备份介质还原几乎任何数据库所需的内容。

相关推荐

咨询软件
 
QQ在线咨询
售前咨询热线
QQ1922638