Sql-Server
以高可用性恢復 SQL Server 2012 數據庫
我有一個始終處於高可用性模式的數據庫,它與不同實例上的另一個數據庫同步。如何
.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;