SQL Server:为什么要使用备份设备?


8

从数据库进行备份时,将逻辑备份设备用于备份位置是否是“好的做法”?使用备份设备有什么好处?

Answers:


6

想象一下,您可能有很多备份工作。完整备份,差异备份,事务日志备份...现在想象您需要将所有备份从本地磁盘移动到SAN。如果使用备份设备,则只需重新创建带有新磁盘路径的设备。但是,如果将备份脚本编写为使用完整路径,则需要重写每个作业,每个作业步骤才能更改这些路径。

但是在某些情况下,您不需要使用备份设备,例如,当您使用某些自定义方案时,可以动态更改备份路径或文件名(例如,将日期/时间添加到文件夹或文件名)。


您的意思是您没有UDF或这样的路径在一个地方?并将其存储在变量上?
gbn

我从没告诉过我如何进行备份:)我只是回答了“为什么这样做是一种好习惯”和“使用备份设备的好处”的问题……在我公司中,我们使用不同的方案,因为对于大多数系统而言,文件名称和内容在支持说明中进行了说明。您也使用带有日期时间戳的方案。
Alex_L 2011年

10

我希望每个备份一个文件

  • DB_FULL_yyyymmddhhnn.bak
  • DB_DIFF_yyyymmddhhnn.bak
  • DB_LOG_yyyymmddhhnn.bak

我不想:

  • 查询备份设备以查看其中存储了什么
  • 复制整个备份设备以获取一个数据库
  • FTP或其他需要转移的地方

如果您具有TB大小的数据库,分区,文件组,并且想要进行部分备份/还原,那么这些问题就会成倍增加。在灾难恢复情况下,我希望一切都简单明了。

我去过的大多数(大小)商店都这样做:处理自我描述文件更简单。

“设备”概念可以追溯到Sybase,SQL Server 6.5和更早版本。这里也有磁盘设备SQL Server 7引入了单独的MDF和LDF


4

逻辑备份设备只是物理设备的抽象。

这可以简化物理设备之间的切换,因为您可以更改逻辑设备定义,而不必编辑备份脚本或维护包。


4

我在报告系统中使用了逻辑备份设备,在该系统中我们想要执行多个还原,并且不想编写完整路径。我们可以轻松更改转储设备的定义,而无需更改脚本。

我相信相同的概念适用于使用逻辑转储设备进行磁带备份,尽管我们从来没有直接转储到磁带上。

这些是我现在知道的唯一好处。


3

尽管它们有自己的用途,但我还是更喜欢每个文件执行一次完整,差异或事务日志备份,因为这样可以更轻松地运行清理脚本来删除旧备份并防止备份驱动器填满。


1
我看不到为什么将不同文件用于不同的bacup文件与备份设备冲突。每种备份类型可能都有三个备份设备。任务“删除旧备份”和“防止备份文件填充”仅是何时使用WITH INIT和WITH NOINIT的问题。
Alex_L 2011年

1
这涉及在备份到设备的备份上设置RETAINDAYS = X或EXPIREDATE = X并使用带有NOSKIP的INIT(我认为默认为INIT)。跟踪清除不如“删除所有早于X的文件”那样容易。海事组织。
briancarrig 2011年

2

据我了解,使用备份设备的好处是简化了脚本,如果您必须移动驱动器或设备,则使脚本变得更容易。能够在多个服务器上具有统一的备份脚本,其中可以在每个服务器的基础上定义备份位置,但是备份设备在所有服务器上可以保持不变。例如“ Primary_Backup_Location”。


1

除了上面已经写的内容之外,使用备份设备的唯一其他原因是空间有限。如果您有一个100 GB的DB和两个具有60 GB可用空间的驱动器,则可以在每个驱动器上创建一个备份设备,并在两个驱动器之间进行备份。需要注意的是,然后您需要同时使用两个设备进行还原。

-克里斯

-当然,您也可以写入多个备份文件而不是设备。


要添加:您甚至可以在使用最少的TSQL的同时跨不同的物理磁盘来加快备份时间。
StanleyJohns,2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.