SQL SERVER镜像切换

--SQL SERVER镜像切换
------------------------------2013/11/30
切换条件
 
高性能
没有见证服务器的高安全性模式
具有见证服务器的高安全性模式
自动故障转移
手动故障转移
强制服务
 
 
 
手动切换条件
 
手动故障转移
这要求使用高安全性模式。 伙伴双方必须互相连接,并且数据库必须已同步。
 
打开事务安全
连接到主体服务器。
发出以下 Transact-SQL 语句:
ALTER DATABASE <database> SET PARTNER SAFETY FULL
其中,<database> 为镜像数据库的名称。
 
关闭事务安全
连接到主体服务器。
发出以下语句:
ALTER DATABASE <database> SET PARTNER SAFETY OFF
其中,<database> 是镜像数据库。
 
手动故障转移数据库镜像会话 (Transact-SQL)
 
同步镜像数据库时(即数据库处于 SYNCHRONIZED 状态时),数据库所有者可以启动到镜像服务器的手动故障转移。 手动故障转移只能从主体服务器启动。
手动故障转移数据库镜像会话
  1. 连接到主体服务器。
  2. 将数据库上下文设置为 master 数据库:
USE master;
  1. 在主体服务器上执行下列语句:
ALTER DATABASE database_name SET PARTNER FAILOVER,其中 database_name 是镜像数据库。
此语句将立即启动从镜像服务器到主体角色的转换。
 
 
在数据库镜像会话中强制服务 (Transact-SQL)
 
强制服务(可能造成数据丢失)
数据库镜像提供强制服务(可能造成数据丢失)作为灾难恢复方法,以允许将镜像服务器用作温备用服务器。 仅当主体服务器在镜像会话中与镜像服务器断开连接时,才能强制服务运行。 因为强制服务运行存在数据丢失的风险,所以应该谨慎使用。
是否支持强制服务取决于会话的运行模式和状态,如下所示:
通常,当主体服务器断开连接时,高性能模式支持强制服务。 但是,高性能模式会话可能存在见证服务器(虽然并非必需)。 在这种情况下,强制服务要求镜像服务器和见证服务器相互连接。
当主体服务器断开连接时,不带自动故障转移功能的高安全性模式支持强制服务。
当镜像服务器和见证服务器相互连接并且它们都未连接到主体服务器时,具有自动故障转移功能的高安全性模式支持强制服务(只要当镜像服务器上次连接到主体服务器时,不回滚镜像数据库)。
建议仅当您必须立即还原数据库服务并愿意承担数据丢失的风险时,才能强制服务运行。 强制服务的结果相当于删除镜像,但强制服务在恢复镜像时便于重新同步数据库,并且可能存在数据丢失的风险。 强制服务将把主体角色平滑转换给镜像数据库。 镜像服务器将担当主体服务器角色并立即向客户端提供数据库的副本。 新的主体数据库在没有镜像的情况下运行(即公开运行)。
 
 
在高性能模式和不带自动故障转移功能的高安全性模式下,如果主体服务器失败而镜像服务器可用,则数据库所有者可以强制将服务故障转移到镜像数据库(可能造成数据丢失),从而使数据库可用。 此选项仅在以下情况中可用:
1. 主体服务器已关闭。
2.  WITNESS 设置为 OFF 或连接到镜像服务器。
 
ALTER DATABASE <database_name> SET PARTNER FORCE_SERVICE_ALLOW_DATA_LOSS
 
 
 
 
删除数据库镜像 (SQL Server)
 
 
本主题说明如何使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 2012 中从数据库删除数据库镜像。 数据库所有者可以随时通过从数据库中删除镜像来手动停止数据库镜像会话。
本主题内容
  • 开始之前:
安全性
  • 删除数据库镜像,使用:
SQL Server Management Studio
Transact-SQL
开始之前

安全性
权限
需要对数据库具有 ALTER 权限。
 [返回页首]
使用 SQL Server Management Studio

删除数据库镜像
  1. 在数据库镜像会话期间,连接到主体服务器实例,然后在对象资源管理器中,单击服务器名称以展开服务器树。
  2. 展开“数据库”并选择数据库。
  3. 右键单击数据库,选择“任务”,再单击“镜像”。 这样便可打开“数据库属性”对话框的“镜像”页。
  4. “选择页”窗格中,单击“镜像”
  5. 若要删除镜像,请单击“删除镜像”。 此时,将显示一个提示,要求您进行确认。 如果单击“是”,会话将停止,并从数据库中删除镜像。
 [返回页首]
使用 Transact-SQL

若要删除数据库镜像,请使用“数据库属性”, 即使用“数据库属性”对话框的“镜像”页。
删除数据库镜像
  1. 为任一镜像伙伴连接到数据库引擎。
  2. 在标准菜单栏上,单击“新建查询”
  3. 发出以下 Transact-SQL 语句:
  4. ALTER DATABASE database_name SET PARTNER OFF
其中,database_name 是要删除其会话的镜像数据库。
以下示例从 AdventureWorks2012 示例数据库删除数据库镜像。
ALTER DATABASE AdventureWorks2012 SET PARTNER OFF;
后续操作:在删除数据库镜像之后

 注意
有关删除镜像会产生什么影响的信息,请参阅删除数据库镜像 (SQL Server)
  • 如果您打算在数据库上重新启动镜像
重新启动镜像之前,必须将在删除镜像后对主体数据库执行的日志备份全部应用到镜像数据库中。
  • 如果不打算重新启动镜像
或者,可以恢复以前的镜像数据库。 在作为镜像服务器的服务器实例上,可以使用以下 Transact-SQL 语句:
RESTORE DATABASE database_name WITH RECOVERY;
重要提示
如果恢复该数据库,则两个同名的不同数据库处于联机状态。 因此,需要确保客户端仅可访问其中一个数据库,通常为最新的主体数据库。
 [返回页首]
 

参考:http://msdn.microsoft.com/zh-cn/library/ms190471.aspx
http://msdn.microsoft.com/zh-cn/library/ms175082.aspx
http://msdn.microsoft.com/zh-cn/library/ms189850.aspx
http://msdn.microsoft.com/zh-cn/library/ms189852.aspx
原文地址:https://www.cnblogs.com/jackhub/p/3451623.html