实战SQL 2008 数据库镜像功能

news/2024/7/4 5:36: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网络配置里启动named pipes和tcp/ip协议


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

并设置数据库恢复模式为完整
代码如下:

alter database ositpro set recovery full with no_wait


 


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

接着分别在SQL-1服务器的D盘根目录下建立存放备份的文件夹:sqlbak
        在SQL-2服务器的D盘根目录下建立同样的目录并设置共享权限:sqlbak及保存镜像还原保存数据及
日志的文件夹:sqldata
文件夹建立后我们在SQL-1上备份刚才创建的ositpro数据库到sqlbak目录
backup database ositpro to disk='d:/sqlbak/ositpro.bak'

 


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

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

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

还原完毕

接下来分别在3台服务器上创建用于侦听对象的TCP端点
因为3台SQL服务器所使用的实例都不一样,所以端口号可以相同,反之必须不同
SQL-1执行下面脚本
create endpoint endpoint_mirroring
state=started
as tcp(listener_port=5022)
for database_mirroring(authentication=windows ntlm,encryption=supported,role=partner)
go
SQL-2执行下面脚本
create endpoint endpoint_mirroring
state=started
as tcp(listener_port=5022)
for database_mirroring(authentication=windows ntlm,encryption=supported,role=partner)
go
SQL-3执行下面脚本
create endpoint endpoint_mirroring
state=started
as tcp(listener_port=5022)
for database_mirroring(authentication=windows ntlm,encryption=supported,role=witness)
go
在sql-2上设置主服务器

ALTER DATABASE ositpro SET PARTNER='TCP://sql-1:5022';
GO

在sql-1上设置镜像服务器及见证服务器
ALTER DATABASE ositpro SET PARTNER='TCP://sql-2:5022';
GO
ALTER DATABASE ositpro SET WITNESS='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上执行即可
ALTER DATABASE ositpro SET PARTNER FAILOVER



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

http://www.niftyadmin.cn/n/3401188.html

相关文章

战争剧《战昆仑》热血收官 爱奇艺揽获全网近一半流量

近日,大型战争史诗剧《战昆仑》收官,截止目前,全网播放已达7.5亿,爱奇艺独揽3.3亿,占全网市场份额的44.0%,以超出第二名16.23%的优势领先。爱奇艺持续通过好故事与用户建立情感共鸣,并借助题材的…

Linux CentOS 下安装.net core sdk

注册Microsoft密钥 sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm 安装.NET SDK sudo yum update sudo yum install dotnet-sdk-2.2 其他版本请参照微软官方,这里仅本人记录。 https://dotnet.microsoft.com/download/l…

生成强名称程序集

通过嵌入公钥并使用私钥签名,可以生成强名称(strong name)的程序集。强名称程序集由4部分进行标识:名称、版本、区域性和公钥。与之相对的,我们可以把没有嵌入公钥和使用私钥签名的程序集称之为弱名称(weak…

笔记32--目录values下xml文件:TypeArray、attrs、styles、colors、strings、dimens

1、attrs.xml&#xff1a;定义的是类的属性(声明自定义属性)&#xff0c;这些属性会在类的构造函数中用到。这个还不太明白。贴个大神的链接。 以gallery为例吧&#xff0c;在attrs.xml中(注意此处必须是galleryItemBackground)&#xff1a; <declare-styleable name"…

给自己的软件添加后门

软件彩蛋我想大家都应该听说过。经典的比如在Excel得某个单元隔里面OOXX就可以获得一个赛车游戏之类。这是一种软件彩蛋&#xff0c;纯属娱乐。但是更多的“彩蛋”被用作软件后门。比如我们提供给客户一个软件&#xff0c;通常是看不到某些调试用的窗口和工具的&#xff1b;当我…

asp.net 关闭网页代码

一、linkbutton的单击事件里关闭页面&#xff0c;拼接代码就是了 补充&#xff0c;不可能&#xff0c;我自己试过&#xff0c;再补充一下 1.关闭时提示“是否关闭” Response.Write("<script language:javascript>javascript:window.close();</script>")…

笔记33--ListView和ScrollView点击事件的冲突

知识补充&#xff1a; android:focusable"false" 问题&#xff1a;这个属性有叼用&#xff1f; 第一种方式&#xff1a; 在ListView的item的布局文件最外层设置&#xff1a; android:descendantFocusability"blocksDescendants"设置此属性后&#xff0c;…