如何配置数据库镜像<一>
一、简介
“数据库镜像”是Sql Server 2005推出的一个主要用于提高数据库可用率的软件解决方案。镜像是基于每个数据库执行的,仅适用于使用完整恢复模式的数据库。简单恢复模式和大容量日志恢复模式不支持数据库镜像。
数据库镜像是通过维护一个热备用服务器而发挥作用的。在一般的镜像会话期间,如果生产服务器出现故障,客户端应用程序可以通过重新连接到备用服务器来快速进行恢复。
二、前提条件
1、准备好服务器,保证数据库版本至少是Sql Server 2005 SP1,当然最好是最新版本,老的版本测试不行!
2、保证需要镜像的数据库为完全恢复模式
3、配置域环境,数据库镜像使用域环境会比较方便,感觉比使用证书要省事
4、设置sql server的服务以域账号运行 How?
5、选择镜像方案,镜像服务可以使用三个数据库实例(主、镜像、见证)也可以使用两个数据库实例(主、镜像),实际使用环境中每个实例应该是运行在不同的服务器上。如果使用见证服务器的话好处是可以实现自动的故障转移,但是需要使用3台服务器,而且至少要保证其中2台服务器是可用的,因为如果镜像服务器和见证服务器同时当机,即时主服务器没有任何问题也是无法对外提供服务的。我这里只是为了实现数据库的镜像,做一个实时的数据库备份所以没有使用见证服务器,如果主服务器宕机需要手动切换镜像服务器为主服务器。
三、具体步骤
1、在主服务器完整备份需要镜像的数据库,在镜像服务器以“不对数据库执行任何操作,不会滚未提交的事务。(RESTORE WITH NORECOVERY)”的状态恢复。然后备份事务日志,以相同的恢复状态在镜像服务器恢复事务日志。

2、在主服务器,选择需要镜像数据库的镜像功能,点击“配置安全性”


3、选择否,不包括见证服务器实例


4、选择主体服务器实例

5、选择镜像服务器实例

6、如果主服务器实例和镜像服务器实例是以不同的域账户运行的,需要输入对应的账户,我使用的是相同的账户所以留空,二中有建立帐户的脚步

7、配置完成

8、配置端点

9、点击“开始镜像”,完成

10、如果没有提示任何错误,主服务器的数据库会显示“主体,已同步”,镜像服务器的数据库会显示“镜像,已同步,正在还原…”,数据库镜像服务配置完成
四、故障转移
1、主机备机互换
在主机按“故障转移”按钮就可以了
2、如果主机宕机,需要启用镜像服务器当主服务器
在镜像服务器执行
USE master;
ALTER DATABASE 数据库名 SET PARTNER FORCE_SERVICE_ALLOW_DATA_LOSS;
然后按“故障转移”按钮就可以了
五、遇到的错误
1、“消息 1418,级别 16,状态 1,第 1 行 服务器网络地址 "TCP://机器名或IP地址:端口号" 无法访问或不存在。请检查网络地址名称,并检查本地和远程端点的端口是否正常运行。”
这个很有可能是在镜像服务器恢复数据库时没有选择“不对数据库执行任何操作,不会滚未提交的事务。(RESTORE WITH NORECOVERY)”,应该是由于没有权限导致的,也就是在服务器和镜像服务器中没有设置正确的登录名或设置了但提示了警告!
详细解决方法见<二>
2、镜像数据库 "house" 包含的事务日志数据不足,无法保留主体数据库的日志备份链。如果没有从主体数据库进行日志备份或者没有在镜像数据库上还原日志备份,则可能会出现这种情况。(Microsoft SQL Server, 错误: 1478)
出现这个错误是由于没有备份和恢复事务日志

3、默认情况下,数据库镜像是被禁用的。
这个是由于没有打补丁的原因,以为Sql Server 2005刚推出的时候镜像功能是作为评估使用的所以默认是关闭的,SP1以后就可以正式使用了

4、数据库 "house" 的伙伴服务器实例和见证服务器实例均不可用。请在至少其中一个实例变为可用后重新发出命令。
这个问题就比较诡异了,用虚拟机实验完成后在生产环境部属出现此问题,在网上搜了个遍,也没找到解决办法,最后在一个论坛看到也加了跟踪标志1400竟然通过了,可是我已经打了SP3,实在不太明白。
六、跟踪标志
跟踪标志用于临时设置特定服务器的特征或关闭特定行为。 例如,如果启动 SQL Server 2005 的一个实例时设置了跟踪标志 3205,将禁用磁带机的硬件压缩。 跟踪标志经常用于诊断性能问题,或调试存储过程或复杂的计算机系统。具体参见MSDN
http://msdn.microsoft.com/zh-cn/library/ms188396.aspx,不过MSDN好像没有1400的说明,可能比较老了已经没有1400这个标志了,网上搜了一下
1400
启用数据库镜像端点的创建功能,在设置和使用数据库镜像时必须使用该功能。启用数据库镜像端点的创建功能,在设置和使用数据库镜像时必须使用该功
能。只有在启动服务器实例时使用了 -T trace# 启动选项,才可以设置该跟踪标志。
设置方法:
DBCC TRACEON (1400)或者在数据库服务加启动参数-T1400

转自51:http://dqw3721.blog.51cto.com/112726/390327/
如何配置数据库镜像<一>的更多相关文章
- 在SQL2008配置数据库镜像1418错误的处理
在SQL2008配置数据库镜像错误一般都由以下原因造成 1.主体.镜像服务器SQL SERVER选择本账号切保持一致 2.在数据库镜像配置向导中的“服务账号”选项中请选择需要同步数据库的登陆名,例如数 ...
- Sqlserver2008R2配置数据库镜像之我的经验总结
一. 相关环境介结. 数据库:Sqlserver2008R2 网络环境:主机.镜像机(阿里云,青岛节点同域),见证机(本公司自己托管在上海) 二. 服务器相关配置. 1. 分别开启三台服务器50 ...
- SQL Server 2008 数据库镜像部署实例之三 配置见证服务器
SQL Server 2008 数据库镜像部署实例之三 配置见证服务器 前面已经完成了镜像数据库的配置,并进行那个了故障转移测试.接下来将部署见证服务器,实现自动故障转移. 一.关于见证服务器 1.若 ...
- SQLServer 复制和数据库镜像 具体配置部署
SQLserver 能够把镜像和复制同一时候部署,结合了两方的高可用性.能够使数据库得到更好的高可用性和容灾的保证. 关于镜像:f=255&MSPPError=-2147217396" ...
- SQLServer数据库镜像配置
目录 一.目标...2 二.前提条件.限制和建议...2 三.设置概述...2 四.安装Sql Server 2008 enterprise X64.3 4.1.安装.NET3.5.3 4.2.安装时 ...
- SQL Server 数据库镜像
标签:SQL SERVER/MSSQL SERVER/数据库/DBA/镜像 概述 本章内容主要讲述数据库镜像的安装,安装环境是在域环境下进行安装. 环境:SQL Server 2008 r2 企业版 ...
- SQL Server 2008 数据库镜像部署实例之一 数据库准备
SQL Server 2008 数据库镜像部署实例之一 数据库准备 一.目标 利用Sql Server 2008 enterprise X64,建立异步(高性能)镜像数据库,同时建立见证服务器实现自动 ...
- SQL SERVER 基于数据库镜像的主从同步(数据库镜像实践汇总)
SQL SERVER 基于数据库镜像的主从同步 Author:chaoqun.guo createtime:2019-03-26 目录 SQL SERVER 基于数据库镜像的主从同步... 1 ...
- 003.SQLServer数据库镜像高可用部署
一 数据库镜像部署准备 1.1 数据库镜像支持 有关对 SQL Server 2012 中的数据库镜像的支持的信息,请参考:https://docs.microsoft.com/zh-cn/previ ...
随机推荐
- LeetCode205----同构字符串
给定两个字符串 s 和 t,判断它们是否是同构的. 如果 s 中的字符可以被替换得到 t ,那么这两个字符串是同构的. 所有出现的字符都必须用另一个字符替换,同时保留字符的顺序.两个字符不能映射到同一 ...
- Linux系统是否被植入木马的排查流程梳理
在日常繁琐的运维工作中,对linux服务器进行安全检查是一个非常重要的环节.今天,分享一下如何检查linux系统是否遭受了入侵? 一.是否入侵检查 1)检查系统日志 1 2 检查系统错误登陆日志,统计 ...
- Flutter移动电商实战 --(7)dio基础_POST请求的使用
这节学习一下POST请求的使用,其实POST和Get请求都是在工作中最重要的两种请求.比如我们要传递一组表单数据过去,这时候用Get请求就是不太合适的,使用POST比较好. SingleChildSc ...
- Celery分布式队列学习
1. celery介绍和使用 Celery 是一个 基于python开发的分布式异步消息任务队列(可以简单理解为python多进程或多线程中的queue),通过它可以轻松的实现任务的异步处理.cele ...
- Android Dalvik、ART及APK编译过程
0.1 先对Dalvik以及ART做简单介绍: 什么是Dalvik: Dalvik是Google公司自己设计用于Android平台的Java虚拟机.dex格式是专为Dalvik应用设计的一种压缩格式, ...
- instanceof 实现
A instanceof B // 实现 instanceof function instance(a, b) { const proto = a.__proto__; // eslint-disab ...
- shell 脚本基础与条件判断
#!shell脚本格式决定专业性 #!/bin/bash #filename:脚本名 #author:作者 #date:时间 #脚本作用 脚本的执行方式 #脚本名为wk.sh 绝对路径 /root/ ...
- Thinkphp5 的sesssion在同一个控制器不同的方法无法获取session的原因和对策
这一段在用thinkPHP5开发微信小程序接口的时候,在同一个控制器一个方法中存入session,在另一个方法中取出session,一直都是无法取出. 查阅各种资料得到原因:thinkPHP5里面的s ...
- Kotlin函数中默认参数
Java不支持默认参数.但kotlin函数却可以 package loaderman.demo class Customer(var name:String ="name"){// ...
- 编解码原理,Python默认解码是ascii
编解码原理,Python默认解码是ascii 首先我们知道,python里的字符默认是ascii码,英文当然没问题啦,碰到中文的时候立马给跪. 不知道你还记不记得,python里打印中文汉字的时候需要 ...