实战SQL 数据库镜像功能.docx

上传人:b****3 文档编号:5396262 上传时间:2023-05-08 格式:DOCX 页数:12 大小:1.29MB
下载 相关 举报
实战SQL 数据库镜像功能.docx_第1页
第1页 / 共12页
实战SQL 数据库镜像功能.docx_第2页
第2页 / 共12页
实战SQL 数据库镜像功能.docx_第3页
第3页 / 共12页
实战SQL 数据库镜像功能.docx_第4页
第4页 / 共12页
实战SQL 数据库镜像功能.docx_第5页
第5页 / 共12页
实战SQL 数据库镜像功能.docx_第6页
第6页 / 共12页
实战SQL 数据库镜像功能.docx_第7页
第7页 / 共12页
实战SQL 数据库镜像功能.docx_第8页
第8页 / 共12页
实战SQL 数据库镜像功能.docx_第9页
第9页 / 共12页
实战SQL 数据库镜像功能.docx_第10页
第10页 / 共12页
实战SQL 数据库镜像功能.docx_第11页
第11页 / 共12页
实战SQL 数据库镜像功能.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

实战SQL 数据库镜像功能.docx

《实战SQL 数据库镜像功能.docx》由会员分享,可在线阅读,更多相关《实战SQL 数据库镜像功能.docx(12页珍藏版)》请在冰点文库上搜索。

实战SQL 数据库镜像功能.docx

实战SQL数据库镜像功能

实战SQL2008数据库镜像功能

  发表日期:

2009年6月26日          【编辑录入:

信息资料处叶建勇(老师)】     

宽屏显示

SQL2008的镜像功能

  

  数据库镜像相当于2台服务器提供容错功能,其实原理是进行日志文件的复制及恢复操作保持数据的同步

,一般镜像服务2台服务器即可,但出现故障需要手动进行切换,如果增加一台见证服务器就形成了自动切换

的功能,见证服务器的自动切换操作一般在10秒内完成,所以对用户来所感觉不到任何异样。

  为本次实验我搭建了3台虚拟机,均是windows2003+sql2008,各分配内存为500M。

拓补图如下:

计算机名分别是:

sql-1===用作主服务器   =ip:

10.40.1.10

sql-2===用作镜像服务器 =ip:

10.40.1.11

sql-3===用作见证服务器 =ip:

10.40.1.12

本次环境为工作组,为方便验证3台都已administrator来登入登入密码都一样

首先在对象资源管理器里分别连接到这3台服务器

若无法连接,请在各自服务器的sql网络配置里启动namedpipes和tcp/ip协议

然后再SQL-1上建立一个测试用的数据库如:

ositpro

并设置数据库恢复模式为完整

代码如下:

alterdatabaseositprosetrecoveryfullwithno_wait

 

图形界面的设置位置在数据库的属性-选项里,如下图

接着分别在SQL-1服务器的D盘根目录下建立存放备份的文件夹:

sqlbak

       在SQL-2服务器的D盘根目录下建立同样的目录并设置共享权限:

sqlbak及保存镜像还原保存数据及

日志的文件夹:

sqldata

文件夹建立后我们在SQL-1上备份刚才创建的ositpro数据库到sqlbak目录

backupdatabaseositprotodisk='d:

\sqlbak\ositpro.bak'

 

备份完毕后我们将数据拷到sql-2上的sqlbak目录下,然后再sql-1上直接还原数据库

选择目标数据库,源备份文件

将行数据及日志另存到D盘sqldata目录下,并选择恢复模式的第2条:

restorewithnorecovery

还原完毕

接下来分别在3台服务器上创建用于侦听对象的TCP端点

因为3台SQL服务器所使用的实例都不一样,所以端口号可以相同,反之必须不同

SQL-1执行下面脚本

createendpointendpoint_mirroring

state=started

astcp(listener_port=5022)

fordatabase_mirroring(authentication=windowsntlm,encryption=supported,role=partner)

go

SQL-2执行下面脚本

createendpointendpoint_mirroring

state=started

astcp(listener_port=5022)

fordatabase_mirroring(authentication=windowsntlm,encryption=supported,role=partner)

go

SQL-3执行下面脚本

createendpointendpoint_mirroring

state=started

astcp(listener_port=5022)

fordatabase_mirroring(authentication=windowsntlm,encryption=supported,role=witness)

go

在sql-2上设置主服务器

ALTERDATABASEositproSETPARTNER='TCP:

//sql-1:

5022';

GO

在sql-1上设置镜像服务器及见证服务器

ALTERDATABASEositproSETPARTNER='TCP:

//sql-2:

5022';

GO

ALTERDATABASEositproSETWITNESS='TCP:

//sql-3:

5022';

GO

此时sql-1上数据已显示为主体,已同步,查看3台服务器的对象如下

接下来进行模拟故障切换

首先在sql-2上打开数据库镜像监视器,此状态每10秒更新一次

此时sql-1为主体服务器,sql-2为镜像,下面我们禁用sql-1的网卡

由下图可以看到sql-1的数据库状态变成了正在恢复,sql-2变成了主体,因为没有了镜像服务器,所以显示

已断开连接

在sql-2上的镜像监视器里可以看到,sql-2当前脚色为主体,镜像状态为断开,见证服务器连接正常

此时如果sql-1的网卡回复正常sql-2还是主服务器,sql-1变成了镜像服务器了

2个不会恢复原始状态的,如需切换到初始环境使用下面代码在sql-1上执行即可

ALTERDATABASEositproSETPARTNERFAILOVER

 

OK,使用3台服务器搭建自动切换镜像的实验完成

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2