首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以高可用性恢复SQL Server 2012数据库

以高可用性恢复SQL Server 2012数据库
EN

Stack Overflow用户
提问于 2014-11-12 22:42:38
回答 2查看 2.6K关注 0票数 1

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

我刚接触高可用性,有人建议我在进行恢复之前需要将数据库从高可用性中删除,然后再将其放回高可用性中,但我不确定。

我希望我可以直接恢复到主节点,同时AlwaysOn仍处于启用状态,并且它将自动与辅助节点同步。

EN

回答 2

Stack Overflow用户

发布于 2015-12-29 01:48:47

这个问题在dba.stackoverflow.com上有一个完整的答案。

在这里交叉发布答案,这样就可以从问题的两个版本中找到答案:逐字复制自John M的答案:https://dba.stackexchange.com/questions/82548/restoring-a-sql-server-2012-database-in-high-availability

听你导师的话。通过还原备份,您实际上是在替换数据库架构和数据。您需要使用WITH NORECOVERY关闭同步,从HA中删除数据库,然后在主副本和复制副本上执行恢复,从而使复制副本版本处于正在恢复状态。备份就位后,将数据库放回HA并再次启动同步。

HA非常类似于镜像,并且使用类似的技术,只是没有那么挑剔。您也会希望以类似的方式对待您的HA DB。

代码将类似于以下代码:

--在主服务器上

代码语言:javascript
复制
ALTER AVAILABILITY GROUP MyAG REMOVE DATABASE AdventureWorks2012;

--在主服务器上

代码语言:javascript
复制
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;

--在辅助服务器上

代码语言:javascript
复制
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;

--在辅助服务器上

代码语言:javascript
复制
ALTER DATABASE AdventureWorks2012 SET HADR AVAILABILITY GROUP = MyAG;
票数 2
EN

Stack Overflow用户

发布于 2015-03-05 11:40:04

如果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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26889631

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档