SQL2008双机热备方案.doc_第1页
SQL2008双机热备方案.doc_第2页
SQL2008双机热备方案.doc_第3页
SQL2008双机热备方案.doc_第4页
SQL2008双机热备方案.doc_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、SQL2008双机热备方案Question0Sign in to vote公司要上一套系统,DB 用 SQL2008 ,怎么实现双机热备?一种方案是用windows 的故障转移群集搭配SQL 自己的群集功能,这种方案需要有共享存储,我现在在虚拟测试环境没办法做实验,所以暂时先不考虑这个。另外一种是用镜像的方式做双机热备,DB 都放在服务器上,不用外接存储,主节点服务器DB 实时复制到备用节点中,主节点故障后自动跳到备用节点,不会出现服务中断的问题。这种方式能否实现,该如何操作?因为没做过这种,所以思路有些乱,需要高手们给点指引,谢谢啦。Friday, November 09, 2012 7:4

2、2 AMReply|QuoteRik1012 10 PointsAnswers0Sign in to vote你好,你的方法是不是要有3 台服务器安装SQL ,一台主机, 一台备机, 一台做见证, 安装完 SQL 后,打开 SQL 输入你提供的命令,来实现镜像功能?因为以前没做过这块,所以比较小白,想细致了解一下,高手有空来指点指点,谢谢了。你好,那个见证服务器是可选的,你可以选择安装也可以不安装,见证服务器的作用就是,如果主机出错,那见证服务器就会自动地实现故障转移,然后使备机转化成主机,代替主机继续工作,如果你不安装的就只好出错的时候,自己手动转移了。也不是说要输入命令, SSMS 里这些

3、都有的, 你直接点击就可以了,因为我配置的时候也不愿意敲代码,不过这里有现成的你可以直接复制就好。这篇文档可以手把手教你如果配置,不用写命令,请参考:。有什么不清楚的,在问我们,大家相互学习啦。Thanks,Amy Peng立刻免费下载 TechNet 论坛好帮手 Marked as answer by Rik1012Tuesday, November 13, 2012 1:50 AMMonday, November 12, 2012 2:52 AMReply|QuoteAll repliesAmy Peng - MSFT 20,055 Points0Sign in to vote你说的故障转

4、移群集和共享存储是HA ,微软集群不是个什么好东西,个人看法只热备的话应该部署镜像 Try SQL Server 2008 QQ:315054403 dgdbaFriday, November 09, 2012 9:56 AMReply|Quotedgdba OEM制造行业1,480 Points0Sign in to voteAgree, books online tells you how to set db mirroring step by step.Friday, November 09, 2012 1:47 PMReply|Quotermiao News 32,240 Points

5、0Sign in to vote微软集群不是个什么好东西,dgdba 大侠你也太偏激了吧我做过 SQL2005 的镜像,不过步骤跟 2008 应该差不多, 给你一些示例代码,网上找的,自己亲自测试成功数据库: S_C_SC网段: 192.168.1.X-SQL2005数据库镜像的步骤-1 、检查 SQL Server 2005数据库-只有 SQL Server 2005标准版、 企业版和开发版才可以建立数据镜像。-其他版本即Express 只能作为见证服务器-要保证打上SP2 补丁SELECTSERVERPROPERTY(productlevel)-2、主备实例互通-实现互通可以使用域或证书来

6、实现,考虑实现的简单,以下选取证书的方式实现。注意:实现“主备数据库实例互通”的操作只需要做一次,每一对主备实例(不是数据库)做一次互通。-1 、设置镜像数据库为完整恢复模式alter DATABASE S_C_SC set recovery FULL-2 、创建证书(主备可并行执行)-主机执行USE master;CREATE MASTER KEY ENCRYPTION BY PASSWORD = joe;CREATE CERTIFICATE HOST_A_cert WITH SUBJECT = HOST_A certificate ,START_DATE = 2012-09-25;-备机执

7、行USE master;CREATE MASTER KEY ENCRYPTION BY PASSWORD = joe;CREATE CERTIFICATE HOST_B_cert WITH SUBJECT = HOST_B certificate ,START_DATE = 2012-09-25;-见证执行USE master;CREATE MASTER KEY ENCRYPTION BY PASSWORD = joe;CREATE CERTIFICATE HOST_C_cert WITH SUBJECT = HOST_C certificate ,START_DATE = 2012-09-2

8、5;-3 、创建连接的端点(主备可并行执行)-主机执行:USE masterCREATE ENDPOINT Endpoint_MirroringSTATE = STARTEDASTCP ( LISTENER_PORT=5022 , LISTENER_IP = ALL )FORDATABASE_MIRRORING( AUTHENTICATION = CERTIFICATE HOST_A_cert , ENCRYPTION = REQUIRED ALGORITHM AES , ROLE = ALL );-备机执行:USE masterCREATE ENDPOINT Endpoint_Mirrori

9、ngSTATE = STARTEDASTCP ( LISTENER_PORT=5022 , LISTENER_IP = ALL )FORDATABASE_MIRRORING( AUTHENTICATION = CERTIFICATE HOST_B_cert , ENCRYPTION = REQUIRED ALGORITHM AES , ROLE = ALL );-见证执行 :USE masterCREATE ENDPOINT Endpoint_MirroringSTATE = STARTEDASTCP ( LISTENER_PORT=5022 , LISTENER_IP = ALL )FORD

10、ATABASE_MIRRORING( AUTHENTICATION = CERTIFICATE HOST_C_cert , ENCRYPTION = REQUIRED ALGORITHM AES , ROLE = WITNESS );-4 、备份证书以备建立互联 (主备可并行执行)-主机执行:USE master-BACKUP CERTIFICATE HOST_A_cert TO FILE = D:SQLBackupHOST_A_cert.cer;BACKUP CERTIFICATE HOST_A_cert TO FILE = D:HOST_A_cert.cer;-备机执行:USE maste

11、rBACKUP CERTIFICATE HOST_B_cert TO FILE = D:SQLBackupHOST_B_cert.cer;-见证执行 :USE masterBACKUP CERTIFICATE HOST_C_cert TO FILE = D:SQLBackupHOST_C_cert.cer;-5 、互换证书-将备份到的证书进行互换,即HOST_A_cert.cer复制(是复制不是剪切)-到备机的。HOST_B_cert.cer复制(是复制不是剪切 )到主机的 D:SQLBackup-见证的证书HOST_C_cert.cer复制到主机和备机,主机和备机复制到见证-6 、添加登陆名

12、、用户(主备见证可并行执行)-以下操作只能通过命令行运行,通过图形界面无法完成。(截至文档编写结束,SQL Server2005的版本号为SP2 )-主机执行:USE masterCREATE LOGIN HOST_B_login WITH PASSWORD = test;CREATE USER HOST_B_user FOR LOGIN HOST_B_login;-CREATE CERTIFICATE HOST_B_cert AUTHORIZATION HOST_B_user FROM FILE = D:SQLBackupHOST_B_cert.cer;CREATE CERTIFICATE

13、HOST_B_cert AUTHORIZATIONHOST_B_user FROM FILE = D:HOST_B_cert.cer;GRANT CONNECT ON ENDPOINT:Endpoint_MirroringTO HOST_B_loginUSE masterCREATE LOGIN HOST_C_login WITH PASSWORD = test;CREATE USER HOST_C_user FOR LOGIN HOST_C_login;CREATE CERTIFICATE HOST_C_cert AUTHORIZATIONHOST_C_user FROM FILE = D:

14、HOST_C_cert.cer;GRANT CONNECT ON ENDPOINT:Endpoint_MirroringTO HOST_C_login;GO-HOST_B_cert是第一步创建的证书-备机执行:USE masterCREATE LOGIN HOST_A_login WITH PASSWORD = test;CREATE USER HOST_A_user FOR LOGIN HOST_A_login;-CREATE CERTIFICATE HOST_A_cert AUTHORIZATION HOST_A_user FROM FILE = D:SQLBackupHOST_A_cer

15、t.cer;CREATE CERTIFICATE HOST_A_cert AUTHORIZATION HOST_A_user FROM FILE = D:HOST_A_cert.cer;GRANT CONNECT ON ENDPOINT:Endpoint_MirroringTO HOST_A_login;USE masterCREATE LOGIN HOST_C_login WITH PASSWORD = test;CREATE USER HOST_C_user FOR LOGIN HOST_C_login;CREATE CERTIFICATE HOST_C_cert AUTHORIZATIO

16、NHOST_C_user FROM FILE = D:HOST_C_cert.cer;GRANT CONNECT ON ENDPOINT:Endpoint_MirroringTO HOST_C_login;GO-见证执行 :USE masterCREATE LOGIN HOST_A_login WITH PASSWORD = test;CREATE USER HOST_A_user FOR LOGIN HOST_A_login;-CREATE CERTIFICATE HOST_A_cert AUTHORIZATION HOST_A_user FROM FILE = D:SQLBackupHOS

17、T_A_cert.cer;CREATE CERTIFICATE HOST_A_cert AUTHORIZATIONHOST_A_user FROM FILE = D:HOST_A_cert.cer;GRANT CONNECT ON ENDPOINT:Endpoint_MirroringTO HOST_A_login;USE masterCREATE LOGIN HOST_B_login WITH PASSWORD = test;CREATE USER HOST_B_user FOR LOGIN HOST_B_login;-CREATE CERTIFICATE HOST_B_cert AUTHO

18、RIZATION HOST_B_user FROM FILE = D:SQLBackupHOST_B_cert.cer;CREATE CERTIFICATE HOST_B_cert AUTHORIZATIONHOST_B_user FROM FILE = D:HOST_B_cert.cer;GRANT CONNECT ON ENDPOINT:Endpoint_MirroringTO HOST_B_login;-注意 : 这里添加的登录名和用户是添加在master 数据库里的不是要做镜像的那个数据库-这里添加的登录名和用户是用来做连接的,下面建立镜像关系才是修复孤立用户才是-修复要做镜像的那个数

19、据库的孤立用户 !- 建立镜像关系 -以下步骤是针对每个数据库进行的,例如:如果主机中有5个数据库以下过程就要执行5 次。-7 、 手工同步登录名和密码-在前面提到数据库镜像的缺点之一是无法维护登录名,所以需要我们手工维护登录解决孤立用户。-在主数据库中执行如下语句:USE master;select sid,name,dbname from syslogins WHERE dbname= 要做镜像的数据库名 USE master;select sid,name,dbname from syslogins WHERE dbname=S_C_SC-查找出要做镜像的那个数据库里面有哪些用户名和si

20、d ,例如:上述的myuser -在备库中执行如下语句:USE master;exec sp_addloginloginame = <LoginName>,passwd = <Password>,sid = <sid> ;-8 、准备备机数据库-主库要备份两个bak 文件-第一个:完整备份-第二个:事务日志备份,截断事务日志-( 1)先在备机还原完整备份,“restore with norecovery”和 覆盖现有数据库-做了第一步之后,S_C_SC- 任务 -还原 -事务日志按钮才可用-( 2)再还原事务日志,“restore with norecove

21、ry和时间”点:最近状态-如果执行成功备机数据库将会变成正在还原 - 由于是实验,没有为服务器配置双网卡,IP 地址与图有点不一样,但是原理一样。-9 、必须要在镜像数据库中先设置好伙伴后,才能在主体服务器执行-再在主体服务器实例上,将 备机上的服务器实例设置为伙伴-备机执行USE masterALTER DATABASE S_C_SC SET PARTNER =TCP:/00:5022-主机执行USE masterALTER DATABASE S_C_SC SET PARTNER =TCP:/03:5022-10 、在主机执行设置见证服务器ALTE

22、R DATABASE S_C_SC SET WITNESS =TCP:/01:5022;GO-此时主: S_C_SC( 主体,已同步 )备 : S_C_SC( 镜像,已同步 /正在还原 )-TCP:/00:主-TCP:/03:备 -如果删除不了正在还原的备库,那么可以重启SQL 服务,就可以删除了! !-故障解决 : ping iptelnet 5022端口-测试 -默认情况下,事务安全级别的设置为FULL,即同步运行模式,而且SQL Server 2005标准版只支持同步模式。-关闭事务安全可将会话切换到异步运行模式,该模式可

23、使性能达到最佳。USE master;ALTER DATABASE S_C_SC SET PARTNER SAFETYFULL - (默认)事务安全,同步模式镜像的更改和主体的更改都同步ALTER DATABASE S_C_SC SET PARTNER SAFETYOFF - 事务不安全 ,异步模式只有主体的更改同步-1 、主备互换-主机停掉SQL 服务-2 、主服务器Down 掉 ,备机紧急启动并且开始服务-备机执行:USE master;ALTER DATABASE S_C_SC SET PARTNERFORCE_SERVICE_ALLOW_DATA_LOSS;ALTER DATABASE

24、 S_C_SC SET ONLINE-3 、开启主机的SQL 服务,原来的主服务器恢复,可以继续工作 ,需要重新设定镜像-备机执行:USE master;ALTER DATABASE S_C_SC SET PARTNER RESUME; -恢复镜像ALTER DATABASE S_C_SC SET PARTNER FAILOVER;-切换到主机-4 、原来的主服务器恢复,可以继续工作 - 查看当前服务器做了镜像 partner 的那个服务器SELECT * FROM sys.database_mirroring-删除镜像 -查看终端点select * from sys.endpoints-删除

25、某终端点 ( 终端点不带引号)drop ENDPOINT endpoint_Mirroring-删除证书在 master | Security | Certificates-删除用户在 master | User-然后可以删除登录名drop login <login_name>-修改 master key:alter master key drop encryption by service master key- 删除 master key:drop master key-删除镜像的命令:ALTER DATABASE S_C_SC set partner OFFRESTORE D

26、ATABASE S_C_SC WITH recovery- 放弃事务,立刻还原- 解除数据库镜像-ALTER DATABASE S_C_SC SET PARTNER OFF给我写信:QQ 我: Friday, November 09, 2012 2:02 PMReply|Quote桦仔DBA(MVP)5,380 Points0Sign in to vote各有各立场和观察角度吧如果你玩下虚拟化平台,再回头看下微软集群对 MS Office/Win/SQL Server 偏爱,对 MSCS 偏厌 Try SQL Server 2008 QQ:315054403 dgdbaSaturday, No

27、vember 10, 2012 3:09 AMReply|Quotedgdba OEM制造行业1,480 Points0Sign in to vote你说的故障转移群集和共享存储是HA ,微软集群不是个什么好东西,个人看法只热备的话应该部署镜像Try SQL Server 2008 QQ:315054403 dgdba不管 MSCS 是不是好东西,SQL 的 Failover cluster是依赖于它的。做过大数据量高性能系统的就会知道,Mirror 不见得比Failover cluster好用。另外,没有什么是服务不中断的,只是时间长短而已。Hyper-V 虚拟机做共享存储非常简单。想不想时

28、已是想,不如不想都不想。Saturday, November 10, 2012 5:29AMReply|Quote怡红公子(MVP)6,410 Points0Sign in to vote怡红公子大侠说得对,根据实际情况选择合适的解决方案节省成本就使用Mirror高一点使用MSCS最高一点虚拟化给我写信:QQ 我: Saturday, November 10, 2012 5:52 AMReply|Quote桦仔DBA(MVP)5,380 Points0Sign in to voteAny reason give VM highest ranking? Dont know anyone use

29、VM in large environment.Saturday, November 10, 2012 8:52 PMReply|Quotermiao News 32,240 Points0Sign in to voteAny reason give VM highest ranking? Dontknow anyone use VM in large environment.看实际情况了,有些大客户会有很多小系统的。比如海关、医院。想不想时已是想,不如不想都不想。Sunday, November 11, 201212:34 AMReply|Quote怡红公子(MVP)6,410 Points

30、0Sign in to vote不一定是非常大的系统给我写信:QQ 我: Sunday, November 11, 2012 2:03 AMReply|Quote桦仔DBA(MVP)5,380 Points0Sign in to voteThats why bothers me. How come VM get highest ranking, whats your standard?Sunday, November 11, 2012 7:40 PMReply|Quotermiao News 32,240 Points0Sign in to vote公司要上一套系统,DB 用 SQL2008

31、,怎么实现双机热备?一种方案是用 windows 的故障转移群集搭配 SQL 自己的群集功能,这种方案需要有共享存储,我现在在虚拟测试环境没办法做实验,所以暂时先不考虑这个。另外一种是用镜像的方式做双机热备, DB 都放在服务器上,不用外接存储,主节点服务器 DB 实时复制到备用节点中,主节点故障后自动跳到备用节点,不会出现服务中断的问题。这种方式能否实现,该如何操作?因为没做过这种,所以思路有些乱,需要高手们给点指引,谢谢啦。你好,利用镜像来实现双机热备份这个方案是可行的,详细的信息你可以参考下面这篇文档,这篇文章图文并茂的告诉你如何配置数据库镜像:/3828341/Database-Mir

32、roring-in-SQL-Server-2008.htm。Thanks ,Amy Peng 立刻免费下载 TechNet 论坛好帮手 Monday, November 12, 2012 1:37 AMReply|QuoteAmy Peng - MSFT 20,055 Points0Sign in to vote你好,你的方法是不是要有3 台服务器安装SQL ,一台主机, 一台备机, 一台做见证, 安装完 SQL 后,打开 SQL 输入你提供的命令,来实现镜像功能?因为以前没做过这块,所以比较小白,想细致了解一下,高手有空来指点指点,谢谢了。Monday, November 12, 2012

33、2:24AMReply|QuoteRik1012 10 Points0Sign in to vote你好,你的方法是不是要有3 台服务器安装SQL ,一台主机, 一台备机, 一台做见证, 安装完 SQL 后,打开 SQL 输入你提供的命令,来实现镜像功能?因为以前没做过这块,所以比较小白,想细致了解一下,高手有空来指点指点,谢谢了。你好,那个见证服务器是可选的,你可以选择安装也可以不安装,见证服务器的作用就是,如果主机出错,那见证服务器就会自动地实现故障转移,然后使备机转化成主机,代替主机继续工作,如果你不安装的就只好出错的时候,自己手动转移了。也不是说要输入命令, SSMS 里这些都有的,

34、你直接点击就可以了,因为我配置的时候也不愿意敲代码,不过这里有现成的你可以直接复制就好。这篇文档可以手把手教你如果配置,不用写命令,请参考:。有什么不清楚的,在问我们,大家相互学习啦。Thanks,Amy Peng立刻免费下载 TechNet 论坛好帮手 Marked as answer by Rik1012Tuesday, November 13, 2012 1:50 AMMonday, November 12, 2012 2:52 AMReply|QuoteAmy Peng - MSFT 20,055 Points0Sign in to vote你好,那个见证服务器是可选的,你可以选择安装

35、也可以不安装,见证服务器的作用就是,如果主机出错,那见证服务器就会自动地实现故障转移,然后使备机转化成主机,代替主机继续工作,如果你不安装的就只好出错的时候,自己手动转移了。HI ,AMY ,你提供的资料太有用了,非常感谢你的帮助,不过我在做镜像的时候出了个问题,说是无法连接到镜像服务器(我账号没验证发布了图。闷)我根据提示去查了一下我的远程连接设置,基本都是正常的,但是在主机的SQL 设置中,查看数据库方面的选项里面没有发现 RemoteAccessEnable项目,是不是有哪里还需要设置?在备机打开数据库方面选项的时候却提示不具备权限,我的 SQL 管理账号是加在 Domain Admin

36、s 里面的,权限应该够了吧。 Monday, November 12, 2012 8:24 AMReply|QuoteRik1012 10 Points0Sign in to vote你好,你说你要找RemoteAccessEnable,打开SSMS后直接右击服务器名,然后点击“方面”“服务器配置”然后设置RemoteAccessEnable为 True ;TCP/IP记得要 enable ,你可以根据我下面给的文章,看看远程连接哪里没配置好(文章里就有介绍怎样设置RemoteAccessEnable):d1.html。如果还是报错,希望你可以把错误信息发一下给我们。Thanks,Amy Pe

37、ng 立刻免费下载 TechNet 论坛好帮手 Monday, November 12, 2012 9:09 AMReply|QuoteAmy Peng - MSFT 20,055 Points0Sign in to vote 哈哈,终于搞定了,原来是 sql server browser 禁用了,没有搭见证服务器的已经弄好了,手动测试故障转移也成功了,接下来做个见证服务器测试。太感谢 AMY 了,另外我还有点疑问想请教一下,这种SQL镜像是同时基于数据库和服务器的吗,我的意思是,如果主机上的 DB 坏了,他能启用备机的DB ,如果主机的服务器挂了,备机是否也能正常转换角色。Monday, N

38、ovember 12,2012 9:43 AMReply|QuoteRik1012 10 Points0Sign in to voteDATABASE MIRRORING 是基于数据库级别的 ,Cluster 是基于 Instance 级别的。镜像可以自动转移也可以手动转移,在于你选的是High-performance还是High-safety模式。在 DBConnection 中可以使用 Failover Partner 参数 Monday, November 12, 2012 1:49 PMReply|QuoteKevinLiu328(MVP)2,390 Points0Sign in to

39、 vote哈哈,终于搞定了,原来是sql serverbrowser 禁用了,没有搭见证服务器的已经弄好了,手动测试故障转移也成功了,接下来做个见证服务器测试。太感谢 AMY 了,另外我还有点疑问想请教一下,这种SQL镜像是同时基于数据库和服务器的吗,我的意思是,如果主机上的 DB 坏了,他能启用备机的DB ,如果主机的服务器挂了,备机是否也能正常转换角色。Depends on mirror config. If you set HS mode with witness, will switch all mirrored dbs to partner in case primary server goes down.Monday, November 12, 2012 2:15 PMReply|Quotermiao News 32,240 Points0Sign in to vote哈哈,终于搞定了,原来是sql serverbrowser 禁用了,没有搭见证服务器的已经弄好了,手动测试故障转移也成功了,接下来做个见证服务器测试。太感谢 AMY 了,另外

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论