镜像"/>
windows server2012+SQLserver2012 用证书在非域环境下搭建镜像
百度上搜了很多资料和各位在非域环境下搭建sqlserver镜像的各种步骤上踩了各种坑,最后自己参考总结出来的感觉比较完善的步骤。(也感谢各位在非域环境下用证书搭建sqlserver镜像的资料)
(环境:windows server2012+sqlserver2012)
两台机子(条件有限没做见证服务器)(网段可以不同)
192.168.1.20 计算机名:wddd(主)
192.168.1.10 计算机名:wsss(从)
(数据库的模式都要选择完整模式)
(0)在主从机子上的C:\Windows\System32\drivers\etc下有个hosts文件在最底下添加如下:
192.168.1.20 wddd
192.168.1.10 wsss
(1)先在主计算机和从计算机上新建一个一模一样账号密码的用户,并加入管理员组,最后进入计算机管理把SQL Server(MSSQLSERVER)服务的登录账户都改成这个用户.
(2)再进入C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Binn修改XPStar.DLL文件,在属性-安全-编辑-添加-高级-立即查找处添加MSSQLSERVER用户再赋予完全控制权限.
(3)然后在主从计算机上的防火墙上打开5022和1433端口。
最后在数据库上执行的操作:
在主库上的新建查询处执行:
(4)USE master;
CREATE MASTER KEY ENCRYPTION BY PASSWORD = ‘自己想要的密码’; --创建秘钥对
CREATE CERTIFICATE A_cert WITH SUBJECT = ‘A certificate’ , START_DATE = ‘1/1/2019’,EXPIRY_DATE = ‘10/31/2099’; --创建证书
CREATE ENDPOINT Endpoint_XX STATE = STARTED AS TCP ( LISTENER_PORT=5022 , LISTENER_IP = ALL ) FOR DATABASE_MIRRORING ( AUTHENTICATION = CERTIFICATE A_cert , ENCRYPTION = REQUIRED ALGORITHM AES , ROLE = ALL ); --创建端口
BACKUP CERTIFICATE A_cert TO FILE = ‘D:\jiami\A_cert.cer’; --备份证书
在从库上执行:
(5)USE master; CREATE MASTER KEY ENCRYPTION BY PASSWORD = ‘自己想要的密码’; --创建秘钥对
CREATE CERTIFICATE B_cert WITH SUBJECT = ‘B certificate’, START_DATE = ‘1/1/2019’,EXPIRY_DATE = ‘10/31/2099’; --创建证书
CREATE ENDPOINT Endpoint_XX STATE = STARTED AS TCP ( LISTENER_PORT=5022 , LISTENER_IP = ALL ) FOR DATABASE_MIRRORING ( AUTHENTICATION = CERTIFICATE B_cert , ENCRYPTION = REQUIRED ALGORITHM AES , ROLE = ALL ); --创建端口
BACKUP CERTIFICATE B_cert TO FILE = ‘D:\jiami\B_cert.cer’; --备份证书
(6)主库上的证书复制到从库的’D:\jiami’下
(7)从库上的证书复制到主库的’D:\jiami’下
在主库上执行:
(8)CREATE LOGIN B_login WITH PASSWORD = ‘自己想要的密码’; --创建登录用户密码
CREATE USER B_user FOR LOGIN B_login; --创建用户进登录用户组
CREATE CERTIFICATE B_cert AUTHORIZATION B_user FROM FILE = ‘D:\jiami\B_cert.cer’; --用户绑定证书
GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [B_login]; --赋予登录用户进出端口的权限
在从库上执行:
(9)CREATE LOGIN A_login WITH PASSWORD = ‘自己想要的密码’; --创建登录用户
CREATE USER A_user FOR LOGIN HOST_A_login; --创建用户进登录用户组
CREATE CERTIFICATE A_cert AUTHORIZATION A_user FROM FILE = ‘D:\jiami\A_cert.cer’; --用户绑定证书
GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [A_login]; ----赋予登录用户进出端口的权限
(10)再在主库上备份自己要同步的数据库2次,一次完整备份,一次事务备份.再把2份备份文件复制到从库到随便一个文件夹下,
然后在从库上右键点击自己创建的新库(跟主库自己要备份的库名字相同),选择任务-还原数据库,在源选设备,然后选择自己拷贝过来的完整备份的文件,目标就是自己创建的新库,再点击选项,勾上覆盖现有数据库,恢复状态选RESTORE WITH NORECOVERY,结尾日志备份默认勾了,要取消掉,点确定.
之后再还原事务日志,从文件或磁带中选择自己拷贝过来的事务日志的文件,在选项中的恢复状态选不对数据库执行任何操作,不回滚未提交的…(RESTORE WITH NORECOVERY).点确定。
在从库上执行:
(11)ALTER DATABASE 自己要同步的数据库 SET PARTNER = ‘TCP://192.168.1.20(主库的ip):5022’;
之后在主库上执行:
(12)ALTER DATABASE 自己要同步的数据库 SET PARTNER = ‘TCP://192.168.1.10(从库的ip):5022’;
之后自己想同步其他库就再执行(10)(11)(12)的操作就行了
更多推荐
windows server2012+SQLserver2012 用证书在非域环境下搭建镜像
发布评论