SQL Server数据库镜像安装

news2024/12/29 10:10:57

搭建SQL Server数据库镜像(证书)

本次实验进行SQL server数据库镜像的搭建,采用证书的搭建模式

以下是搭建SQL server数据库镜像的环境设置

数据库

系统

IP

角色

计算机名

SqlServer2008R2

Server 2008R2

192.168.210.125

主体

Win-jingxiang1

SqlServer2008R2

Server 2008R2

192.168.210.126

镜像

Win-jingxiang2

SqlServer2008R2

Server 2008R2

192.168.210.127

见证

Win-jingxiang3

以192.168.210.125为主体服务器,192.168.210.126为镜像服务器,192.168.210.127为见证服务器。

还要对三个环境进行防火墙的设置,需要打开端口14335022

2.1创建证书:

2.1.1先对主体服务器进行以下操作:

USE master;  

CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'hzmc321#'

GO  

--为主体服务器 host_A 实例制作一个证书。 

 

--DROP CERTIFICATE host_A_cert 

CREATE CERTIFICATE host_A_cert  

WITH SUBJECT = 'host_A certificate',START_DATE = '6/19/2019',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 

2.1.2在对镜像服务器进行操作:

USE master;

CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'hzmc321#';

GO

 

--为镜像服务器 host_B 实例制作一个证书。

CREATE CERTIFICATE host_B_cert

WITH SUBJECT = 'host_B certificate',START_DATE = '6/19/2015',EXPIRY_DATE = '01/01/2099';

GO

 

--在 host_B 中为服务器实例创建一个镜像端点。

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

2.1.3再对见证服务器进行操作:

USE master;

CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'hzmc321#';

GO

 

 

--为此服务器实例制作一个证书。

CREATE CERTIFICATE host_C_cert

WITH SUBJECT = 'host_C certificate',START_DATE = '3/12/2015',EXPIRY_DATE = '01/01/2099';

GO

 

--使用该证书为服务器实例创建一个镜像端点。

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配置三者之间的连接:

2.2.1主体服务器:

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

 

USE master;

CREATE LOGIN host_B_login WITH PASSWORD = 'hzmc321#';

GO

 

--创建一个使用该登录名的用户。

CREATE USER host_B_user FOR LOGIN host_B_login;

GO

 

--使证书与该用户关联。

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;

CREATE LOGIN host_C_login WITH PASSWORD = 'hzmc321#';

GO

 

--创建一个使用该登录名的用户。

CREATE USER host_C_user FOR LOGIN host_C_login;

 

GO

 

--使证书与该用户关联。

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;

CREATE LOGIN host_A_login WITH PASSWORD= 'hzmc321#';

GO

 

--创建一个使用该登录名的用户。

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.2对镜像服务器进行操作

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

 

USE master;

CREATE LOGIN host_A_login WITH PASSWORD = 'hzmc321#';

GO

 

--创建一个使用该登录名的用户。

CREATE USER host_A_user FOR LOGIN host_A_login;

GO

 

--使证书与该用户关联。

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;

CREATE LOGIN host_C_login WITH PASSWORD = 'hzmc321#';

GO

 

----创建一个使用该登录名的用户。

CREATE USER host_C_user FOR LOGIN host_C_login;

GO

 

----使证书与该用户关联。

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;

CREATE LOGIN host_B_login WITH PASSWORD = 'hzmc321#';

GO

 

--创建一个使用该登录名的用户。

CREATE USER host_B_user FOR CERTIFICATE host_B_cert;

GO

 

--授予对远程镜像端点的登录名的 CONNECT 权限。

GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [host_B_login];

GO

2.2.3见证服务器:

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

 

USE master;

CREATE LOGIN host_A_login WITH PASSWORD = 'hzmc321#';

GO

 

--创建一个使用该登录名的用户。

CREATE USER host_A_user FOR LOGIN host_A_login;

GO

 

--使证书与该用户关联。

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;

CREATE LOGIN host_B_login WITH PASSWORD = 'hzmc321#';

GO

 

--创建一个使用该登录名的用户。

CREATE USER host_B_user FOR LOGIN host_B_login;

GO

 

--使证书与该用户关联。

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

2.3配置数据库登陆信息

可以自己创建一个新的用于数据库镜像的登录名,也可以使用原本有的。

查询用户名和对应的sid

USE master;

select sid,name from syslogins;

在镜像数据库执行(见证做)

USE master;

exec sp_addlogin

@loginame = 'testname',

@passwd = 'hzmc321#',

@sid = xxxxxxxxxxxxxxxxxxxxxxxxx ;

2.4在主体数据库备份数据库

USE MASTER;

GO

BACKUP DATABASE xxx(目标数据库)

TO DISK = 'c:\DbMirror\DB.bak'

WITH INIT

GO

BACKUP LOG xxx

TO DISK = 'c:\DbMirror\DB_log.bak'

WITH INIT

GO

 

 

2.5在镜像数据库

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

再重新还原一次事务日志

同样以NoRecovery的形式还原

3.配置伙伴服务器

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

在镜像服务器配置

ALTER DATABASE xxx(目标数据库)

SET PARTNER = 'TCP://192.168.210.125:5022';

GO

在主体服务器配置

 ALTER DATABASE xxx

SET PARTNER = 'TCP://192.168.210.126:5022';

GO

注释:这个时候可能会报以下错误:

消息 1412,级别 16,状态 0,第 1 行

数据库 "test" 的远程副本尚未前滚到包含在数据库日志的本地副本中的时间点。

解决办法:重新从主体数据库备份事务日志并且在镜像数据库还原。

在主体服务器配置

ALTER DATABASE [xxx]

SET PARTNER = 'TCP://192.168.210.127:5022';

GO

 

完成阶段:数据库处于以下状态说明数据库镜像基本搭建成功

 

创建Sql server 维护计划:

在下图红框区域内选择或者修改计划备份的时间

  • 维护计划
  • 实验阶段
  • 环境设置

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1390208.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

现代雷达车载应用——第3章 MIMO雷达技术 3.4节 自动驾驶使用的高分辨成像雷达

经典著作,值得一读,英文原版下载链接【免费】ModernRadarforAutomotiveApplications资源-CSDN文库。 3.4 自动驾驶使用的高分辨成像雷达 如今,许多专为ADAS功能设计的汽车雷达收发器,如NXP半导体的MR3003和德州仪器的AWR2243&…

网络编程day3

思维导图 下载和传输

AI嵌入式K210项目(4)-FPIOA

文章目录 前言一、FPIOA是什么?二、FPIOA代码分析总结 前言 磨刀不误砍柴工,在正式开始学习之前,我们先来了解下K210自带的FPIOA,这个概念可能与我们之前学习STM32有很多不同,STM32每个引脚都有特定的功能&#xff0c…

Web前端 ---- 【Vue3】computed计算属性和watch侦听属性(侦听被ref和reactive包裹的数据)

目录 前言 computed watch watch侦听ref数据 ref简单数据类型 ref复杂数据类型 watch侦听reactive数据 前言 本文介绍在vue3中的computed计算属性和watch侦听属性。介绍watch如何侦听被ref和reactive包裹的数据 computed 在vue3中,计算属性computed也是组合式…

Redis分布式锁--java实现

文章目录 Redis分布式锁方案:SETNX EXPIRE基本原理比较好的实现会产生四个问题 几种解决原子性的方案方案:SETNX value值是(系统时间过期时间)方案:使用Lua脚本(包含SETNX EXPIRE两条指令)方案:SET的扩展…

pod控制器的作用

pod控制器的作用 1、动态pv和pvc deployment是控制器 pod空气器:工作负载,workload用于管理pod的中间层,确保podi资源符合预期的状态 预期状态 1、副本数 2、容器重启策略 3、镜像拉取策略 pod、出现故障时重启等等 pod的控制器类型 1、replic…

Vue3组件库开发 之Button(1)

需求分析: Button 组件大部分关注样式,没有交互 根本分析可以得到具体的属性列表: type:不同的样式(Default,Primary,Danger,Info,Success,Warning) plain:样式的不同展现模式boolean round:圆角boolean circle:圆形按钮,适合图标…

【目标跟踪】跨相机如何匹配像素

文章目录 前言一、计算思路二、代码三、结果 前言 本本篇博客介绍一种非常简单粗暴的方法,做到跨相机像素匹配。已知各相机内外参,计算共视区域像素投影(不需要计算图像特征)。废话不多说,直接来,见下图。…

前端安全专题

xss (Cross Site Scripting) 跨站脚本攻击 原理 通常指黑客通过"HTML注入"篡改了网页,插入了恶意的脚本,从而在用户浏览网页时,控制用户浏览器的一种攻击。 常见攻击类型 存储型XSS 攻击者将恶意的 JavaScript 脚本存储在网站…

【网络工程师】NAT与动态路由

一、NAT网络地址转换 1、NAT:Network Address Translations 网络地址转换 2、ip地址问题:ipv4地址严重不够用了(A、B、C类可以使用 D组播 E科研) 3、解决:把IP地址分为了公网IP和私网IP 公网IP只能在公网上使用 私网…

手把手教你SWOT分析!建议收藏

最近,我一直为一件事情感到困扰。那家位于市中心的西点店生意越来越好,甚至已经开了两家分店,但是挣来的钱还不足够买房子。于是最近,我被这如火如荼的奶茶市场所吸引,想要利用已有的资源开一家奶茶店。但是我不确定这…

使用 Python 数据写入 Excel 工作表

在数据处理和报告生成等工作中,Excel 表格是一种常见且广泛使用的工具。然而,手动将大量数据输入到 Excel 表格中既费时又容易出错。为了提高效率并减少错误,使用 Python 编程语言来自动化数据写入 Excel 表格是一个明智的选择。Python 作为一…

linux GDB and GDB Sever

概念: GDB(GNU Debugger)是一个用于调试程序的强大工具。它是GNU项目的一部分,支持多种编程语言,包括C、C等。GDB 提供了一组命令和功能,允许跟踪检查程序的内部状态,跟踪代码的执行过程&#…

7.5 MySQL对数据的基本操作(❤❤❤)

7.5 MySQL对数据的基本操作 1. 提要2. 数据添加2.1 insert语法2.2 insert 子查询2.3 ignore关键字 3. 数据修改3.1 update语句3.2 update表连接 4. 数据删除4.1 delete语句4.2 delete表连接4.3 快速删除数据表全部数据 1. 提要 2. 数据添加 2.1 insert语法 2.2 insert 子查询 …

vivado 添加现有IP文件、生成IP

添加现有IP文件 作为从AMD IP目录添加和自定义IP的替代方案,您可以直接添加XCI或XCIX文件。此过程不同于从按以下方式编目: •XCI或XCIX文件可能是早期版本,也可能是相同或完全自定义的版本AMD IP目录中发现的类似IP。 •XCI或XCIX文件可能…

【linux】systemctl控制系统服务启动与关闭

systemctl简介 systemctl是一个在linux系统中,管理系统服务的命令。它通常是启动与关闭像防火墙,网络,数据库这类不是直接的软件,而是给软件提供支持的服务。 但是值得注意的是,并不是所有服务都可以用它管理&#x…

Vue学习笔记3--全局事件总线

Vue学习笔记3—全局事件总线 1.全局事件总线可以实现任意组件间通信 X需具备的条件: 所有的组件都要能看见X可以调用$on $off $emitVue.prototype.x {a:1, b:2} 可以被所有组件看见VueComponent.protoype.proto Vue.prototype组件实例对象(vc)可以访问到Vue原型上…

【.NET Core】C#预处理器指令

【.NET Core】C#预处理器指令 文章目录 【.NET Core】C#预处理器指令一、概述二、可为空上下文(#nullable)三、条件编译2.1 定义DEBUG是编译代码2.2 未定义MYTEST时,将编译以下代码 四、定义符号五、定义区域六、错误和警告信息 一、概述 预…

关于 ant-design-vue resetFields 失效

关于 ant-design-vue resetFields 失效 背景: 遇到这样的问题使用ant-design-vue useForm来制作表单的时候,resetFields()失效 场景: 编辑 -赋值 新增-初始值(问题点:新增的时候他就不初始化) 方案&…

【STM32】STM32学习笔记-USART串口收发HEX和文本数据包(29)

00. 目录 文章目录 00. 目录01. 串口简介02. 串口收发HEX数据包接线图03. 串口收发HEX数据包示例104. 串口收发HEX数据包示例205. 串口收发文本数据包接线图06. 串口收发文本数据包示例07. 程序示例下载08. 附录 01. 串口简介 串口通讯(Serial Communication)是一种设备间非常…