环境介绍:

我的电脑:sql2008r2sp1_32 129.186.110.37 OS win2003 SP2 Enterprise     做主体服务器, 暂叫ServerA

服务器:    sql2008R2sp1_64bit 129.186.110.95 OS win2008R2 Enterprise  做镜像服务器, 暂叫ServerB

实验目的:镜像环境的搭建以及保证镜像服务器最终可用

一、数据库镜像操作

1.  在ServerA和ServerB中创建同名数据库bookdb,若要对此数据库进行镜像,要将其改成“完整恢复模式”,在ServerA的bookdb上面执行下面的SQL语句:

use master

alter database bookdb set recovery full

注:默认就是完整恢复模式

2.  创建证书(主备都创建)

(1)主机执行:

use master

create master key encryption by password='1234'

create certificate host_a_cert with subject = 'host_a certificate',start_date = '2013-1-2'

(2)备机执行:

use master

create master key encryption by password = '1234'

create certificate host_b_cert with subject = 'host_b certificate',start_date = '2012-1-2'

注:如果要删除创建的master key 先要删除证书;

DROP CERTIFICATE host_a_cert

drop master key

3.  创建终结点(主备都创建)

(1) 主机执行:

create endpoint Endpoint_Mirroring

state = started

as

tcp(listener_port=5022,listener_ip=all)

for

database_mirroring(authentication = certificate host_a_cert, encryption = required ALGORITHM AES, role=all);

(2)备机执行:

create endpoint Endpoint_Mirroring

state=started

as

tcp(listener_port=5022,listener_ip=all)

for

database_mirroring(authentication=certificate host_b_cert,encryption=required ALGORITHM AES,role=all);

4.  备份证书到文件,并互换证书

(1)主机执行

backup certificate host_a_cert to file='d:\host_a_cert.cer'

(2)备机执行

backup certificate host_b_cert to file='d:\host_b_cert.cer'

将备份好证书文件互相复制一份到对方相应位置

5.  在同步login

(1)主机执行:

create login host_b_login with password='1234'

create user host_b_user for login host_b_login

create certificate host_b_cert authorization host_b_user from file='d:\host_b_cert.cer'

grant connect on endpoint::Endpoint_Mirroring to [host_b_login]

(2)备机执行:

create login host_a_login with password='1234'

create user host_a_user for login host_a_login

create certificate host_a_cert authorization host_a_user from file='d:\host_a_cert.cer'

grant connect on endpoint::Endpoint_Mirroring to [host_a_login]

6.  上面都是对实例进行操作,下面开始对要进行镜像的数据库进行操作了,一开始我就创建了数据库bookdb,并将其设置成了“完整恢复模式”;

默认好像就是完整恢复模式的。

7.  将ServerA数据库进行数据库完整备份和日志备份,然后在镜像机上进行分别还原,

注意,一定要先完整备份,再事务日志备份。由于长时间不恢复数据库,他妈的连事务日志备份的扩展名都忘了。

如果仅仅在镜像服务器上恢复完整备份,是不行的。这会你在执行第8步的时候报错。提示你"没有为数据库镜像配置数据库 "bookdb"",会有误导。实际上是缺事务日志恢复这步。另外多说一句

在恢复的时候,完整的选项要选上“覆盖”,和下面的“不回滚”,完成这步后,相关数据库会显示“正在恢复”状态,

事务日志恢复也要选上“不回滚”

附加一句,如果某个数据库显示正在恢复状态,想停止这种状态,可输入:

RESTORE database  dbname with recovery

8.  建立镜像关系,设置伙伴

主机执行:alter database bookdb set partner='TCP://129.186.110.95:5022'

镜像执行:alter database bookdb set partner='TCP://129.186.110.37:5022'

9.  如果在执行上面两句没有出错的话,那么主体数据库服务器与镜像数据库服务器就成功建立了镜像关系

主服务器:

三.使用镜像数据库

如果主体数据库服务器宕机了,那么数据还保存在镜像数据库里面,那么怎么用呢,在镜像数据库中执行下面两句话(注意顺序)

1.  alter database bookdb set partner off

alter database bookd set partner force_service_allow_data_loss

2.  应用程序方面自己改一下配置参数。

注意:如果镜像服务器正在使用,相关的数据库无删除,需要关闭alter database bookdb set partner off,上述这段是原引原作者的,我没有实验成功,所以改为手动转换,还因为没有见证服务器。

目前还没有程序测试是否可以使用,所以这篇文章还不完整,待续。。。。。。。

四、手动验证一下

点击“是”

此时,原主体服务器状态如下:

刚才的步骤再次切换后,状态又恢复到最初的主镜像状态。

注:有一天突然发现主体和镜像存在连接问题,后经查找,发现在关闭了windows防火墙后,连接正常。

如果有一天要删除镜像,可按如下操作:

select * from sys.endpoints

drop endpoint Endpoint_Mirroring

drop login host_a_login

drop user host_a_user

drop certificate host_a_cert

drop certificate host_b_cert

drop master key

故障转移,也可以把主机的网络断开,在镜像服务器上执行t-sql语句:

Use master

alter database <DatabaseName> set partner force_service_allow_data_loss

Go”

把镜像服务器启用,状态为“主机,断开”,为应用系统服务。

当主机服务器正常后,在镜像服务器上执行transact-sql语句:

USE master;

ALTER DATABASE <DatabaseName> SET PARTNER RESUME;

--恢复镜像

ALTER DATABASE <DatabaseName> SET PARTNER FAILOVER;

--切换主备” 恢复正常镜像。 另外还可以使用:

ALTER DATABASE <DatabaseName> SET PARTNER SUSPEND ALTER DATABASE <DatabaseName> SET PARTNER RESUME”

暂停镜像和启用镜像,以便于维护。

使用“ALTER DATABASE <database_name> SET PARTNER OFF”,删除镜像

注意事项

(一)镜像相关服务器上的SQL SERVER 版本必须一致。

(二)在实施镜像之前,一定要将主数据库完整备份到镜像数据库,这里一定要备份两次,一次数据库备份和一次事务日志备份。

(三)数据帐号的孤立帐号处理,具体参见配置镜像数据库。

(四)如果不是在域帐户间实施镜像,则一定需要为服务器制作证书,证书一定要指定过期时间,如果没有指定,默认的过期时间是开始时间开始计算,一年的有效期。

(五)推荐使用64位版本的SQL Server 2008,64位的服务器可以提升服务器的性能和利用率,在32位的系统中,每个服务器实例,数据库最多支持10个数据库。

(六)系统数据库,如master,msdb等无法实施镜像。

(七)一旦建立镜像,镜像数据库就只作为主数据库的冗余备份使用。

sql2008R2sp1局域网镜像环境实操(无见证服务器)的更多相关文章

  1. HDFS集群PB级数据迁移方案-DistCp生产环境实操篇

    HDFS集群PB级数据迁移方案-DistCp生产环境实操篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 用了接近2个星期的时间,终于把公司的需要的大数据组建部署完毕了,当然,在部 ...

  2. SQL Server 2008 数据库镜像部署实例之三 配置见证服务器

    SQL Server 2008 数据库镜像部署实例之三 配置见证服务器 前面已经完成了镜像数据库的配置,并进行那个了故障转移测试.接下来将部署见证服务器,实现自动故障转移. 一.关于见证服务器 1.若 ...

  3. sql2008r2局域网复制订阅实操

    10.129.186.37 本机 10.129.186.95 服务器 局域网环境 复制类型:事务复制 注意点:要复制的表,必须有主键,否则不可选复制表. 要点1,局域网尝试用共享的方式保存快照文件夹, ...

  4. win7,win10 系统上搭建testlink1.9.18环境实操步骤

    Windows7,10系统上安装TestLink1.9.18(基于xampp) 写于:2018.11.28 二次排版微调:2019.01.01 如遇本文资料缺失,可点击百度网盘查看原始资料. 链接:h ...

  5. 28-SQLServer带见证服务器的镜像搭建

    一.注意点 1.数据库的模式要是完整模式. 2.要对数据库完整备份和事务日志备份,分别还原到镜像库上,使用NORECOVERY模式. 3.镜像数据库是不允许删除和操作,即便查看属性也不行. 4.先删除 ...

  6. 【强烈推荐,超详细,实操零失误】node.js安装 + npm安装教程 + Vue开发环境搭建

    node.js安装 + npm安装教程 + Vue开发环境搭建 [强烈推荐,超详细,实操零失误] 原博客园地址:https://www.cnblogs.com/goldlong/p/8027997.h ...

  7. 生产环境搭建高可用Harbor(包括恢复演练实操)

    生产环境搭建高可用Harbor(包括恢复演练实操) 前言 因资源成本问题,本Harbor高可用架构为最小开销方案,如果资源充足,可以将PG.Redis全部使用使用云厂商集群模式. 同时为了配置简单,并 ...

  8. Istio的流量管理(实操一)(istio 系列三)

    Istio的流量管理(实操一)(istio 系列三) 使用官方的Bookinfo应用进行测试.涵盖官方文档Traffic Management章节中的请求路由,故障注入,流量迁移,TCP流量迁移,请求 ...

  9. (二)Linux实操之——网络配置、进程管理、服务管理、组管理、YUM

    接上段   (一)Linux实操之——权限.任务调度.磁盘分区 4.网络配置 4.1 NAT模式的网络配置 目前我们采用的网络配置是NAT模式. windows下cmd通过 ipconfig 命令可以 ...

随机推荐

  1. POJ-1010 Stamps

    [题目描述] 题目大意是:邮票发行商会发行不同面值.不同种类的邮票给集邮爱好者,集邮爱好者有总目标面额,通过不同的邮票组合(总数在4张以内)达到该面值,卖给集邮爱好者.另外,发行商发行的邮票面值最多2 ...

  2. python基础补充

    关于模块导入方式: import  random print random.choice(range(10)) 和 from  random import choice print choice(ra ...

  3. js中this的深入研究

    this对象是函数在运行时由调用函数的对象决定的: 1.在全局对象中运行函数时,this等于window 2.当函数被作为某个对象的方法调用时, this等于那个对象. 需要注意的几点: 声明函数里的 ...

  4. for语句及switch case用法示例

    for(初始条件:循环条件:状态改变){   循环体:执行代码} 示例一: 示例二: 示例三: 示例四: 示例五: 示例六: 示例七: switch case: 示例一: 示例二: 示例三:

  5. lightOJ 1047 Neighbor House (DP)

    lightOJ 1047   Neighbor House (DP) 题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=87730# ...

  6. URAL 1203 Scientific Conference dp?贪心

    题目:click here 分明就是贪心怎么会在dp的专题 #include <bits/stdc++.h> using namespace std; typedef unsigned l ...

  7. Setting property 'source' to 'org.eclipse.jst.jee.server [问题点数:40分]

    链接地址:http://bbs.csdn.net/topics/390131469 警告: [SetContextPropertiesRule]{Context} Setting property ' ...

  8. 接收串口数据0x00 strlen函数会截断

    写个串口接收程序接收到之后,用了一个上strlen,结果数据不全了,百度了下 strlen所作的仅仅是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域) ...

  9. java web中jsp连接mysql数据库 以及数据库连接池的使用

    将mysql-connector-java-5.1.6-bin.jar导入到tomcat的lib目录下. 在java项目中,只需要引入mysql-connector-java-5.1.6-bin.ja ...

  10. jQuery 子元素选择

    对于如下代码片段  如何对河meishi这个div的子DIV呢? <div id="vertical-Menu-meishi" class="J-nav-item& ...