Ste*_*tew 13 sql-server t-sql restore sql-server-2012 availability-groups
我有一个始终处于高可用性模式的数据库与不同实例上的另一个数据库同步。如何.bak
使用将文件从文件还原到主数据库T-SQL
?
我是高可用性的新手,有人建议我需要先将数据库从高可用性中移除,然后才能进行还原,然后再次将其恢复为高可用性,但我不确定。
我希望我可以在AlwaysOn
仍然启用的情况下直接恢复到主服务器,并且它会自动与辅助服务器同步。
Ste*_*eli 16
听听你的顾问的意见。通过恢复备份,您实际上是在替换数据库架构和数据。您将需要关闭同步,从 HA 中删除数据库并在主副本和副本上执行还原,通过使用 WITH NORECOVERY 使副本版本处于还原状态。备份到位后,将数据库放回 HA 并再次开始同步。
HA 与镜像非常相似,使用类似的技术,只是没有那么挑剔。您也希望以类似的方式对待您的 HA DB。
代码将类似于以下内容:
--在初级
ALTER AVAILABILITY GROUP MyAG REMOVE DATABASE AdventureWorks2012;
Run Code Online (Sandbox Code Playgroud)
--在初级
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;
Run Code Online (Sandbox Code Playgroud)
--在二级
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;
Run Code Online (Sandbox Code Playgroud)
--在初级
ALTER AVAILABILITY GROUP MyAG ADD DATABASE AdventureWorks2012;
Run Code Online (Sandbox Code Playgroud)
--在二级
ALTER DATABASE AdventureWorks2012 SET HADR AVAILABILITY GROUP = MyAG;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
22171 次 |
最近记录: |