高可用性还原SQL Server 2012数据库


13

我有一个始终处于高可用性模式的数据库,该数据库与另一个实例上的另一个数据库同步。如何使用从.bak文件还原到主数据库T-SQL

我是高可用性的新手,并被告知我需要先使数据库脱离高可用性,然后才能进行还原,然后再次将其重新设置为高可用性,但我不确定。

我希望我可以在AlwaysOn仍启用的同时直接还原到主数据库,并且它将与辅助数据库自动同步。

Answers:


15

听您的顾问。通过还原备份,您实际上是在替换数据库架构和数据。您将需要关闭同步,从HA中删除数据库并在主数据库和副本数据库上执行还原,并使用WITH NORECOVERY使副本版本处于还原状态。备份到位后,将数据库放回HA并再次开始同步。

HA与镜像非常相似,并使用类似的技术,但差强人意。您也将希望同样对待HA DB。

代码类似于以下内容:

-在小学

ALTER AVAILABILITY GROUP MyAG REMOVE DATABASE AdventureWorks2012;

-在小学

RESTORE DATABASE AdventureWorks2012
   FROM AdventureWorksBackups
   WITH NORECOVERY, 
      MOVE 'AdventureWorks2012_Data' TO 
'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Data\NewAdvWorks.mdf', 
      MOVE 'AdventureWorks2012_Log' 
TO 'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Data\NewAdvWorks.

RESTORE LOG AdventureWorks2012
   FROM AdventureWorksBackups
   WITH RECOVERY;

-在中学

RESTORE DATABASE AdventureWorks2012
   FROM AdventureWorksBackups
   WITH NORECOVERY, 
      MOVE 'AdventureWorks2012_Data' TO 
'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Data\NewAdvWorks.mdf', 
      MOVE 'AdventureWorks2012_Log' 
TO 'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Data\NewAdvWorks.ldf';

RESTORE LOG AdventureWorks2012
   FROM AdventureWorksBackups
   WITH NORECOVERY;

-在小学

ALTER AVAILABILITY GROUP MyAG ADD DATABASE AdventureWorks2012;

-在中学

ALTER DATABASE AdventureWorks2012 SET HADR AVAILABILITY GROUP = MyAG;

有关上述答案的问题...在提供的代码中,使用NoRecovery恢复了PRIMARY。我认为只有NoRecovery才能完成副本服务器。
Truett

正确,但请继续阅读。对日志还原进行了编码,然后最终进行了“恢复”以使其可用。
史蒂夫·曼吉阿米里

如果无法重新加入辅助服务器上的可用性组,则可能需要还原事务日志。此消息源有助于解决以下错误:The mirror database, "dbname", has insufficient transaction log data to preserve the log backup chain of the principal database. This may happen if a log backup from the principal database has not been taken or has not been restored on the mirror database.
Hans Vonn

因此,日志将恢复。请参阅上面的评论。
史蒂夫·曼吉阿米里

@SteveMangiameli感谢您提出来。它派上用场了。我知道现在您是从逻辑备份设备而不是从文件还原。从文件还原时,我使用单独的.bak和.trn文件。
汉斯·沃恩
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.