在 dba.stackoverflow.com 上有这个问题的完整答案。
在此处交叉发布答案,以便可以从问题的两个版本中找到它:
从John M的回答逐字复制:
https://dba.stackexchange.com/questions/82548/restoring-a-sql-server-2012-database-in-high-availability
听听你的顾问。通过恢复备份,您实际上是在替换数据库架构和数据。您将需要关闭同步,从 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.ldf';
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 DATABASE AdventureWorks2012 SET HADR AVAILABILITY GROUP = MyAG;