环境介绍:

我的电脑: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. 表格java代码的相关知识积累

    本文主要收集各大博客中的java表格 用JSP创建一个表格模板 . 项目中要用到一些展示信息的表格,表头不固定,表格内容是即时从后台取的:考虑到复用性,笔者用jsp编写了一个表格模板,可以从reque ...

  2. 【Java线程】Lock、Condition

    http://www.infoq.com/cn/articles/java-memory-model-5  深入理解Java内存模型(五)——锁 http://www.ibm.com/develope ...

  3. DBCC CHECKDB用法 手工修复数据库

          快速修复 DBCC CHECKDB ('数据库名', REPAIR_FAST)      重建索引并修复 DBCC CHECKDB ('数据库名', REPAIR_REBUILD) 如果必 ...

  4. Cstyle的札记,Freertos内核具体解释,第0篇

        Freertos是一个硬实时内核,支持众多的微处理器架构,我们能够从它的官网(www.freertos.ort)下载它的sourcecode,同一时候也能够看出它支持了几十种的微处理器架构,这 ...

  5. PHP 学习1- 函数之error_reporting(E_ALL ^ E_NOTICE)详细说明

    在4.3.0中运行正常,在4.3.1中运行会提示Notice:Undefined varialbe:tmp_i 问题下下: 1.问题出在哪里? 2.应如何修改这段代码? 3.不改段代码,如何修改php ...

  6. 伪静态 apache重写

    mod_rewrite是Apache的一个非常强大的功能,它可以实现伪静态页面 下面我详细说说它的使用方法 A.检测Apache是否支持mod_rewrite 通过php提供的phpinfo()函数查 ...

  7. Java之JDOM生成XML和解析

    一.生成XML文件 1.JDOM是对Java原始的类进行了封装.让解析XML文件变得很方便 2.创建一个XML文件的根节点: Element root = new Element("HD&q ...

  8. codeforces 478B Random Teams

    codeforces   478B  Random Teams  解题报告 题目链接:cm.hust.edu.cn/vjudge/contest/view.action?cid=88890#probl ...

  9. Linux命令压缩与解压缩

    zip格式的文件:zip和unzip zip 命令: # zip test.zip test.txt 它会将 test.txt 文件压缩为 test.zip ,当然也可以指定压缩包的目录,例如 /ro ...

  10. android studio 安装与环境搭建

    转摘自:http://blog.csdn.net/zhanghefu/article/details/9286123 第一章   andriod studio 安装与环境搭建 一.Android St ...