Evi*_*lDr 2 sql-server backup vss
我有一个 SQL 数据库服务器,它使用R1Soft 备份备份每 24 小时在 02:00 进行一次服务器备份。这是一个完整的文件系统备份(裸机加上每日差异,因此包括操作系统等)。
我想增加一些数据库的备份频率,以便在发生故障时,我可以恢复到15分钟的时间窗口,例如
我无法找到任何关于清晰度是否R1Soft备份(通过完成VSS写入),会引起我的做法任何问题(particuarly打破日志链)。我对 VSS 知之甚少,而且我读得越多,它就越令人困惑。
我联系了 R1Soft 澄清,他们的回应是:
我们正在使用 VSS 进行 SQL 备份。您可以使用这两种解决方案,只要它不会同时运行。我们使用 VSS 编写器将日志刷新到数据中,然后完全备份数据库。
这对我来说毫无意义,因为我不知道他们所说的"data"是什么意思,并且它没有澄清日志链问题。因此,任何有 VSS 经验的人都可以澄清 VSS 备份是否“干扰”本机完整/传输日志备份?从我的研究中,我看到了相互矛盾的消息,因为 Microsoft 站点指出:
SQL Writer 不支持...日志备份
我不知道我是否应该按照我的建议去做,还是应该改为
任何输入,即使只是为了突出我应该问他们的问题,也将不胜感激。我读得越多,我就越困惑。
database_name backup_start_date backup_finish_date expiration_date backup_type backup_size MB logical_device_name physical_device_name backupset_name description is_copy_only is_snapshot checkpoint_lsn database_backup_lsn differential_base_lsn first_lsn fork_point_lsn last_lsn
--------------- ----------------------- ----------------------- ----------------- ----------- ------------------ ----------------------- --------------------------------------------------- --------------- ------------- ------------ ----------- --------------------- --------------------- ---------------------- --------------------- ---------------- ---------------------
myDb 2017-09-13 02:00:04.000 2017-09-13 02:00:05.000 NULL Full 1525.43896484375 NULL {D827E1B8-FDB7-4AE5-9264-08D4CA29536A}1 NULL NULL 1 1 12207000004436400001 12207000004429300036 NULL 12207000004436400001 NULL 12207000004436700001
myDb 2017-09-13 00:11:00.000 2017-09-13 00:11:01.000 NULL Full 1525.44726562500 NULL {9B33317C-CABA-42DD-9839-9D4599A91205}1 NULL NULL 0 1 12207000004429300036 12207000003990700036 NULL 12207000004429300036 NULL 12207000004431300001
myDb 2017-09-12 02:00:13.000 2017-09-12 02:00:14.000 NULL Full 1525.32031250000 NULL {57B7F13B-9461-48C2-8BB3-3DA651485DC6}1 NULL NULL 1 1 12207000003995300034 12207000003990700036 NULL 12207000003995300034 NULL 12207000003996900001
myDb 2017-09-12 01:11:28.000 2017-09-12 01:11:29.000 NULL Full 1525.32226562500 NULL {924FE276-544D-40F6-93A2-C2375868DB07}1 NULL NULL 0 1 12207000003990700036 12207000003659900164 NULL 12207000003990700036 NULL 12207000003992700001
myDb 2017-09-11 13:33:08.000 2017-09-11 13:33:25.000 NULL Full 1526.40234375000 NULL D:\HostedFiles\Autobackup\bak\20170911_myDb.bak NULL NULL 1 0 12207000003837600221 12207000003659900164 NULL 12207000003837600221 NULL 12207000003846900001
myDb 2017-09-11 00:07:59.000 2017-09-11 00:08:00.000 NULL Full 1525.28271484375 NULL {713D7A36-D4F2-4B2F-A0C1-B079DE03F396}1 NULL NULL 0 1 12207000003659900164 12207000003645600222 NULL 12207000003659900164 NULL 12207000003666600001
myDb 2017-09-10 02:00:17.000 2017-09-10 02:00:17.000 NULL Full 1525.25146484375 NULL {3C42FCFF-BF45-49D6-AD78-57039DB7B4DA}1 NULL NULL 1 1 12207000003657200001 12207000003645600222 NULL 12207000003657200001 NULL 12207000003657500001
myDb 2017-09-10 00:05:34.000 2017-09-10 00:05:36.000 NULL Full 1525.29394531250 NULL {AC33EA68-9B40-4CE6-A2E5-76DE908AD813}1 NULL NULL 0 1 12207000003645600222 12207000003613700036 NULL 12207000003645600222 NULL 12207000003654600001
myDb 2017-09-09 04:06:22.000 2017-09-09 04:06:23.000 NULL Full 1525.26367187500 NULL {6BCA937F-7F1C-4A43-92D8-42366D36FA17}1 NULL NULL 0 1 12207000003613700036 12189000000394000087 NULL 12207000003613700036 NULL 12207000003616500001
myDb 2017-09-09 02:00:04.000 2017-09-09 02:00:21.000 NULL Full 1525.28076171875 NULL {6CD064AC-D2DC-4F84-97A7-88C3D959FEF4}1 NULL NULL 1 1 12207000003607000144 12189000000394000087 NULL 12207000003607000144 NULL 12207000003613500001
myDb 2017-09-08 02:00:04.000 2017-09-08 02:00:07.000 NULL Full 1524.68896484375 NULL {92C322C7-AB8A-4747-A765-4D63A86BDC50}1 NULL NULL 1 1 12189000000855600001 12189000000394000087 NULL 12189000000855600001 NULL 12189000000855900001
myDb 2017-09-08 00:30:00.000 2017-09-08 00:30:17.000 NULL Full 1525.38671875000 NULL D:\HostedFiles\Autobackup\bak\20170908_myDb.bak NULL NULL 1 0 12189000000846800208 12189000000394000087 NULL 12189000000846800208 NULL 12189000000855600001
myDb 2017-09-07 07:42:05.000 2017-09-07 07:42:06.000 NULL Full 1524.51806640625 NULL {77D9CBB9-60E4-4D19-99CF-B92499E33BA7}1 NULL NULL 0 1 12189000000394000087 12188000005293700036 NULL 12189000000394000087 NULL 12189000000397700001
myDb 2017-09-07 02:00:05.000 2017-09-07 02:00:10.000 NULL Full 1524.54052734375 NULL {4D94E390-FBCD-42D5-9191-A7AE9CED4932}1 NULL NULL 1 1 12189000000384900197 12188000005293700036 NULL 12189000000384900197 NULL 12189000000393200001
(14 row(s) affected)
Run Code Online (Sandbox Code Playgroud)
我已经两次发布了与您的问题相关的答案。
VSS 备份会破坏日志链吗?
- 我的答案在这里
如何使用 Windows Server Backup 备份 SQL Server 数据库?
- 我的答案在这里
基本上,您必须检查msdb
数据库中的备份历史记录,以了解如何使用 3rd 方软件创建数据库备份。
使用以下脚本,您可以检索一些与进一步调查相关的信息:
SELECT
CONVERT(CHAR(100), SERVERPROPERTY('Servername')) AS SRVNAME,
msdb.dbo.backupset.database_name,
msdb.dbo.backupset.backup_start_date,
msdb.dbo.backupset.backup_finish_date,
msdb.dbo.backupset.expiration_date,
CASE msdb..backupset.type
WHEN 'D' THEN 'Full'
WHEN 'I' THEN 'Diff'
WHEN 'L' THEN 'Log'
END AS backup_type,
msdb.dbo.backupset.backup_size / 1024 / 1024 as [backup_size MB],
msdb.dbo.backupmediafamily.logical_device_name,
msdb.dbo.backupmediafamily.physical_device_name,
msdb.dbo.backupset.name AS backupset_name,
msdb.dbo.backupset.description,
msdb.dbo.backupset.is_copy_only,
msdb.dbo.backupset.is_snapshot,
msdb.dbo.backupset.checkpoint_lsn,
msdb.dbo.backupset.database_backup_lsn,
msdb.dbo.backupset.differential_base_lsn,
msdb.dbo.backupset.first_lsn,
msdb.dbo.backupset.fork_point_lsn,
msdb.dbo.backupset.last_lsn
FROM msdb.dbo.backupmediafamily
INNER JOIN msdb.dbo.backupset
ON msdb.dbo.backupmediafamily.media_set_id = msdb.dbo.backupset.media_set_id
WHERE 1 = 1
ORDER BY 2,3 desc
Run Code Online (Sandbox Code Playgroud)
重要的信息是is_copy_only
和is_snapshot
列。
IS_COPY_ONLY
如果数据库备份历史将标志is_copy_only
设置为 ,1
则后续备份不需要这些(第 3 方)备份来将数据库恢复到一致状态。这是因为:
仅复制备份是独立于常规 SQL Server 备份顺序的 SQL Server 备份。通常,进行备份会更改数据库并影响以后备份的还原方式。但是,有时出于特殊目的而进行备份而不影响数据库的整体备份和还原过程会很有用。仅复制备份用于此目的。
参考: 仅复制备份 (SQL Server) (Microsoft Docs)
IS_SNAPSHOT
如果数据库备份历史的标志is_snapshot
设置为 ,1
那么您就知道该备份是使用触发SQL Server Writer(SQL Server 的VSS 服务)的 3rd 方软件执行的,该软件允许 3rd 方软件几乎立即备份数据库.
来自关于什么是快照备份的官方文档:
SQL Server 快照备份是与第三方硬件或软件供应商或两者合作完成的。这些供应商使用专为此目的设计的 SQL Server 功能。底层备份技术创建了正在备份的数据的即时副本。瞬时复制通常通过拆分一组镜像磁盘或通过在写入磁盘块时创建磁盘块的副本来完成。这保留了原件。在恢复时,原始磁盘立即可用,底层磁盘的同步发生在后台。这导致几乎即时的恢复操作。
参考: 快照备份(Microsoft Technet)
使用此功能创建的备份也几乎可以立即恢复。
第 3 方备份应标记为is_snapshot = 1
和is_copy_only = 1
。这些备份不会与其他备份步骤冲突/程序使用本地SQL Server执行的BACKUP DATABASE...
,BACKUP DATABASE ... WITH DIFFERENTIAL....
和BACKUP LOG...
语句。第 3 方数据库备份不是现有备份集的一部分。
供应商正确声明,在(快速)快照备份期间,不应运行其他备份。
我们正在使用 VSS 进行 SQL 备份。您可以使用这两种解决方案,只要它不会同时运行。我们使用 VSS 编写器将日志刷新到数据中,然后完全备份数据库。
当第 3 方软件触发SQL Server VSS Writer服务时,本机备份可能会遇到问题,这主要会导致IO Frozen
SQL Server中出现一条消息ERRORLOG
。此时运行本机备份可能会导致错误。
然后你注意到了
SQL Writer 不支持...日志备份
正确的。在SQL编写器服务时,才会触发备份快照,不需要使用正常的语句机SQL Server备份。数据库的备份快照是触发SQL 编写器时数据库的事务一致状态。
is_copy_only
根据我的回答中进一步给出的描述,任何设置了标志的东西都不会破坏备份链。
为灾难场景保留您的第 3 方快照。它们是一致的,可以使数据库快速恢复在线状态。
根据您的要求对您的数据库进行额外的 FULL、DIFF 和 LOG 备份。将这些备份存储在安全的地方,以确保在您必须将数据库恢复到 FULL、DIFF、LOG 或 Point-in-Time 时可以访问它们。
您可能想要跟进数据库备份(完整、差异、tlog)并copy_only
阅读以下文章:
一般而言: COPY_ONLY
当您想要在正常备份序列之外进行额外备份而不破坏任何内容时,建议进行备份。您的正常备份顺序不应基于COPY_ONLY
备份。
归档时间: |
|
查看次数: |
2314 次 |
最近记录: |