Normal

0

7.8 pt

0

2

false

false

false

EN-US

ZH-CN

X-NONE在非域控环境中创建数据库镜像, 我们必须使用证书来创建数据库镜像。 大致的步骤包括:

在为数据库镜像配置的每个服务器实例上执行下列步骤:

master数据库中,创建数据库主密钥。

master数据库中,为服务器实例创建加密证书。

使用服务器实例的证书为该服务器实例创建端点。

将证书备份到文件,并将其安全地复制到其他系统。

然后,对为数据库镜像配置的每个伙伴执行这些步骤。在 master数据库中:

为其他系统创建登录名。

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

获取其他服务器实例的镜像端点的证书。

将该证书与在步骤2中创建的用户相关联。

授予对该镜像端点的登录名的CONNECT权限。

微软联机丛书提供了一个使用脚本创建使用证书的数据库镜像的步骤,请参阅

示例:使用证书设置数据库镜像(Transact-SQL)

其中的第2步创建证书时,我们可以指定证书过期的日期。 如果不指定,默认过期的时间是一年。当证书过期之后,数据库服务重启之后镜像将不工作。

检查SQL Server错误日志,有如下的消息:

2011-04-06 10:30:29.050

Logon        Database Mirroring login

attempt failed with error: 'Connection handshake failed. The certificate used

by this endpoint was not found: Certificate expired. Use DBCC CHECKDB in master

database to verify the metadata integrity of the endpoints. State 85.'.

本文讨论的是当这个证书过期后如何恢复数据库镜像的解决方案。

---------------------------------------------------------------

解决问题的主要思路是重建一个证书,同时重建对应的

镜像端点以及重新给 登录名赋予 连接的权限。以下是解决镜像服务中镜像服务器上的证书过期的具体步骤。

注意:如果你不了解证书,用户,镜像端点等概念,建议您先阅读上面的示例文章

1.在镜像服务器上,查询database_mirroring_endpoints表,找到对应的 镜像端点

select* from

master.sys.database_mirroring_endpoints

2.删除对应的 镜像端点

DROPENDPOINT Endpoint_Mirroring

3.在镜像服务器上检查 证书。这里一共有两个镜像相关证书,其中pvt_key_encryption_type是MK的是本机的证书,另一个是来自主体服务器的证书

select* from

master.sys.certificates

4.查看expiry_date这一列,删除过期的

证书

DROP CERTIFICATEHOST_B_cert

此时,如果有镜像端点建立在这个证书上,会提示如下错误消息:

Msg15187, Level 16, State 1, Line 1

The certificate cannot be dropped because it is used by one or more

endpoint(s).

5.创建新的 证书,指定一个新的

过期时间(不指定的话,默认过期时间是一年)

CREATECERTIFICATE HOST_B_cert

WITH

SUBJECT = 'HOST_B certificate',

EXPIRY_DATE

= '04/06/2099'

;

6.基于新的证书创建 镜像端点

CREATEENDPOINT Endpoint_Mirroring

STATE

= STARTED

AS

TCP(

LISTENER_PORT=7024

, LISTENER_IP = ALL

)

FOR

DATABASE_MIRRORING(

AUTHENTICATION = CERTIFICATE HOST_B_cert

, ENCRYPTION = REQUIRED ALGORITHM AES

, ROLE = ALL

);

GO

7.由于 镜像端点重建,因此,对应的 登录名 也需要重新给予

连接 的权限。

GRANTCONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_A_login];

GO

如果不给的话,在SQL Server错误日志里我们可以看到如下错误消息。

2011-04-06 11:01:23.050

Logon        Database Mirroring login

attempt failed with error: 'Connection handshake failed. The login 'HOST_A_login' does not have CONNECT permission on the

endpoint. State 84.'.  [CLIENT: 2001:4898:0:fff:0:5efe:10.172.8.189]

8.备份新的 证书

到文件,并将文件拷贝到 主体服务器上。

BACKUPCERTIFICATE HOST_B_cert TO FILE = 'C:\HOST_B_cert.cer';

GO

9.在 主体服务器

上检查 证书。 这里一共有两个镜像相关 证书,其中pvt_key_encryption_type是MK的是本机的证书,另一个是来自镜像服务器的证书。 这里需要删除的是来自镜像服务器的证书

select* from

master.sys.certificates

10.查看expiry_date这列,删除这个过期的 证书

DROP CERTIFICATEHOST_B_cert

11.创建新的

证书

CREATECERTIFICATE HOST_B_cert

AUTHORIZATION

HOST_B_user

FROM

FILE = 'C:\HOST_B_cert.cer'

GO

12.检查数据镜像是否恢复正常。如果不正常,检查主体服务器和镜像服务器的SQL Server错误日志,进一步分析问题。

如果是主体服务器上的证书过期,解决思路也是一样的。 当然,最好是在创建证书的时候指定一个较长的过期时间,这样就不会碰到这样的麻烦啦。

intel的linux证书过期,数据库镜像中证书过期的解决方案相关推荐

  1. 使用证书创建数据库镜像

    1 /*step 1 主实例中. 在master数据 库中创建系统密钥,如果当前系统中已经有加密密钥,可以忽略. 而后创建数据库镜像所需要的证书*/ 2 use master 3 go 4 creat ...

  2. SQL2005 使用证书实现数据库镜像

    数据库镜像可以使用两种类型的传输安全性:Windows 身份验证或基于证书的身份验证,就证书验证的镜像实现做个学习笔记. 配置环境: HOST_A : Windows Server 2003  Sta ...

  3. c# redis hashid如何设置过期时间_Redis中Key过期策略amp;淘汰机制

    1. Redis中设置Key过期时间 我们有两种方式设置过期时间 1.1 设置多久后过期 设置一个 key 10s 过期,可以这样 127.0.0.1:6379> SET key value E ...

  4. 记录docker镜像中证书验证失败导致更新不成功

    使用apt update进行更新时报以下错误 root@yzw-home:~# sudo apt update 忽略:1 https://home-packages.chinauos.com/home ...

  5. plsql口令过期_Oracle 11g中密码过期问题详解

    密码过期的原因一般有两种可能: 一.由于Oracle中默认在default概要文件中设置了"PASSWORD_LIFE_TIME=180天"所导致. 二.由于Oracle中默认在d ...

  6. Linux系统或Docker容器中无法使用ll命令解决方案

    场景: 因为 ll 并不是Linux 下一个基本的命令,它实际上是 ls -l 或者 ls -rltha 的一个别名 解决方式一: 1.需要在 .bashrc 文件中添加如下内容 vim ~/.bas ...

  7. SQLServer数据库镜像配置

    目录 一.目标...2 二.前提条件.限制和建议...2 三.设置概述...2 四.安装Sql Server 2008 enterprise X64.3 4.1.安装.NET3.5.3 4.2.安装时 ...

  8. SQL Server 2012 数据库镜像配置完整篇

    "数据库镜像"是一种提高 SQL Server 数据库的可用性的解决方案. 镜像基于每个数据库实现,并且只适用于使用完整恢复模式的数据库.数据库镜像维护一个数据库的两个副本,这两个 ...

  9. 数据库镜像怎么还原数据库_如何创建数据库镜像

    数据库镜像怎么还原数据库 Sometimes our Database fails and we need to reestablish the Database services immediate ...

最新文章

  1. VS2010 + Qt5.3.2配置教程
  2. 一句话懂什么是JS闭包
  3. call of overloaded 'round(float)' is ambiguous
  4. Windows保护模式学习笔记(一)—— 段寄存器GDT表
  5. 数据结构——Java Stack 类
  6. PIC单片机精通_串口通讯与串口调试实例
  7. 电话号码的判断--使用正则表达式的示例
  8. 【HDU - 6185】Covering(矩阵快速幂优化二维dp,高斯消元,轮廓线dp打表)
  9. 【每日SQL打卡】​​​​​​​​​​​​​​​DAY 11丨产品销售分析 II【难度简单】
  10. 计算机设计大赛国奖作品_2. 报名材料
  11. CentOS6.5安装Tab增强版:bash-completion
  12. 冠军方案 | 第二届中国“高分杯”美丽乡村大赛第一名总结
  13. vscode如何自定义补全内容,自定义常用的快捷方式?
  14. odoo Botton标签属性详解
  15. 市场营销案例分析PPT模板-朴尔PPT
  16. MATLAB:绘制用户给定的01序列图并计算其对应的AMI编码,双相编码和CMI编码
  17. Linux进程间通信-消息队列
  18. 微信小程序开源框架wxSortPickerView:微信小程序首字母排序选择表
  19. SEMer需要知道的创意标题游戏规则
  20. 如何把WORD文档中的其中一页转为横向,其它页不变,仍为纵向

热门文章

  1. ActiveMQ 部署及发送接收消息
  2. AIX 访问Linux NFS共享错误案例
  3. 黑马程序员_java异常处理机制
  4. Visual Studio中的Build和Rebuild区别
  5. 使用ildasm和ilasm修改dll
  6. 项目jetty服务器,maven项目配置Jetty服务器
  7. python二级考试答案分值_2018全国计算机二级考试内容 科目分值设置
  8. sap中用函数增加断点(break point)
  9. sap内表 table_LINE
  10. 实施hybris必须懂java吗