标签:partner 分享图片 alt rdb 数据 ica toolbar exe 设置
部署数据库镜像一般有两种方式域环境下部署http://liulike.blog.51cto.com/1355103/339183 和 非域环境下 证书部署参考地址: http://www.cnblogs.com/shanyou/archive/2010/05/10/1732007.html
这里是自己在三个虚拟机非域环境下部署测试的
数据库 |
系统 |
IP |
角色 |
SqlServer2008R2 |
Server 2008R2 |
10.10.0.52 |
主体 |
SqlServer2008R2 |
Server 2008R2 |
10.10.0.53 |
镜像 |
SqlServer2008R2 |
Server 2008R2 |
10.10.0.54 |
见证 |
配置数据库镜像之前 需要打开端口1433和5022 是三台服务器的都要
下面将图示说明开启1433和5022的步骤:
1.1主题服务器
USE master; --DROP MASTER KEY CREATE MASTER KEY ENCRYPTION BY PASSWORD = ‘1qaz!QAZ‘; GO --为主体服务器 host_A 实例制作一个证书。 --DROP CERTIFICATE host_A_cert CREATE CERTIFICATE host_A_cert WITH SUBJECT = ‘host_A certificate‘,START_DATE = ‘3/12/2015‘,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
1.2镜像服务器
/*********************************************** 在镜像服务器 host_B 执行此脚本 ***********************************************/ USE master; --DROP MASTER KEY CREATE MASTER KEY ENCRYPTION BY PASSWORD = ‘1qaz!QAZ‘; GO --为镜像服务器 host_B 实例制作一个证书。 --DROP CERTIFICATE host_B_cert CREATE CERTIFICATE host_B_cert WITH SUBJECT = ‘host_B certificate‘,START_DATE = ‘3/12/2015‘,EXPIRY_DATE = ‘01/01/2099‘; GO --在 host_B 中为服务器实例创建一个镜像端点。 --DROP ENDPOINT Endpoint_Mirroring 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
1.3见证服务器
/**************************** 见证服务器 host_C 执行 *****************************/ --ALTER DATABASE MirrorDB SET PARTNER OFF USE master; --DROP MASTER KEY CREATE MASTER KEY ENCRYPTION BY PASSWORD = ‘1qaz!QAZ‘; GO --为此服务器实例制作一个证书。 --DROP CERTIFICATE host_C_cert CREATE CERTIFICATE host_C_cert WITH SUBJECT = ‘host_C certificate‘,START_DATE = ‘3/12/2015‘,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_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.1主体服务器
--在 host_A 上为镜像服务器 host_B 创建一个登录名。 USE master; --DROP LOGIN host_B_login CREATE LOGIN host_B_login WITH PASSWORD = ‘1qaz!QAZ‘; GO --创建一个使用该登录名的用户。 --DROP USER host_B_user CREATE USER host_B_user FOR LOGIN host_B_login; GO --使证书与该用户关联。 --DROP CERTIFICATE host_B_cert 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; --DROP LOGIN host_C_login CREATE LOGIN host_C_login WITH PASSWORD = ‘1qaz!QAZ‘; GO --创建一个使用该登录名的用户。 --DROP USER host_C_user CREATE USER host_C_user FOR LOGIN host_C_login; GO --使证书与该用户关联。 --DROP CERTIFICATE host_C_cert 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; --DROP LOGIN host_A_login CREATE LOGIN host_A_login WITH PASSWORD= ‘1qaz!QAZ‘; GO --创建一个使用该登录名的用户。 --DROP USER host_A_user 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镜像服务器
--在镜像服务器 host_B 上为主体服务器 host_A 创建一个登录名。 USE master; --DROP LOGIN host_A_login CREATE LOGIN host_A_login WITH PASSWORD = ‘1qaz!QAZ‘; GO --创建一个使用该登录名的用户。 --DROP USER host_A_user CREATE USER host_A_user FOR LOGIN host_A_login; GO --使证书与该用户关联。 --DROP CERTIFICATE host_A_cert 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; --DROP LOGIN host_C_login CREATE LOGIN host_C_login WITH PASSWORD = ‘1qaz!QAZ‘; GO ----创建一个使用该登录名的用户。 --DROP USER host_C_user CREATE USER host_C_user FOR LOGIN host_C_login; GO ----使证书与该用户关联。 --DROP CERTIFICATE host_C_cert 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; --DROP LOGIN host_B_login CREATE LOGIN host_B_login WITH PASSWORD = ‘1qaz!QAZ‘; GO --创建一个使用该登录名的用户。 --DROP USER host_B_user CREATE USER host_B_user FOR CERTIFICATE host_B_cert; GO --授予对远程镜像端点的登录名的 CONNECT 权限。 GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [host_B_login]; GO
2.3见证服务器
--在见证服务器 host_C 上为主体服务器 host_A 创建一个登录名。 USE master; --DROP LOGIN host_A_login CREATE LOGIN host_A_login WITH PASSWORD = ‘1qaz!QAZ‘; GO --创建一个使用该登录名的用户。 --DROP USER host_A_user CREATE USER host_A_user FOR LOGIN host_A_login; GO --使证书与该用户关联。 --DROP CERTIFICATE host_A_cert 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; --DROP LOGIN host_B_login CREATE LOGIN host_B_login WITH PASSWORD = ‘1qaz!QAZ‘; GO --创建一个使用该登录名的用户。 --DROP USER host_B_user CREATE USER host_B_user FOR LOGIN host_B_login; GO --使证书与该用户关联。 --DROP CERTIFICATE host_B_cert 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
在主体数据库中查询 sid和name
USE master; select sid,name from syslogins;
在备份数据库执行
USE master; exec sp_addlogin @loginame = ‘xiejun‘, @passwd = ‘1qaz!QAZ‘, @sid = 0x9E2D3238732D264483489528B0DC0D9F ;
主体数据库中执行
在主机上备份数据库,先做完整备份,再做日志事务备份。
1、主数据必须设置成完整模式进行备份,如下图:
上图中将“恢复模式”选成“完整模式”。
2、备份数据库,如下图:
备份时将“备份类型”选成“完整”。
3、备份事务日志,如下图:
将“备份类型”选成“事务日志”且备份目录与备份数据库的目录一致。
在镜像数据库
还原的时候必须把数据库和事务日志以NoRecovery的形式还原
执行顺序为 镜像-》主体-》见证
在镜像服务器配置
ALTER DATABASE xiejun SET PARTNER = ‘TCP://10.10.0.52:5022‘; GO
在主体服务器配置
ALTER DATABASE xiejun SET PARTNER = ‘TCP://10.10.0.53:5022‘; GO
在主体服务器配置
ALTER DATABASE [xiejun] SET WITNESS = ‘TCP://10.10.0.54:5022‘; GO
到此服务器配置成功
非域环境下使用证书部署数据库(SqlServer2008R2)镜像
标签:partner 分享图片 alt rdb 数据 ica toolbar exe 设置
原文地址:https://www.cnblogs.com/waw/p/9318847.html