Sql-Server

以高可用性恢復 SQL Server 2012 數據庫

  • November 3, 2017

我有一個始終處於高可用性模式的數據庫,它與不同實例上的另一個數據庫同步。如何.bak使用從文件還原到主數據庫T-SQL

我是高可用性的新手,有人建議我需要先使數據庫脫離高可用性,然後才能進行還原,然後再次將其恢復為高可用性,但我不確定。

我希望我可以在AlwaysOn仍然啟用的情況下直接恢復到主伺服器,它會自動與輔助伺服器同步。

聽你的顧問。通過恢復備份,您實際上是在替換數據庫架構和數據。您將需要關閉同步,從 HA 中刪除數據庫並對主副本和副本執行還原,使用 WITH NORECOVERY 使副本版本處於還原狀態。備份到位後,將數據庫放回 HA 並再次開始同步。

HA 與鏡像非常相似,並且使用類似的技術,只是沒有那麼挑剔。您也將希望以類似方式對待您的 HA 數據庫。

程式碼將類似於以下內容:

–在初級

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;

引用自:https://dba.stackexchange.com/questions/82548