sql2008R2sp1局域网镜像环境实操(无见证服务器)

时间:2022-12-13 18:30:04

环境介绍:

我的电脑: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.  如果在执行上面两句没有出错的话,那么主体数据库服务器与镜像数据库服务器就成功建立了镜像关系

主服务器:

sql2008R2sp1局域网镜像环境实操(无见证服务器)

三.使用镜像数据库

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

1.  alter database bookdb set partner off

alter database bookd set partner force_service_allow_data_loss

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

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

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

四、手动验证一下

sql2008R2sp1局域网镜像环境实操(无见证服务器)

点击“是”

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

sql2008R2sp1局域网镜像环境实操(无见证服务器)

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

注:有一天突然发现主体和镜像存在连接问题,后经查找,发现在关闭了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&period;9&period;18环境实操步骤

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

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

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

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

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

  7. Istio的流量管理&lpar;实操一&rpar;&lpar;istio 系列三&rpar;

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

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

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

  9. 第十章 Fisco Bcos 权限控制下的数据上链实操演练

    一.目的 前面已经完成fisco bcos 相关底层搭建.sdk使用.控制台.webase中间件平台等系列实战开发, 本次进行最后一个部分,体系化管理区块链底层,建立有序的底层控管制度,实现权限化管理 ...

随机推荐

  1. Luogu P1038 神经网络

    qwq 拓扑排序模板题. 拓扑排序,是在一个$DAG$中,其拓扑排序为其所有结点的一个线性排序(答案不唯一). 该排序满足这样的条件——对于图中的任意两个结点$u$和$v$,若存在一条有向边从$u$指 ...

  2. QWaiteCondition思考3

    QWaitConditioin::wait() 接收一个mutex作为参数,这个mutex应该被调用线程初始化为锁定状态.在线程进入休眠状态(waite)之前,mutex会被解锁.当线程被唤醒(Wak ...

  3. 快速傅里叶变换&lpar;FFT&rpar;&lowbar;转载

    FFTFFT·Fast  Fourier  TransformationFast  Fourier  Transformation快速傅立叶变换 P3803 [模板]多项式乘法(FFT) 参考上文 首 ...

  4. pygame-KidsCanCode系列jumpy-part2-加速度与摩擦力

    上一节,我们整理了一个游戏开发的新框架(即:Game类),本节将运用这个框架,实现基本的加速度及摩托力效果. 先定义游戏的精灵(下面代码命名为sprites.py) from part_02.sett ...

  5. 基于bootstrap-treeview做的一个漂亮的无限分类树层级联动菜单

    2017年12月11日09:59:15 因为工作需要把原来的bootstrap-treeview做了一些小改动,方便后台开发人员使用 最终效果,看起来还行,但是其实不是特别友好对用户来说,但是对开发者 ...

  6. py-day1-6 python 5个灰魔法 【len&comma;index索引&comma;for循环&comma;切片】

    # 索引,下标,获取字符串中的某一个字符. test = 'MuMingJun' v = test[3] print(v) i # 切片 test = 'MuMingJun' v = test[0:- ...

  7. GraphQuery - Powerful html&sol;xml query language

    GraphQuery GraphQuery is a query language and execution engine tied to any backend service. It is ba ...

  8. Pyrhon代码的中文问题

    解决代码中出现中文乱码的问题: 使用中文需要在第一行声明编码#encoding=utf-8 或者#coding=utf-8 python只检查#.coding和编码字符串,所以你可能回见到下面的声明方 ...

  9. android 利用cmdline,将參数从preloader传递到kernel

    以定义參数 cus_param 为例.int型变量. 1. Preloader部分 Platform.h(mediatek\platform\[$platform]\preloader\src\dri ...

  10. PHP——小尾巴之权限管理

    流程: 在权限管理页面,默认显示用户的角色,更改复选框的按钮内容,可以改变角色,点击确定提交至数据库 在登陆之后,只显示该用户的角色所对应的权限 数据库: guanli.php <!DOCTYP ...