SQLServer2008镜像实施过程摘要和碰到的问题
2012-07-12 16:37
246 查看
SQLServer2008关于可用性的解决方案
高可用性解决方案: http://msdn.microsoft.com/zh-cn/library/bb522583(v=sql.105).aspx
镜像解决方案:http://msdn.microsoft.com/zh-cn/library/bb934127(v=sql.105).aspx
几种镜像方案的对比(图片来自:/article/4841073.html)
(点击图片查看大图)
选择镜像的理由如下:
选择热备份,就只有三个选择了
但故障转移集群,一需要做集群,麻烦,二需要共享磁盘,服务器是有双机了,我不想磁盘成为了潜在的单点故障,去年艺龙的宕机也是存储单点故障导致
镜像可以支持对客户端透明
同时选择了不要见证服务器,高性能模式,避免对数据库性能的影响,当然风险是一旦故障转移,可能对是部分数据有丢失
镜像实施准备和过程
在实施之前做了一份数据库镜像实施计划,大概有1400字,将实施前中后要做到事情明确,论证到位,同时与相关的同事进行讲解,计划大概有以下几个方面的内容
1、需要做到准备工作
镜像的前提工作,SQLServer版本一致等
确保镜像先期测试通过,并整理好使用的镜像sql脚本
镜像后的数据、日志文件路径等
设置要镜像的数据为完整模式,并设置完整和日志备份计划
2、镜像工作
将需要镜像的数据库都做一个完整备份并回复到镜像服务器
做某个库的镜像前,备份日志并恢复到镜像服务器
执行镜像脚本
3、更新程序配置的连接字符串,以实现镜像对客户端的透明度
镜像实施中碰到的问题
主体、镜像服务器权限问题,这个问题折腾了两个多小时,很熟悉的错误
服务器网络地址 “TCP://192.168.1.4:5022″ 无法访问或不存在。请检查网络地址名称,并检查本地和远程端点的端口是否正常运行。 (Microsoft SQL Server,错误: 1418)
后来在SQLServer日志中看到了如下错误
Database mirroring connection error 4 ‘An error occurred while receiving data: ’10054(远程主机强迫关闭了一个现有的连接。)’.’ for ‘TCP://192.168.1.4:5022′.
通过这个错误找到了问题,c:\ProgramData\Microsoft\Crypto\RSA\MachineKeys\ 没有读写权限,一看真的是这样,加入管理员(即sqlserver的运行用户)的读写权限后一切正常!(如果还不行,配置权限后,再重新配置镜像)
具体见:http://dba.stackexchange.com/questions/6222/mirroring-problems-after-removing-domain
解决这个问题的经验就是,一定要先通过SQLServer日志和系统日志定位更准备的错误 ,才能快速解决问题
主体服务器备份后,需要拷贝备份文件到镜像服务器,由于文件太大(500G),真慢
备份、拷贝、恢复的过程占了80%以上的时间
原本预计是停掉网站来做镜像,实际上不需要,只是尽量在业务低峰期进行就可以了
镜像实施后,可用性的解决办法
准备好镜像手工故障转移到的脚本,主要下面三个语句
–都需要指定数据库,在主体服务器上执行
ALTER DATABASE AA SET PARTNER SAFETY FULL; –事务安全,同步模式
ALTER DATABASE AA SET PARTNER FAILOVER; –手动故障转移
ALTER DATABASE AA SET PARTNER SAFETY OFF;–事务不安全,异步模式,高性能模式
其他
实施镜像后,数据库的升级就可以采取滚动升级了,如图所示(来自MSDN官方文档,具体链接忘记了)
高可用性解决方案: http://msdn.microsoft.com/zh-cn/library/bb522583(v=sql.105).aspx
镜像解决方案:http://msdn.microsoft.com/zh-cn/library/bb934127(v=sql.105).aspx
几种镜像方案的对比(图片来自:/article/4841073.html)
(点击图片查看大图)
选择镜像的理由如下:
选择热备份,就只有三个选择了
但故障转移集群,一需要做集群,麻烦,二需要共享磁盘,服务器是有双机了,我不想磁盘成为了潜在的单点故障,去年艺龙的宕机也是存储单点故障导致
镜像可以支持对客户端透明
同时选择了不要见证服务器,高性能模式,避免对数据库性能的影响,当然风险是一旦故障转移,可能对是部分数据有丢失
镜像实施准备和过程
在实施之前做了一份数据库镜像实施计划,大概有1400字,将实施前中后要做到事情明确,论证到位,同时与相关的同事进行讲解,计划大概有以下几个方面的内容
1、需要做到准备工作
镜像的前提工作,SQLServer版本一致等
确保镜像先期测试通过,并整理好使用的镜像sql脚本
镜像后的数据、日志文件路径等
设置要镜像的数据为完整模式,并设置完整和日志备份计划
2、镜像工作
将需要镜像的数据库都做一个完整备份并回复到镜像服务器
做某个库的镜像前,备份日志并恢复到镜像服务器
执行镜像脚本
3、更新程序配置的连接字符串,以实现镜像对客户端的透明度
镜像实施中碰到的问题
主体、镜像服务器权限问题,这个问题折腾了两个多小时,很熟悉的错误
服务器网络地址 “TCP://192.168.1.4:5022″ 无法访问或不存在。请检查网络地址名称,并检查本地和远程端点的端口是否正常运行。 (Microsoft SQL Server,错误: 1418)
后来在SQLServer日志中看到了如下错误
Database mirroring connection error 4 ‘An error occurred while receiving data: ’10054(远程主机强迫关闭了一个现有的连接。)’.’ for ‘TCP://192.168.1.4:5022′.
通过这个错误找到了问题,c:\ProgramData\Microsoft\Crypto\RSA\MachineKeys\ 没有读写权限,一看真的是这样,加入管理员(即sqlserver的运行用户)的读写权限后一切正常!(如果还不行,配置权限后,再重新配置镜像)
具体见:http://dba.stackexchange.com/questions/6222/mirroring-problems-after-removing-domain
解决这个问题的经验就是,一定要先通过SQLServer日志和系统日志定位更准备的错误 ,才能快速解决问题
主体服务器备份后,需要拷贝备份文件到镜像服务器,由于文件太大(500G),真慢
备份、拷贝、恢复的过程占了80%以上的时间
原本预计是停掉网站来做镜像,实际上不需要,只是尽量在业务低峰期进行就可以了
镜像实施后,可用性的解决办法
准备好镜像手工故障转移到的脚本,主要下面三个语句
–都需要指定数据库,在主体服务器上执行
ALTER DATABASE AA SET PARTNER SAFETY FULL; –事务安全,同步模式
ALTER DATABASE AA SET PARTNER FAILOVER; –手动故障转移
ALTER DATABASE AA SET PARTNER SAFETY OFF;–事务不安全,异步模式,高性能模式
其他
实施镜像后,数据库的升级就可以采取滚动升级了,如图所示(来自MSDN官方文档,具体链接忘记了)
相关文章推荐
- SQLServer2008镜像实施过程摘要和碰到的问题
- 记录安装opencv的过程和碰到的问题以及解决方法
- USB HID调试过程中碰到的一些问题
- 虚拟机安装tools的过程中遇到一个c header 问题(我的镜像是:ubuntu-10.10-desktop-i386.iso)
- 学习过程中碰到的一些问题及解决方法
- 【RAC】 RAC For W2K8R2 安装--安装过程中碰到的问题(九)
- Java开发过程中经常碰到数据类型的问题
- 自学spring过程中碰到的问题list,一个一个解决
- Cenos6.5安装及安装过程中碰到的问题解决记录,供其他工程师参考
- 【软件工程基础】课本学习过程中碰到的问题(3.19更新三个问题)
- 自学过程中碰到问题了,myeclipse中出现感叹号和红色叉号,迷惑
- Android学习笔记03:学习过程中碰到的一些问题及解决方法
- 编译过程中碰到的几个小问题和解决方法
- ADO.NET Entity Framework调用存储过程中碰到的问题
- JDeveloper使用过程中碰到怪问题的解决
- Android学习笔记03:学习过程中碰到的一些问题及解决方法
- SQLServer2008 安装过程中遇到“性能计数器注册表配置单元一致性”检查失败(我遇到的问题)
- hive sql 开发过程碰到的问题
- mysql 安装过程中碰到的一些问题
- 关于EF调用存储过程碰到的问题解决过程