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

环境介绍:

我的电脑: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等无法实施镜像。

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

时间: 2024-10-10 20:48:12

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

sql2008r2局域网复制订阅实操

10.129.186.37 本机 10.129.186.95 服务器 局域网环境 复制类型:事务复制 注意点:要复制的表,必须有主键,否则不可选复制表. 要点1,局域网尝试用共享的方式保存快照文件夹,我试验多次,不成功.而采取FTP的方式,一次成功. 要点2,订阅服务器会自动发现FTP传输方式. 要点3,FTP服务器,我采用的是iis里的ftp程序,简单实用. 按要求提示做就可以了,没什么难的,在网上很多资料都有误导,自己做就可以了. 1,首先要保证ftp服务能够正常访问. 2,建完发布后点发布

MSSQL镜像—无见证服务器

镜像服务器(***.88.55.224) 主体服务器(***.88.55.223) ? 1.迁移数据库备份(***.88.55.168) use master ? GO ? backup DATABASE db_mydb To Disk = 'D:\portalBak\portal0902.bak' WITH FORMAT; --2s ? go ? 2.把备份拷贝到要恢复的机器中 ? 3.服务器数据库恢复 ? use master ? go ? RESTORE DATABASE db_mydb

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

Win7系统上安装TestLink(基于xampp) 写于:2018.11.28 如有本文资料缺失,可点击网盘连接:https://pan.baidu.com/s/1ucxfmlY-RSJcvwcbE762VA查看原始资料. 第一步:下载TestLink.XAMPP TestLink :https://sourceforge.net/projects/testlink/files/ 下载最新的 XAMPP:https://sourceforge.net/projects/xampp/ 选择相应环

Javascript:实操---碰壁反弹(无阻碍物)

CSS部分 <style type="text/css">#wrap{    height: 300px;    width: 500px;    border: 1px solid #000;    position: relative;}#child{    position: absolute;    left: 0;    top: 0;    height: 50px;    width: 50px;    background-color: #ccc;}<

OSPF高级配置实操——大型公司环境部署

一.路由重分发概念 定义:即将一种路由协议中的路由条目转换为另一种路由协议的路由条目,达到多路由环境下的网络互通理解路由重分发1.一个单一IP路由协议是管理网络中IP路由的首选方案 2.Cisco ISO能执行多个路由协议,每一个路由协议和该路由协议所服务的网络属于同一个自治系统 3.Cisco ISO使用路由重分发特性以交换不同协议创建的路由信息路由重分发的考虑1.度量值 2.管理距离重分发到OSPF域中路由的路径类型1.类型1的外部路径(type1 external path,E1) 2.类

Docker 学习笔记【3】 Docker 仓库、数据卷、数据卷容器,网络基础实操。高级网络配置学习

Docker 学习笔记[4] 高级网络配置实操,实战案例实验 =========================================================================== Docker 学习笔记[2] Docker 仓库实操,创建私有仓库,实操数据卷.数据卷容器,记录开始 =========================================================================== 被格式化的脚本内容: #开头代表

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

接上段   (一)Linux实操之——权限.任务调度.磁盘分区 4.网络配置 4.1 NAT模式的网络配置 目前我们采用的网络配置是NAT模式. windows下cmd通过 ipconfig 命令可以得到本机的网络配置. linux下通过 ifconfig 可得到虚拟机的网络配置 在windows系统中运行着虚拟机中的linux系统,那么两个系统是怎么通信的呢? 实际上windows系统与本机的linux的通信是通过 VMnet8的虚拟网卡来进行的,两者形成网络,192.168.177.128

容器平台自动化CI/CD流水线实操

CI/CD----(实操说明) CI/CD 持续集成(Continuous Integration, CI):  代码合并,构建,部署,测试都在一起,不断地执行这个过程,并对结果反馈. 持续部署(Continuous Deployment, CD): 部署到测试环境.预生产环境.生成环境. 持续部署(Continuous Delivery, CD):  将最终产品发布到生成环境.给用户使用. Jenkins与容器技术CI/CD实战 说明:这张图稍微更形象一点,上线之前先把代码git到版本仓库,然

性能测试工具 jmeter 分布式压力测试实操

性能测试工具 jmeter 分布式压力测试实操 本文在Non-GUI Mode下进行,准备好三台有jdk环境,linux操作系统,同一局域网测试机器,运行两台slave,一台master机器,进行分布式测试. slave-1/slave-2/master配置好jmeter环境(以下操作在jdk版本1.8环境下进行的) 1.下载jmeter3.2 wget https://archive.apache.org/dist/jmeter/binaries/apache-jmeter-3.2.tgz 2