17-SQLServer使用证书认证的方式搭建数据库镜像
一、注意点
1.数据库的模式要是完整模式。
2.要对数据库完整备份和事务日志备份,分别还原到镜像库上,使用NORECOVERY模式。
3.镜像数据库是不允许删除和操作,即便查看属性也不行。
4.先删除端点,再删除证书,再删除主密钥。
二、搭建步骤
1、创建主密钥(主库和镜像库上都执行)
命令:
use master
go
create master key encryption by password='$a123456'
go
查看主密钥
创建主密钥之前:
创建主密钥之后:
2、创建主库和镜像库的证书(分别在主库和镜像库上执行)
命令:
主库上执行:
use master
go
create certificate mirror01_cert with subject='mirror01 certificate',expiry_date='2099-1-1'
go
镜像库上执行:
use master
go
create certificate mirror02_cert with subject='mirror02 certificate',expiry_date='2099-1-1'
go
3、创建主库和镜像库的端点
命令:
主库上执行:
use master
go
create endpoint Endpoint_Mirroring
state=started
as tcp ( listener_port = 5022,listener_ip = all )
for database_mirroring ( authentication = certificate mirror01_cert, encryption = required algorithm aes, role = all )
go
镜像库上执行:
use master
go
create endpoint Endpoint_Mirroring
state=started
as tcp ( listener_port = 5022,listener_ip = all )
for database_mirroring ( authentication = certificate mirror02_cert, encryption = required algorithm aes, role = all )
go
SSMS查看创建的端点
4、备份证书(主库和镜像的库的都备份,并互相拷贝过去,保证每个服务器上都有2个证书)
命令:
主库上执行:
use master
go
backup certificate mirror01_cert to file = 'D:\cert\mirror01_cert.cer'
go
镜像库上执行:
use master
go
backup certificate mirror02_cert to file = 'D:\cert\mirror02_cert.cer'
go
5、创建登录名(这个要和证书关联,所以1创建2的,2创建1的)
命令:
主库上执行:
use master
go
create login mirror02_login with password='abc@123456'
go
镜像库上执行:
use master
go
create login mirror01_login with password='abc@123456'
go
6、创建使用该登录名的用户
命令:
主库上执行:
use master
go
create user mirror02_user for login mirror02_login
go
镜像库上执行:
use master
go
create user mirror01_user for login mirror01_login
go
7、证书与用户关联
命令:
主库上执行:
use master
go
create certificate mirror02_cert
authorization mirror02_user
from file='D:\cert\mirror02_cert.cer'
go
镜像库上执行:
use master
go
create certificate mirror01_cert
authorization mirror01_user
from file='D:\cert\mirror01_cert.cer'
go
8、授予对远程数据库端点的登录名的CONNECT权限
命令:
主库上执行:
use master
go
GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [mirror02_login];
go
镜像库上执行:
use master
go
GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [mirror01_login];
go
9、对需要做镜像的数据库做完整备份和事务日志备份,然后在镜像库上做还原(先还原完整备份,再还原事务日志),使用NORECOVERY模式,这里不做阐述,最后还原后的数据库状态如下:
10.连接镜像(先在镜像库上操作,然后在主库上操作)
注:sqlmirror01和sqlmirror02是2台机器的机器名
命令:
镜像库上执行:(做完这个操作后,数据库的状态:正在恢复)
use master
go
ALTER DATABASE test SET PARTNER = 'TCP://sqlmirror01:5022';
go
主库上执行:(做完这个操作,镜像就搭建好了)
use master
go
ALTER DATABASE test SET PARTNER = 'TCP://sqlmirror02:5022';
go
此时主库的状态:
镜像库的状态:
镜像的状态:(只能在主库上右键-->属性查看)
注:如果状态不对,先刷新一下SSMS
11.查看的选项
(1)启用数据库监视器查看镜像是否正常(主库上查看)
(2)查看镜像服务器是否授权主库服务器
12 .主库宕机后,怎么恢复镜像库为可用状态
--第一步:脱离镜像
alter database test set partner off
--第二步;修改数据库的状态为recovery
restore database test with recovery
三、涉及到的系统SQL
--1.查看所有的主秘钥
select * from sys.key_encryptions
--删除主秘钥(要先删除使用秘钥的证书)
drop master key
--2.查看所有的证书
select * from sys.certificates
--删除证书(要先删除使用证书的端点)
drop certificate sqlmirror02_cert
--3.查看所有的端点(endpoint)
select * from sys.endpoints
--删除端点
drop endpoint Endpoint_Mirroring
17-SQLServer使用证书认证的方式搭建数据库镜像的更多相关文章
- 单点登录(二)----实战------简单搭建CAS---测试认证方式搭建CAS
我们在上一篇文章中已经介绍了cas以及它的工作流程. 单点登录(一)-----理论-----单点登录SSO的介绍和CAS+选型 本章我们开始动手搭建一个完整的cas服务实现2个web之间的单点登录. ...
- APK安装时的过滤方式:包名白名单、证书认证
1.定义一些全局变量,文件位置: Build.java (frameworks\base\core\java\android\os) /** * 包管理方式名称<br> * whiteli ...
- MongoDB 副本集+分片 认证方式搭建
MongoDB 副本集+分片 认证方式搭建 参考资料: https://www.cnblogs.com/ityouknow/p/7344005.htmlhttps://jorwen-fang.itey ...
- 不同服务器之间使用svn钩子post-commit同步代码遇到的证书认证问题.md
遇到的问题,以下其他问题都是因解决这个问题引申出来的问题 VisualSVN hooks自动同步更新到web服务器 错误信息如下: Error validating server certificat ...
- Https握手协议以及证书认证
1. 什么是https Https = http + 加密 + 认证 https是对http的安全强化,在http的基础上引入了加密和认证过程.通过加密和认证构建一条安全的传输通道.所以https可以 ...
- JAVA配置&注解方式搭建简单的SpringMVC前后台交互系统
前面两篇文章介绍了 基于XML方式搭建SpringMVC前后台交互系统的方法,博文链接如下: http://www.cnblogs.com/hunterCecil/p/8252060.html htt ...
- SSL通信-忽略证书认证错误
.NET的SSL通信过程中,使用的证书可能存在各种问题,某种情况下可以忽略证书的错误继续访问.可以用下面的方式跳过服务器证书验证,完成正常通信. 1.设置回调属性ServicePointManager ...
- https的证书认证 iOS版
一.证书链 SecTrustRef: SecTrustRef trust = challenge.protectionSpace.serverTrust; 需要先拿出一个 SecTrustRef 对象 ...
- HTTPS协议、TLS协议、证书认证过程解析
一.HTTPS 协议 HTTPS协议其实就是HTTP over TSL,TSL(Transport Layer Security) 传输层安全协议是https协议的核心. TSL可以理解为SSL (S ...
随机推荐
- 《C专家编程》读书笔记之第1~4章
一.C:穿越时空的迷雾 1. C标准中定义了描述编译器的特点的一些术语: (1) 由编译器定义的(imprementation-defined) 由编译器设计者决定如何处理.例如:整型数右移时要不要扩 ...
- elasticsearch进行远程访问,所面对的问题解决方案
elasticsearch6.2进行远程访问,修改yml文件后,启动会报错: 上面四个问题解决方案如下: 问题1,问题2,问题3,解决如下: 注意: 针对第二个问题,你可能在limits.d目录中没有 ...
- Java--垃圾回收【转载】
一:垃圾回收机制的意义 java 语言中一个显著的特点就是引入了java回收机制,可以有效的防止内存泄露,有效的使用空闲的内存. 内存泄露:指该内存空间使用完毕后未回收,在不涉及复杂数据结构的一般情况 ...
- Educational Codeforces Round 74 (Rated for Div. 2)补题
慢慢来. 题目册 题目 A B C D E F G 状态 √ √ √ √ × ∅ ∅ //√,×,∅ 想法 A. Prime Subtraction res tp A 题意:给定\(x,y(x> ...
- 坦克大战--Java类型
写在前面 Java编译器下载教程(真的良心):https://blog.csdn.net/Haidaiya/article/details/81230636 本项目为本人独自制作,请各位尊 ...
- Python学习3——列表和元组
一.通用序列操作——索引.切片.相加.相乘.成员资格检查 1.索引,正序从0开始为第一个元素,逆序从-1开始,-1为最后一个元素 >>> greeting[0] 'h' >&g ...
- table html
<html><head><title>demo-110101</title><style type="text/css"> ...
- 设计模式 -- MVC
MVC 在Web中应用是常见的了,成为基础应用模式. 不好的用法是把业务写在C 中,M只是失血模型. 应该要重M 轻C,业务写在M中,但是这样有问题了.View 会引用Model,那么View会看到M ...
- xcode 把项目代码提交到远程SVN服务器
环境 xcode 7 Mac air xcode默认支持GIT源码管理工具,但现在想把代码提交到已有到SVN服务器上,步骤如下: 1,在safari中打开svn链接地址,信任证书,输入用户名密码 , ...
- sql server常用函数总结
1. 日期函数相关 日期格式格式化函数:),UpdateTime,) --第3个参数为是要转换成的日期的格式,不同的数字代表不同的格式: 日期加减函数: ,UpdateTime) --第一个参数是刻度 ...