【问题标题】:Restore a database from multiple .bak files SQL Server 2012 [closed]从多个 .bak 文件中恢复数据库 SQL Server 2012 [关闭]
【发布时间】:2018-07-18 20:45:44
【问题描述】:

第三方正在向我们发送拆分备份,我们需要每天将其还原到单个数据库中。有没有一种方法可以自动化这个维护成本低?

首选是编写 T-SQL 或 SQL Server 作业:

  • AdventureWorks07182018.back0
  • AdventureWorks07182018.back1
  • AdventureWorks07182018.back2
  • AdventureWorks07182018.back3

【问题讨论】:

  • 你的问题看起来你可能已经读过这个solution
  • 我确实做到了,但有点困惑,因为这是我第一次做的事情。 Scsimon 的回答似乎为我指明了正确的方向。

标签: sql sql-server sql-server-2012 backup database-restore


【解决方案1】:

评论太长,但通常在 SQL 代理作业中完成。

拆分备份意味着(至少)4 件事中的 1 件事,如果您还不知道,您需要从供应商那里得到澄清。我排除了部分备份:

  1. 供应商将在一天内发送上面列出的所有备份,这意味着它是一个基本备份和 3 个差异或日志备份(可能)
  2. 供应商仅发送差异备份,因为他们最初向您发送了基础(不太可能)
  3. 供应商在不同日期备份文件组或文件(可能是 VLDB)并在发生时发送给您(不太可能的情况)
  4. 供应商每天都会向您发送完整备份,其中您获得的最后一个是最新的(最有可能)

排除文件和文件组恢复,您将:

  1. 恢复完整备份
  2. 恢复上次差异备份(如果适用)
  3. 恢复上次差异备份之后发生的所有日志备份,或者如果差异没有发生,则恢复上次完整备份之后发生的所有日志备份

您还可以在第 2 步中选择任何差异,然后选择自该差异以来的所有日志备份(如果存在)。当然,如果他们向您发送完整备份,那么您只需恢复完整备份即可。

这些方面的内容...会根据您的环境而有所不同(AlwaysOn、设置为只读、设置为 STANDBY 等...)

ALTER DATABASE AdventureWorks SET SINGLE_USER WITH ROLLBACK IMMEDIATE
GO

RESTORE DATABASE [AdventureWorks] FROM  DISK ='\\UNC\AdventureWorks.back0'
WITH
--what ever options... but likely a file move
MOVE 'data_file_1' TO 'E:\somefolder\data.mdf',
MOVE 'db_log' TO 'E:\somefolder\log.ldf',
REPLACE, --overwrites the database
RECOVERY --sets the DB to READ/WRITE. Use NORECOVERY if you need to restore logs / differentials
GO

--if using logs...
RESTORE LOG AdventureWorks
   FROM '\\UNC\AdventureWorks.back01' --assuming this is a log
   WITH FILE = 1,  --this is the first log
   WITH NORECOVERY;  --keep in norecovery to restore other logs...
GO  

等等……

【讨论】:

  • 供应商实际上是在向我们发送一个文件 .Lts.bak,这需要使用命令提示符执行 LiteSpeed 提取器。一旦成功,我就剩下四个文件。我担心的是,我怎么知道恢复它们的顺序,如果有一天我从提取物中只得到三个文件,第二天我得到 5 个文件怎么办。我猜最好的方法是一个一个地恢复它们?我会联系卖家进行澄清!感谢你的帮助!我会回答这个问题。
  • 在这种情况下,您可以询问他们,但也可以恢复标题以查看每个文件包含的内容。你可以read up on that here
猜你喜欢
  • 1970-01-01
  • 2015-04-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-07
  • 1970-01-01
  • 2016-02-20
  • 1970-01-01
相关资源
最近更新 更多