SQL Server复制情况下的高可用方案(一)镜像+复制
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了SQL Server复制情况下的高可用方案(一)镜像+复制,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含5164字,纯文字阅读大概需要8分钟。
内容图文
![SQL Server复制情况下的高可用方案(一)镜像+复制](/upload/InfoBanner/zyjiaocheng/1053/193b2ae23f65408798ec798cf2b80e9c.jpg)
- 通过备份方式准备镜像数据库
BACKUP DATABASE [ mydb ] TO DISK = N‘D:\backup\mydb.bak‘WITH NOFORMAT, NOINIT, NAME = N‘mydb-完整数据库备份 ‘, SKIP, NOREWIND, NOUNLOAD, STATS =10GOBACKUPLOG[mydb]TODISK= N‘D:\backup\mydb.trn‘WITH NOFORMAT, NOINIT, NAME = N‘mydb-事务日志 备份‘ , SKIP , NOREWIND , NOUNLOAD , STATS =10GO
将备份拷贝到镜像服务器上,在镜像服务器上恢复备份,需要指定RESTORE WITH NORECOVERY
RESTORE DATABASE [ mydb ] FROM DISK = N‘D:\backup\mydb.bak‘WITHFILE=1, NORECOVERY , NOUNLOAD , STATS =10GORESTORELOG[mydb]FROMDISK= N‘D:\backup\mydb.trn‘WITHFILE=1, NORECOVERY, NOUNLOAD, STATS =10GO
- 配置出站连接和证书
主体数据库配置如下:
-- 创建密钥 CREATE MASTER KEY ENCRYPTION BY PASSWORD =‘password‘SELECT*FROM sys.symmetric_keys --创建证书CREATE CERTIFICATE cert_3_100 WITH SUBJECT =‘HOST_A certificate for database mirroring‘, EXPIRY_DATE =‘1/1/2020‘SELECT*FROM sys.certificates ; --创建端点CREATE ENDPOINT master_instance STATE = STARTED AS TCP ( LISTENER_PORT=5022 , LISTENER_IP =ALL ) FOR DATABASE_MIRRORING ( AUTHENTICATION = CERTIFICATE cert_3_100 , ENCRYPTION = REQUIRED ALGORITHM AES , ROLE =ALL ) SELECT name , role_desc , state_desc , connection_auth_desc , encryption_algorithm_desc FROM sys.database_mirroring_endpoints --备份证书到其他系统BACKUP CERTIFICATE cert_3_101 TOFILE=‘d:\cert_3_100.cer‘; GO
镜像数据库配置如下:
-- 创建密钥 CREATE MASTER KEY ENCRYPTION BY PASSWORD =‘password‘SELECT*FROM sys.symmetric_keys --创建证书CREATE CERTIFICATE cert_3_101 WITH SUBJECT =‘HOST_A certificate for database mirroring‘, EXPIRY_DATE =‘1/1/2020‘SELECT*FROM sys.certificates ; --创建端点CREATE ENDPOINT backup_instance STATE = STARTED AS TCP ( LISTENER_PORT=5022 , LISTENER_IP =ALL ) FOR DATABASE_MIRRORING ( AUTHENTICATION = CERTIFICATE cert_3_101 , ENCRYPTION = REQUIRED ALGORITHM AES , ROLE =ALL ) SELECT name , role_desc , state_desc , connection_auth_desc , encryption_algorithm_desc FROM sys.database_mirroring_endpoints --备份证书到其他系统BACKUP CERTIFICATE cert_3_101 TOFILE=‘d:\cert_3_101.cer‘; GO
- 配置入站连接和证书
主体数据库配置如下:
USE master -- 为其他系统创建登录名 CREATE LOGIN login_3_101 WITH PASSWORD =‘password‘; SELECT*FROM sys.server_principals --创建一个使用该登录名的用户CREATEUSER user_3_101 FOR LOGIN login_3_101 SELECT*FROM sys.sysusers --将证书与用户关联,并将镜像库生成的证书文件放到指定目录中CREATE CERTIFICATE cert_3_101 AUTHORIZATION user_3_101 FROMFILE=‘d:\cert_3_101.cer‘SELECT*FROM sys.certificates --授权对远程镜像端点的登录名的 CONNECT权限,授权完成后,完成对登录到所需的证书身份验证的设置GRANT CONNECT ON ENDPOINT::master_instance TO login_3_101
镜像数据库配置如下:
USE master -- 为其他系统创建登录名 CREATE LOGIN login_3_100 WITH PASSWORD =‘password‘; SELECT*FROM sys.server_principals --创建一个使用该登录名的用户,并将主体库生成的证书文件放到指定目录中CREATEUSER user_3_100 FOR LOGIN login_3_100 SELECT*FROM sys.sysusers --将证书与用户关联CREATE CERTIFICATE cert_3_100 AUTHORIZATION user_3_100 FROMFILE=‘d:\cert_3_100.cer‘SELECT*FROM sys.certificates --授权对远程镜像端点的登录名的 CONNECT权限,授权完成后,完成对登录到所需的证书身份验证的设置GRANT CONNECT ON ENDPOINT::backup_instance TO login_3_100
- 配置镜像
选择主体数据库mydb数据库对象右键->任务->镜像->配置安全性
因为要采用高性能方式,所以不需要见证服务器
当同步完成后,主体数据库会显示“(主体,已同步)”,镜像数据库会显示(已同步,正在还原)
步骤2:配置分发服务器
- 在发布服务器、分发服务器和订阅服务器配置hosts文件,加入如下配置:
- 将10.86.3.102配置成分发服务器,分发数据库的快照文件建议配置相应的访问权限,因为我的账户有访问权限,所以略去这步
点击添加
- 在分发服务器属性对话框中启用发布服务器
![技术分享](/upload/getfiles/default/2022/11/9/20221109085505381.jpg)
- 在主体数据库(发布数据库)和镜像数据库中指定分发数据库
![技术分享](/upload/getfiles/default/2022/11/9/20221109085506675.jpg)
![技术分享](/upload/getfiles/default/2022/11/9/20221109085507718.jpg)
![技术分享](/upload/getfiles/default/2022/11/9/20221109085508001.jpg)
如果要发布的数据库非常大,建议选择业务空闲期进行初始化快照
![技术分享](/upload/getfiles/default/2022/11/9/20221109085511394.jpg)
输入代理名称,取消勾选“仅显示次配置文件中使用的参数”,指定 –PublisherFailoverPartner 代理参数的镜像名称WIN-3-100
![技术分享](/upload/getfiles/default/2022/11/9/20221109085511854.jpg)
USE mydb INSERT INTO Admin( user_name) VALUES(‘master‘ ) SELECT*FROM admin WHEREuser_name=‘master‘
连接订阅库,查询插入数据
USE mydb SELECT * FROM admin WHEREuser_name=‘master‘
use master ; alter database mydb set partner FORCE_SERVICE_ALLOW_DATA_LOSS; --强制接收
USE mydb INSERT INTO Admin( user_name) VALUES(‘mirror‘ ) SELECT*FROM admin WHEREuser_name=‘mirror‘
在订阅服务器查看:
USE mydb SELECT * FROM admin WHEREuser_name=‘mirror‘
use master ; alter database mydb set partner resume;
原文:http://www.cnblogs.com/datazhang/p/6142349.html
内容总结
以上是互联网集市为您收集整理的SQL Server复制情况下的高可用方案(一)镜像+复制全部内容,希望文章能够帮你解决SQL Server复制情况下的高可用方案(一)镜像+复制所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。