1. 环境配置 服务器1:sqlmirror01 IP:192.168.10.176 服务器2:sqlmirror02 IP:192.168.10.177 操作系统:Windows 2012 R2 安装 .Net Framework 3.5/4.0 关闭服务器防火墙或设置白名单 数据库版本:SQL Server 2014 2. 创建主密钥(非必需) use master go create master key encryption by password=‘zaq12WSX‘ go 3. 创建证书 sqlmirror01执行 use master go create certificate sqlmirror01_cert with subject=‘sqlmirror01 certificate‘,expiry_date=‘2099-1-1‘ go sqlmirror02执行 use master go create certificate sqlmirror02_cert with subject=‘sqlmirror02 certificate‘,expiry_date=‘2099-1-1‘ go 4. 创建镜像端点 sqlmirror01执行 use master go create endpoint Endpoint_Mirroring state=started as tcp ( listener_port = 5022,listener_ip = all ) for database_mirroring ( authentication = certificate sqlmirror01_cert, encryption = required algorithm aes, role = all ) go sqlmirror02执行 use master go create endpoint Endpoint_Mirroring state=started as tcp ( listener_port = 5022,listener_ip = all ) for database_mirroring ( authentication = certificate sqlmirror02_cert, encryption = required algorithm aes, role = all ) go 5. 备份证书 sqlmirror01执行 use master go backup certificate sqlmirror01_cert to file = ‘C:\Certificate_files\sqlmirror01_cert.cer‘ go sqlmirror02执行 use master go backup certificate sqlmirror02_cert to file = ‘C:\Certificate_files\sqlmirror02_cert.cer‘ go 6. 拷贝证书 将sqlmirror01_cert.cer拷贝至sqlmirror02的C:\Certificate_files\ 将sqlmirror02_cert.cer拷贝至sqlmirror01的C:\Certificate_files\ 7. 创建登录名 sqlmirror01执行 use master go create login sqlmirror02_login with password=‘abc@123456‘ go sqlmirror02执行 use master go create login sqlmirror01_login with password=‘abc@123456‘ go 8. 创建使用该登录名的用户 sqlmirror01执行 use master go create user sqlmirror02_user for login sqlmirror02_login go sqlmirror02执行 use master go create user sqlmirror01_user for login sqlmirror01_login go 9. 证书与用户关联 sqlmirror01执行 use master go create certificate sqlmirror02_cert authorization sqlmirror02_user from file=‘c:\Certificate_files\sqlmirror02_cert.cer‘ go sqlmirror02执行 use master go create certificate sqlmirror01_cert authorization sqlmirror01_user from file=‘c:\Certificate_files\sqlmirror01_cert.cer‘ go 10. 授予对远程镜像端点的登录名的 CONNECT 权限 sqlmirror01执行 use master go GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [sqlmirror02_login]; go sqlmirror02执行 use master go GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [sqlmirror01_login]; go 11. 配置镜像伙伴 sqlmirror01执行 创建数据库 CREATE DATABASE [Mirror_test_1] ON PRIMARY ( NAME = N‘Mirror_test_1‘, FILENAME = N‘C:\dbdata\Mirror_test_1.mdf‘ , SIZE = 3072KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ) LOG ON ( NAME = N‘Mirror_test_1_log‘, FILENAME = N‘C:\dbdata\Mirror_test_1_log.ldf‘ , SIZE = 1024KB , MAXSIZE = 2048GB , FILEGROWTH = 10%) GO 备份数据库 backup database Mirror_test_1 to disk=‘C:\backup\Mirror_test_1.bak‘ with compression,checksum 将备份拷贝至sqlmirror02 sqlmirror02执行 restore database Mirror_test_1 from disk=‘C:\backup\Mirror_test_1.bak‘ with norecovery 连接镜像 sqlmirror02执行 use master go ALTER DATABASE Mirror_test_1 SET PARTNER = ‘TCP://sqlmirror01:5022‘; go sqlmirror01执行 use master go ALTER DATABASE Mirror_test_1 SET PARTNER = ‘TCP://sqlmirror02:5022‘; go
更改为高性能模式 镜像主体sqlmirror01执行 use master go ALTER DATABASE Mirror_test_1 SET PARTNER SAFETY OFF go