在做了一些研究之后,我似乎无法找到这个问题的答案。
背景 我正在尝试设置一个符合以下三个要求的备份计划:
因此,为了满足这些需求,我正在考虑每周进行完整备份、每天进行差异备份和每小时进行交易。然后每天晚上都会运行一个 copy_only 备份,可以将其运送到异地,这个备份完成后日志链不会被破坏,并且我们在异地拥有可靠的夜间完整备份,而不必占用太多本地磁盘空间。
问题 是否可以从copy_only 备份恢复,然后恢复事务日志。
让我举个例子,让你知道我在说什么。
使用下面的列表,我想知道是否可以恢复 FullbackupCOPY_ONLYC.bak 然后是 TransactionbackupG.trn、TransactionbackupH.trn、最后是 TransactionbackupI.trn
> ---List of Backups---
FullbackupA.bak 01/01/2013 00:00:00
> DifferntialbackupA.bak 02/01/2013 00:00:00
FullbackupCOPY_ONLYA.bak 02/01/2013 00:00:00
> TransactionbackupA.trn 02/01/2013 01:00:00
> TransactionbackupB.trn 02/01/2013 02:00:00
> TransactionbackupC.trn 02/01/2013 03:00:00
> DifferntialbackupB.bak 03/01/2013 00:00:00
FullbackupCOPY_ONLYB.bak 03/01/2013 00:00:00
> TransactionbackupD.trn 03/01/2013 01:00:00
> TransactionbackupE.trn 03/01/2013 02:00:00
> TransactionbackupF.trn 03/01/2013 03:00:00
> DifferntialbackupC.bak 04/01/2013 00:00:00
FullbackupCOPY_ONLYC.bak 04/01/2013 00:00:00
> TransactionbackupG.trn 04/01/2013 01:00:00
> TransactionbackupH.trn 04/01/2013 02:00:00
> …Run Code Online (Sandbox Code Playgroud) 情况:我有一个 1.3 TB 的数据库 (SQL 2005),我目前在不同的机器和一个本地 USB 上备份多达 2 个网络共享。(不要问为什么 - 涉及一个昨晚退出的 DBA 的长篇大论)备份在 12 小时前开始,前 2 小时显示估计总运行时间为 8 小时。在过去的两个小时内,它显示的估计剩余时间为 90 分钟。现在似乎是每小时 1%,还有 8 小时才能完成。
Perfmon 显示 6MB/s 在网络上的输出速度和 6MB/s 在其他空闲机器上的速度(共享 1)。共享 2 不空闲,因此网络上有噪音但没有明显的流量。USB 驱动器现在有一段时间是每秒 0 字节。
关于如何恢复两个“被遗忘的”备份目标以在今晚之前完成此备份的任何想法?
PS:ETA 和百分比完成来自 sys.dm_exec_requests
备份命令是:
BACKUP DATABASE [XXXXXXXXXX] TO
DISK = N'D:\backup\XXXXXXXXXX_20121019_T3_A',
DISK = N'\\server3\XXXXXXXXXXBak\XXXXXXXXXX_20121019_T3_B',
DISK = N'\\server2\XXXXXXXXXXBak\XXXXXXXXXX_20121019_T3_C'
WITH NOFORMAT, NOINIT, NAME = N'XXXXXXXXXX-Full Database Backup',
SKIP, NOREWIND, NOUNLOAD, STATS = 10, CHECKSUM
Run Code Online (Sandbox Code Playgroud)
它当前仍在写入的驱动器是我们通常备份到的驱动器。写入单个文件通常需要 60 个小时。
我有以下 T-SQL 代码,我正在尝试开始工作:
IF EXISTS (SELECT * FROM sys.xml_schema_collections WHERE name = 'TST') DROP XML SCHEMA COLLECTION TST;
GO
CREATE XML SCHEMA COLLECTION TST AS N'<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"><xsd:element name="root"><xsd:complexType><xsd:complexContent><xsd:restriction base="xsd:anyType"><xsd:sequence><xsd:element name="val" minOccurs="0" maxOccurs="unbounded" type="xsd:string" /></xsd:sequence></xsd:restriction></xsd:complexContent></xsd:complexType></xsd:element></xsd:schema>';
GO
DECLARE @xml XML(TST) = '<root><val>1</val><val>2</val><val>3</val></root>';
SELECT @xml.value('sum(//val)','INT')
Run Code Online (Sandbox Code Playgroud)
该xsd告诉我们,val节点类型string。因此该sum()功能将不起作用:
Msg 9308, Level 16, State 1, Line 7
XQuery [value()]: The argument of 'sum()' must be of a single numeric primitive type or 'http://www.w3.org/2004/07/xpath-datatypes#untypedAtomic'. Found argument of type 'xs:string …Run Code Online (Sandbox Code Playgroud) 我在执行正常的 SP 中有以下查询:
SELECT * FROM MyTable u
ORDER BY
u.[Id] DESC
OFFSET @PageSize * (@PageNumber - 1) ROWS
FETCH NEXT @PageSize ROWS ONLY
Run Code Online (Sandbox Code Playgroud)
但是,当我从 SP 参数配置 ORDER BY 时,查询从以毫秒为单位执行到几秒:
SELECT * FROM MyTable u
ORDER BY
CASE WHEN @Sort = 0 THEN u.[Id] END DESC,
CASE WHEN @Sort = 1 THEN u.[Id] END ASC,
CASE WHEN @Sort = 2 THEN u.[LastName] END ASC,
CASE WHEN @Sort = 3 THEN u.[LastName] END DESC
OFFSET @PageSize * (@PageNumber - 1) ROWS …Run Code Online (Sandbox Code Playgroud)