sql server 2005实现双机热备份

原文:点击打开链接


预备知识:   数据库镜像基本概念
http://msdn2.microsoft.com/zh-cn/library/ms177412.aspx
http://msdn2.microsoft.com/zh-cn/library/ms189852.aspx

--------一   准备工作----------
-------(一)   安装三个实例,分别为:-----
SZDXBAK\SQLSERVER(默认实例),   作为主体服务器
SZDXBAK\SQL2   作为镜像服务器
SZDXBAK\WITNESS   作为鉴证服务器
注:   所有实例服务使用SQLService账户启动

------(二)   数据库准备-------
--1   在主体服务上创建测试数据库   RecoveryDb
并创建一个完全备份
--2   在镜像服务上使用NORECOVERY选项恢复数据库,
恢复后数据库状态为 '正在还原 '


-----     二   创建数据库镜像端点----
--1   在主体数据库(SQLSERVER实例)上创建端点,用于伙伴通讯
CREATE   ENDPOINT   DbMirroring
STATE=STARTED
AS   TCP(LISTENER_PORT=5022)
FOR   DATABASE_MIRRORING(ROLE=PARTNER,ENCRYPTION=SUPPORTED)
go

--2   在镜像数据库(SQL2实例)上创建端点,用于伙伴通讯
CREATE   ENDPOINT   DbMirroring
STATE=STARTED
AS   TCP(LISTENER_PORT=5033)
FOR   DATABASE_MIRRORING(ROLE=PARTNER,ENCRYPTION=SUPPORTED)
go

--3   在鉴证服务器(WITNESS实例)上创建端点,用于鉴证通讯
CREATE   ENDPOINT   DbMirroring
STATE=STARTED
AS   TCP(LISTENER_PORT=5022)
FOR   DATABASE_MIRRORING(ROLE=WITNESS,ENCRYPTION=SUPPORTED)
go

ALTER   ENDPOINT   DbMirroring   STATE=STARTED
go

--4   检查端点配置,可分别在不同服务器上运行以下查询
SELECT   *   FROM   sys.database_mirroring_endpoints

-----     三   配置数据库镜像安全性--------

--1   主体数据库(SQLSERVER实例)
use   master
go
GRANT   CONNECT   ON   ENDPOINT:: "DbMirroring "   TO   "SZDXBAK\SQLService "
go

--2   镜像数据库(SQL2实例)
use   master
go
GRANT   CONNECT   ON   ENDPOINT:: "DbMirroring "   TO   "SZDXBAK\SQLService "
go

--3   鉴证服务器(WITNESS实例)
use   master
go
GRANT   CONNECT   ON   ENDPOINT:: "DbMirroring "   TO   "SZDXBAK\SQLService "
go


-----   -四   启动数据库镜像-----
--注意配置顺序
--1   在镜像数据库(SQL2实例)上,指定到主体服务器(SQLSERVER实例)的伙伴端点
ALTER   DATABASE   RecoveryDb
SET   PARTNER=N 'TCP://SZDXBAK:5022 '
go

--2   在主数据库(SQLSERVER实例)上,指定到镜像服务器(SQL2实例)的伙伴端点
ALTER   DATABASE   RecoveryDb
SET   PARTNER=N 'TCP://SZDXBAK:5033 '
go

--注:   以上两步完成后,已经配置为高保护级别性模式
--3   如果要创建高可用性模式:在主数据库上(SQLSERVER实例),指定鉴证服务器端点
ALTER   DATABASE   RecoveryDb
SET   WITNESS=N 'TCP://SZDXBAK:5044
go

--4   在高可用性模式下:配置数据库镜像事务安全级别
ALTER   DATABASE   RecoveryDb   SET   SAFETY   FULL
go

---   五     查看数据库镜像的配置状态
--1   通过Management   Studio   对象资源管理器,查看主体数据库,镜像数据库状态
--2   通过Management   Studio   对象资源管理器中的数据库属性查看状态
--3   通过系统目录视图查看数据库镜像配置情况
SELECT   *   FROM   sys.database_mirroring_endpoints
SELECT   *   FROM   sys.database_mirroring_endpoints
WHERE   database_id   =   (SELECT   database_id   FROM   sys.database
WHERE   name= 'RecoveryDb ')

以上配置完成后,主体数据库的状态为:主体,已同步
镜像数据库的状态为:镜像,已同步/正在还原..


---   六   服务器角色切换测试----
预备知识
数据库镜像角色切换
自动故障转移
    只针对高可用性模式  
    SAFETY=FULL
手动故障转移
    针对高可用性模式和高保护级别性模式  
    SAFETY=FULL
强制服务
    只针对高性能模式
    SAFETY=OFF

---(一)   自动故障转移
在主体服务器上,断开网络连接,通过数据库资源管理器查看主体/镜像服务器上数据库的状态
镜像服务器状态:   主体,已断开连接
恢复主体服务器
此时原来主体服务器(SQLSERVER实例)变为镜像服务器   状态为:镜像,已同步/正在还原..
原来镜像服务器(SQL2实例)变为主体服务器   状态:主体,已同步


---(二)   手动故障转移
--   主体服务器上执行故障转移过程
USE   MASTER
go
ALTER   DATABASE   RecoveryDb   SET   PARTNER   FAILOVER
go
执行完后主体服务器状态变为:   镜像,已同步/正在还原..
镜像服务器状态变为   主体,已同步

---(三)   强制服务,有可能造成数据丢失
--1)   在镜像服务器上,取消对鉴证服务器的配置
ALTER   DATABASE   RecoveryDb   SET   WINTESS   OFF

--2)   在镜像服务器上,配置事务安全性为OFF
ALTER   DATABASE   RecoveryDb   SET   SAFETY   OFF

--3)   断开主体服务器,在镜像服务器上,强制服务   进行角色切换
ALTER   DATABASE   RecoveryDb   SET   PARTNER   FORCE_SERVICE_ALLOW_DATA_LOSS
完成后数据库状态为   主体,已断开连接


-----七   如何查询镜像服务器上的数据:   在镜像服务器上创建数据库快照
--1   在镜像服务器上,创建数据库快照
CREATE   DATABASE   ReconveryDb_snap_1
ON   (NAME=RecoveryDb,FILENAM= 'H:\seconddb\recovery_snap1.ss ')
AS   SNAPSHOT   OF   RecoveryDb

--2     访问镜像数据库
USE   ReconveryDb_snap_1
go
SELECT   *   FROM   test


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值