非域环境下使用证书部署数据库(SqlServer2008R2)镜像

前言

部署数据库镜像一般有两种方式域环境下部署http://liulike.blog.51cto.com/1355103/339183 和 非域环境下 证书部署参考地址: http://www.cnblogs.com/shanyou/archive/2010/05/10/1732007.html

这里是自己在三个虚拟机非域环境下部署测试的

一、环境

数据库

系统

IP

角色

SqlServer2008R2

Server 2008R2

10.10.0.52

主体

SqlServer2008R2

Server 2008R2

10.10.0.53

镜像

SqlServer2008R2

Server 2008R2

10.10.0.54

见证

配置数据库镜像之前 需要打开端口1433和5022 是三台服务器的都要

下面将图示说明开启1433和5022的步骤:

  1. 打开防火墙-》高级设置

二、镜像部署

1证书与端点(出站连接)

1.1主题服务器

USE master;  

--DROP MASTER KEY
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '1qaz!QAZ';
GO --为主体服务器 host_A 实例制作一个证书。 --DROP CERTIFICATE host_A_cert
CREATE CERTIFICATE host_A_cert
WITH SUBJECT = 'host_A certificate',START_DATE = '3/12/2015',EXPIRY_DATE = '01/01/2099';
GO --使用该证书为服务器实例创建一个镜像端点。 --DROP ENDPOINT Endpoint_Mirroring
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 = PARTNER
);
GO --备份host_A 证书,并将其复制到镜像服务器 host_B 和见证服务器 host_C BACKUP CERTIFICATE host_A_cert TO FILE = 'c:\DbMirror\host_A.cer';
GO

1.2镜像服务器

/***********************************************
在镜像服务器 host_B 执行此脚本
***********************************************/ USE master; --DROP MASTER KEY
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '1qaz!QAZ';
GO --为镜像服务器 host_B 实例制作一个证书。
--DROP CERTIFICATE host_B_cert
CREATE CERTIFICATE host_B_cert
WITH SUBJECT = 'host_B certificate',START_DATE = '3/12/2015',EXPIRY_DATE = '01/01/2099';
GO --在 host_B 中为服务器实例创建一个镜像端点。
--DROP ENDPOINT Endpoint_Mirroring
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 = PARTNER
);
GO --备份 host_B 证书,并将其复制到主体服务器 host_A 和见证服务器 host_C 上 BACKUP CERTIFICATE host_B_cert TO FILE = 'c:\DbMirror\host_B.cer';
GO

1.3见证服务器

/****************************
见证服务器 host_C 执行
*****************************/ --ALTER DATABASE MirrorDB SET PARTNER OFF
USE master;
--DROP MASTER KEY
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '1qaz!QAZ';
GO --为此服务器实例制作一个证书。
--DROP CERTIFICATE host_C_cert
CREATE CERTIFICATE host_C_cert
WITH SUBJECT = 'host_C certificate',START_DATE = '3/12/2015',EXPIRY_DATE = '01/01/2099';
GO --使用该证书为服务器实例创建一个镜像端点。
--DROP ENDPOINT Endpoint_Mirroring
CREATE ENDPOINT Endpoint_Mirroring
STATE = STARTED
AS TCP (
LISTENER_PORT=5022
, LISTENER_IP = ALL
) FOR DATABASE_MIRRORING (
AUTHENTICATION = CERTIFICATE host_C_cert
, ENCRYPTION = REQUIRED ALGORITHM AES
, ROLE = WITNESS
);
GO --备份 host_C 证书,并将其复制到主体服务器 host_A 和镜像服务器 host_C 上 BACKUP CERTIFICATE host_C_cert TO FILE = 'c:\dbmirror\host_C.cer';
GO

2配置出站连接

2.1主体服务器

--在 host_A 上为镜像服务器 host_B 创建一个登录名。

USE master;
--DROP LOGIN host_B_login
CREATE LOGIN host_B_login WITH PASSWORD = '1qaz!QAZ';
GO --创建一个使用该登录名的用户。
--DROP USER host_B_user
CREATE USER host_B_user FOR LOGIN host_B_login;
GO --使证书与该用户关联。
--DROP CERTIFICATE host_B_cert
CREATE CERTIFICATE host_B_cert
AUTHORIZATION host_B_user
FROM FILE = 'c:\DbMirror\host_B.cer'
GO --授予对远程镜像端点的登录名的 CONNECT 权限。
GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [host_B_login];
GO --在主体服务器 host_A 上为见证服务器 host_C 创建一个登录名。
USE master;
--DROP LOGIN host_C_login
CREATE LOGIN host_C_login WITH PASSWORD = '1qaz!QAZ';
GO --创建一个使用该登录名的用户。
--DROP USER host_C_user
CREATE USER host_C_user FOR LOGIN host_C_login; GO --使证书与该用户关联。
--DROP CERTIFICATE host_C_cert
CREATE CERTIFICATE host_C_cert
AUTHORIZATION host_C_user
FROM FILE = 'c:\DbMirror\host_C.cer'
GO --授予对远程镜像端点的登录名的 CONNECT 权限。
GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [host_C_login];
GO --主体服务器上创建用于本机的登录名(MS可以省略)
USE master;
--DROP LOGIN host_A_login
CREATE LOGIN host_A_login WITH PASSWORD= '1qaz!QAZ';
GO --创建一个使用该登录名的用户。
--DROP USER host_A_user
CREATE USER host_A_user FOR CERTIFICATE host_A_cert;
GO --授予对远程镜像端点的登录名的 CONNECT 权限。
GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [host_A_login];
GO

2.2镜像服务器

--在镜像服务器 host_B 上为主体服务器 host_A 创建一个登录名。

USE master;
--DROP LOGIN host_A_login
CREATE LOGIN host_A_login WITH PASSWORD = '1qaz!QAZ';
GO --创建一个使用该登录名的用户。
--DROP USER host_A_user
CREATE USER host_A_user FOR LOGIN host_A_login;
GO --使证书与该用户关联。
--DROP CERTIFICATE host_A_cert
CREATE CERTIFICATE host_A_cert
AUTHORIZATION host_A_user
FROM FILE = 'c:\Dbmirror\host_A.cer'
GO --授予对远程镜像端点的登录名的 CONNECT 权限。
GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [host_A_login];
GO --在镜像服务器 host_B 上为见证服务器 host_C 创建一个登录名。 USE master;
--DROP LOGIN host_C_login
CREATE LOGIN host_C_login WITH PASSWORD = '1qaz!QAZ';
GO ----创建一个使用该登录名的用户。
--DROP USER host_C_user
CREATE USER host_C_user FOR LOGIN host_C_login;
GO ----使证书与该用户关联。
--DROP CERTIFICATE host_C_cert
CREATE CERTIFICATE host_C_cert
AUTHORIZATION host_C_user
FROM FILE = 'c:\Dbmirror\host_C.cer'
GO ----授予对远程镜像端点的登录名的 CONNECT 权限。
GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [host_C_login];
GO --在镜像服务器 host_B 上为本机创建一个登录名(MS可以省略)
USE master;
--DROP LOGIN host_B_login
CREATE LOGIN host_B_login WITH PASSWORD = '1qaz!QAZ';
GO --创建一个使用该登录名的用户。
--DROP USER host_B_user
CREATE USER host_B_user FOR CERTIFICATE host_B_cert;
GO --授予对远程镜像端点的登录名的 CONNECT 权限。
GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [host_B_login];
GO

2.3见证服务器

--在见证服务器 host_C 上为主体服务器 host_A 创建一个登录名。

USE master;
--DROP LOGIN host_A_login
CREATE LOGIN host_A_login WITH PASSWORD = '1qaz!QAZ';
GO --创建一个使用该登录名的用户。
--DROP USER host_A_user
CREATE USER host_A_user FOR LOGIN host_A_login;
GO --使证书与该用户关联。
--DROP CERTIFICATE host_A_cert
CREATE CERTIFICATE host_A_cert
AUTHORIZATION host_A_user
FROM FILE = 'c:\DbMirror\host_A.cer'
GO --授予对远程镜像端点的登录名的 CONNECT 权限。
GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [host_A_login];
GO --在见证服务器 host_C 上为镜像服务器 host_B 创建一个登录名。 USE master;
--DROP LOGIN host_B_login
CREATE LOGIN host_B_login WITH PASSWORD = '1qaz!QAZ';
GO --创建一个使用该登录名的用户。
--DROP USER host_B_user
CREATE USER host_B_user FOR LOGIN host_B_login;
GO --使证书与该用户关联。
--DROP CERTIFICATE host_B_cert
CREATE CERTIFICATE host_B_cert
AUTHORIZATION host_B_user
FROM FILE = 'c:\DbMirror\host_B.cer'
GO --授予对远程镜像端点的登录名的 CONNECT 权限。
GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [host_B_login];
GO

3配置数据库登录信息

在主体数据库中查询 sid和name

USE master;
select sid,name from syslogins;

在备份数据库执行

USE master;
exec sp_addlogin
@loginame = 'xiejun',
@passwd = '1qaz!QAZ',
@sid = 0x9E2D3238732D264483489528B0DC0D9F ;

4备份数据库

主体数据库中执行

USE MASTER;
GO
BACKUP DATABASE xiejun
TO DISK = 'c:\DbMirror\DB.bak'
WITH INIT
GO
BACKUP LOG xiejun
TO DISK = 'c:\DbMirror\DB_log.bak'
WITH INIT
GO

在镜像数据库

还原的时候必须把数据库和事务日志以NoRecovery的形式还原

5配置伙伴服务器

执行顺序为 镜像-》主体-》见证

在镜像服务器配置

ALTER DATABASE xiejun
SET PARTNER = 'TCP://10.10.0.52:5022';
GO

在主体服务器配置

ALTER DATABASE xiejun
SET PARTNER = 'TCP://10.10.0.53:5022';
GO

在主体服务器配置

ALTER DATABASE [xiejun]
SET WITNESS = 'TCP://10.10.0.54:5022';
GO

到此服务器配置成功

非域环境下使用证书部署数据库(SqlServer2008R2)镜像的更多相关文章

  1. 非域环境下SQL Server搭建Mirror(镜像)的详细步骤

    1.测试验证环境 服务器角色 机器名 IP SQL Server Ver 主体服务器 WIN-TestDB4O 172.83.XXX.XXX SQL Server 2012 - 11.0.5058.0 ...

  2. 非域环境下搭建自动故障转移镜像无法将 ALTER DATABASE 命令发送到远程服务器实例的解决办法

    非域环境下搭建自动故障转移镜像无法将 ALTER DATABASE 命令发送到远程服务器实例的解决办法 环境:非域环境 因为是自动故障转移,需要加入见证,事务安全模式是,强安全FULL模式 做到最后一 ...

  3. SQL非域环境下带自动故障转移数据库镜像的实现方法(包括镜像服务器)

    使用数据库镜像来提高数据库的高可用性,在镜像服务器创建镜像数据库的快照以卸载报表查询对生产数据库的负载.TechNet有讲座对此技术进行介绍,但看到大家在讲座的讨论区中遇到了很多问题,下面我把在非域环 ...

  4. 非Spring环境下使用Mybatis操作数据库的流程

    准备工作 1,  导入mybatis-3.2.7.jar,mysql-connector-5.1.25-bin.jar两个jar包 2,  在数据库中创建一个db_test数据库,库中有一个表为use ...

  5. 第三篇——第二部分——第四文 配置SQL Server镜像——非域环境

    原文:第三篇--第二部分--第四文 配置SQL Server镜像--非域环境 本文为非域环境搭建镜像演示,对于域环境搭建,可参照上文:http://blog.csdn.net/dba_huangzj/ ...

  6. MyBatis在非Spring环境下第三方DataSource设置-Druid篇

    首先在ITEye上面看到一个同标题文章,在此说明,此文并非转载自 http://iintothewind.iteye.com/blog/2069522 ,因为这篇文章根本就是错误的,照着上面做,工程可 ...

  7. 转载:一种云环境下SaaS软件部署方法及装置与流程

    转载:http://www.xjishu.com/zhuanli/55/201710103925.html 本发明涉及云计算技术领域,特别是涉及一种云环境下SaaS软件部署方法及装置. 背景技术: 随 ...

  8. 精讲RestTemplate第1篇-在Spring或非Spring环境下如何使用

    一.什么是 RestTemplate? RestTemplate是执行HTTP请求的同步阻塞式的客户端,它在HTTP客户端库(例如JDK HttpURLConnection,Apache HttpCo ...

  9. ISA2006安装和部署基础(虚拟机非域环境)

    0x00. 为了測试基于HTTP隧道的绕过ISA,必须搭建模拟环境,为了不麻烦,我们这里不配合域环境认证.本次实验利用Vmware 10.0搭建好开发环境,实现ISA2006安装和部署,同一时候设定基 ...

随机推荐

  1. 在ubuntu 14.04上安装2.6的内核

    1.到http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.32.tar.bz2这里下载最新的稳定版内核: 2.根据各自系统,安装如下软件:l b ...

  2. python 学习笔记二十 django项目bbs论坛

    项目:开发一个简单的BBS论坛 需求: 整体参考“抽屉新热榜” + “虎嗅网” 实现不同论坛版块 帖子列表展示 帖子评论数.点赞数展示 在线用户展示 允许登录用户发贴.评论.点赞 允许上传文件 帖子可 ...

  3. Mybatis-Spring集成

    MyBatis-Spring用来将MyBatis无缝整合到Spring中.使用这个类库中的类, Spring将会加载必要的MyBatis工厂类和Session类. 这个类库也提供一个简单的方式来注入 ...

  4. 阅读笔记 火球UML大战需求分析3

    在复习回顾的以前所学的UML 统一建模语言之后,要将他们融会贯通起来,必定要进行一次事件,这样才能更好地运用各种UML,所以,了解了所有的UML图之后,就要开始接收一个练习的项目了. 这里作者给的例子 ...

  5. pull 解析XML 文件

    pull解析的特点 事件驱动机制来解析 当解析到一个节点,会自动停止,不会往下继续解析,好处 :很好能够控制流程 android默认采用pull解析 pull解析的事件类型 start_documen ...

  6. JSON数据解析

    1 JSON简介 JSON(JavaScript Object Notation),类似于XML,是一种轻量级的数据交换格式,比如在JavaEE中Struts2与Ajax在来回传递数据时,除了可以利用 ...

  7. [OC][转]UITableView属性及方法大全

    Tip: UITableView属性及方法大全  (摘录地址) p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 1 ...

  8. CocoaPods使用 主要带图。转载。

    原文地址 快速更新,不需要查找更新库 命令:pod update  --verbose --no-repo-update 虽然网上关于CocoaPods安装教程多不胜数,但是我在安装的过程中还是出现了 ...

  9. 剑指offer五:

    输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则. /* public class ListNode { int val; ListNode next = n ...

  10. maven 使用tomcat插件 自动化部署war

    1.相关环境变量 idea tomcat8 maven3 2.增加tomcat user, 修改 $CATALINA_HOME/conf/tomcat-users.xml <tomcat-use ...