小编Seb*_*ine的帖子

SQL Server 2008 R2 使用事务日志还原 COPY_ONLY 完整备份

在做了一些研究之后,我似乎无法找到这个问题的答案。

背景 我正在尝试设置一个符合以下三个要求的备份计划:

  1. 备份的可靠性,每晚进行完整备份
  2. 可以从中恢复的事务日志备份
  3. 使用的磁盘空间少
  4. 备份必须可在本地访问以供审计工具使用

因此,为了满足这些需求,我正在考虑每周进行完整备份、每天进行差异备份和每小时进行交易。然后每天晚上都会运行一个 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)

sql-server-2008 backup transaction-log

12
推荐指数
1
解决办法
6392
查看次数

备份到三个驱动器突然变慢

情况:我有一个 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 个小时。

performance sql-server-2005 sql-server backup

6
推荐指数
0
解决办法
780
查看次数

如何在 SQL Server 中的 xquery 中转换值列表?

我有以下 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)

sql-server xquery

6
推荐指数
1
解决办法
2592
查看次数

SQL Server - Order by case 语句非常慢

我在执行正常的 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)

sql-server t-sql

4
推荐指数
1
解决办法
2899
查看次数