SQL2008的镜像功能
来源:互联网 发布:甜蜜的死亡 知乎 编辑:程序博客网 时间:2024/04/28 22:57
SQL2008的镜像功能
数据库镜像相当于2台服务器提供容错功能,其实原理是进行日志文件的复制及恢复操作保持数据的同步
,一般镜像服务2台服务器即可,但出现故障需要手动进行切换,如果增加一台见证服务器就形成了自动切换
的功能,见证服务器的自动切换操作一般在10秒内完成,所以对用户来所感觉不到任何异样。
为本次实验我搭建了3台虚拟机,均是windows2003+sql2008,各分配内存为500M。
拓补图如下:
为本次实验我搭建了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来登入登入密码都一样
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目录
文件夹建立后我们在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
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
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
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
GO
ALTER DATABASE ositpro SET WITNESS='TCP://sql-3:5022';
GO
GO
此时sql-1上数据已显示为主体,已同步,查看3台服务器的对象如下
接下来进行模拟故障切换
首先在sql-2上打开数据库镜像监视器,此状态每10秒更新一次
此时sql-1为主体服务器,sql-2为镜像,下面我们禁用sql-1的网卡
由下图可以看到sql-1的数据库状态变成了正在恢复,sql-2变成了主体,因为没有了镜像服务器,所以显示
接下来进行模拟故障切换
首先在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上执行即可
在sql-2上的镜像监视器里可以看到,sql-2当前脚色为主体,镜像状态为断开,见证服务器连接正常
此时如果sql-1的网卡回复正常sql-2还是主服务器,sql-1变成了镜像服务器了
2个不会恢复原始状态的,如需切换到初始环境使用下面代码在sql-1上执行即可
ALTER DATABASE ositpro SET PARTNER FAILOVER
OK,使用3台服务器搭建自动切换镜像的实验完成
- SQL2008的镜像功能
- SQL2008的镜像功能
- SQL2008数据库镜像操作
- sql2008定期清理镜像日志
- SQL2008数据库镜像之 如何起用镜像数据库
- 部署 无域的 SQL2008 镜像(高安全模式) 记录
- 正式版SQL2008的Change Data Capture功能
- SQL SERVER2008镜像功能的实现
- H3C S5000P 交换机 端口镜像功能的配置
- 制作带有 GRUB 引导功能的软盘镜像文件
- 带谷歌搜索功能的搜索镜像地址集
- Docker使用开启systemctl功能的cenos7镜像
- 制作带有 GRUB 引导功能的软盘镜像文件
- Linq 实现像sql in的功能
- 实战SQL 2008 数据库镜像功能
- SQL Server 2005 镜像功能实现
- 实战SQL 2008 数据库镜像功能
- SQL Server镜像功能完全实现
- 禁止水晶报表分组及子报表点击时弹出新窗口
- 使用多窗体时, 关于节约内存和加快启动速度的思考与尝试
- scanf总结
- java回调机制及Hibernate中的HibernateTemplate实现
- 最具创意的230家网站
- SQL2008的镜像功能
- VirtualBox中使用U盘的方法
- 愛情就像大便
- 虚拟机和主机共享文件夹设置
- 让sap连接进来
- UBUNTU添加开机自动启动程序方法
- 商业智能(BI)系统中仪表盘的应用分析
- Spring--quartz中cronExpression配置说明
- 【自用】Ubuntu 安装后配置