以高可用性恢复 SQL Server 2012 数据库
Posted
技术标签:
【中文标题】以高可用性恢复 SQL Server 2012 数据库【英文标题】:Restoring a SQL Server 2012 database in high availability 【发布时间】:2014-11-12 14:42:38 【问题描述】:我有一个始终处于高可用性模式的数据库,它与不同实例上的另一个数据库同步。如何使用 T-SQL 从 .bak
文件恢复到主数据库?
我是高可用性的新手,我被告知我需要先将数据库从高可用性中移除,然后才能进行还原,然后再次将其恢复为高可用性,但我不确定。
我希望我可以在 AlwaysOn 仍然启用的情况下直接恢复到主服务器,它会自动与辅助服务器同步。
【问题讨论】:
应该在 dba.stackexchange.com 上提问 - 这实际上更像是一个 DBA 问题(而不是 编程 问题) - 投票决定是否采取行动 干杯马克。我不知道那个网站,所以我会在那里问。 【参考方案1】:在 dba.***.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;
【讨论】:
【参考方案2】:如果 Microsoft SQL 数据库是 Microsoft SQL 2012 AlwaysOn 可用性组 (AAG) 的一部分,并且还原到原始位置失败,请执行以下任务: 1. 从可用性组中删除要恢复的数据库。有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/hh213326.aspx。 2. 使用还原管理器将数据库还原到 AAG 组中的所有节点。 3. 将数据库添加回可用性组。如需更多信息,请参阅http://msdn.microsoft.com/en-us/library/hh213078.aspx。
【讨论】:
以上是关于以高可用性恢复 SQL Server 2012 数据库的主要内容,如果未能解决你的问题,请参考以下文章
SQL Server 2012 标准版是不是能搭建alwayson