下面的示例演示必须对驻留在 HOST_A 上的一个伙伴执行哪些操作。在此示例中,两个伙伴是三个计算机系统上的默认服务器实例。两个服务器实例在非信任的 Windows 域中运行,因此需要基于证书的身份验证。
HOST_A 担当初始主体角色,HOST_B 担当镜像角色。
使用证书设置数据库镜像涉及四个常规阶段,本示例演示其中的三个阶段:1、2、4。这些阶段如下:
-
本示例显示了下列操作的步骤:
-
为出站连接配置 Host_A。
-
为出站连接配置 Host_B。
有关设置数据库镜像的这一阶段的信息,请参阅如何允许数据库镜像使用证书进行出站连接 (Transact-SQL)。
-
-
本示例显示了下列操作的步骤:
-
为入站连接配置 Host_A。
-
为入站连接配置 Host_B。
有关设置数据库镜像的这一阶段的信息,请参阅如何允许数据库镜像将证书用于入站连接 (Transact-SQL)。
-
-
创建镜像数据库
有关如何创建镜像数据库的信息,请参阅如何为镜像准备镜像数据库 (Transact-SQL)。
配置出站连接
为出站连接配置 Host_A
-
在 master 数据库中,创建数据库主密钥(如果需要)。
-
为此服务器实例制作一个证书。
-
使用该证书为服务器实例创建一个镜像端点。
-
备份 HOST_A 证书,并将其复制到其他系统,即 HOST_B。
-
使用任一安全的复制方法,将 C:\HOST_A_cert.cer 复制到 HOST_B。
为出站连接配置 Host_B
-
在 master 数据库中,创建数据库主密钥(如果需要)。
-
为 HOST_B 服务器实例制作一个证书。
-
在 HOST_B 中为服务器实例创建一个镜像端点。
-
备份 HOST_B 证书。
-
使用任一安全的复制方法,将 C:\HOST_B_cert.cer 复制到 HOST_A。
有关详细信息,请参阅如何允许数据库镜像使用证书进行出站连接 (Transact-SQL)。
配置入站连接
为入站连接配置 Host_A
-
在 HOST_A 上为 HOST_B 创建一个登录名。
-
创建一个使用该登录名的用户。
-
使证书与该用户关联。
-
授予对远程镜像端点的登录名的 CONNECT 权限。
为入站连接配置 Host_B
-
在 HOST_B 上为 HOST_A 创建一个登录名。
-
创建一个使用该登录名的用户。
-
使证书与该用户关联。
-
授予对远程镜像端点的登录名的 CONNECT 权限。
如果打算在具有自动故障转移功能的高安全性模式下运行,则必须重复相同的设置步骤为出站连接和入站连接配置见证服务器。设置入站连接时,如果涉及到见证服务器,则需要为两个伙伴的见证服务器和见证服务器的两个伙伴设置登录名和用户。 |
有关详细信息,请参阅如何允许数据库镜像将证书用于入站连接 (Transact-SQL)。
创建镜像数据库
有关如何创建镜像数据库的信息,请参阅如何为镜像准备镜像数据库 (Transact-SQL)。
配置镜像伙伴
-
在 HOST_B 的镜像服务器实例上,将 HOST_A 上的服务器实例设置为伙伴(使其成为初始主体服务器实例)。将TCP://HOST_A.Mydomain.Corp.Adventure-Works.com:7024 替换为有效的网络地址。有关详细信息,请参阅指定服务器网络地址(数据库镜像)。
-
在 HOST_A 的主体服务器实例上,将 HOST_B 上的服务器实例设置为伙伴(使其成为初始镜像服务器实例)。将TCP://HOST_B.Mydomain.Corp.Adventure-Works.com:7024 替换为有效的网络地址。
-
此示例假设会话将在高性能模式下运行。若要在高性能模式下配置此会话,在主体服务器实例上(位于 HOST_A 上),将事务安全性设置为 OFF。
--Change to high-performance mode by turning off transacton safety. ALTER DATABASE AdventureWorks2008R2 SET PARTNER SAFETY OFF; GO
如果打算在具有自动故障转移功能的高安全性模式下运行,则将事务安全性设置为 FULL(默认设置),并在执行第二个 SET PARTNER 'partner_server' 语句后尽快添加见证服务器。注意,必须首先为出站连接和入站连接配置见证服务器。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现