MSSQLMiRROR
MSSQL 从 2005 开始推出镜像功能.
MSSQL 镜像是不可读的.整个库在个 norecovery模式.
MSSQL 镜像只能是1对1 但可以用镜像+logshipping 混合实现一对多和镜像链.
MSSQL 镜像认证分为 证书 和windows验证.windows验证必须在一个域里面实现.
并不是每个公司的生产环境都是一个域.域的好处是可以做故障转移群集+镜像混合实现保障.
下面就说下认证方式的镜像
环境:win2008 +mssql2008
1 在主库上面创建数据库主密钥
create master key encryption by password ='123!@#abc';
2 创建证书
create certificate host_105
with subject='host_105_c'
3创建端点
代码
create endpoint endport_mirror
state=started
as tcp
(listener_port=1522,
listener_ip=all
)
for database_mirroring
(authentication=certificate host_105,
encryption=required algorithm AES,
role=all
);
4 备份证书并把证书复制到镜像服务器上
backup certificate host_105 to file='c:\host_105.cer';
5 在备份机上面重复1-4步骤 (证书名不一样 把 所有带 host_105替换成host_106)
6 在主机上创建sql验证账户并和证书绑定
代码
create login mirror_b with password='xwj1234!@#$'
create user mirror_b for login mirror_b
create certificate host_106
authorization mirror_b
from file='c:\host_106.cer'
grant connect on endpoint:: endport_mirror to mirror_b
7 在镜像机上创建sql验证账户并和证书绑定
代码
create user mirror_a for login mirror_a;create certificate host_105
grant connect on endpoint:: endport_mirror to mirror_a;
authorization mirror_a
from file='c:\host_105.cer';
8 在主库新建mirror_test数据库 日志模式设置为完全模式 并在镜像库上面还原,还原模式为 norecovery
9 同步镜像
代码
--- 在镜像服务器上运行
alter database mirror_test
set partner='TCP://192.168.1.105:1522'
---在主机上面运行
alter database mirror_test
set partner='TCP://192.168.1.106:1522'
---设置为高性能模式
alter database mirror_test
set safety off
10 测试
代码
--在主机执行
create table test
(id int);
insert into test select 1;
--在镜像库上执行
create database mirror_test_snp
on primary
(name='mirror_test',filename='c:\mirror_test.mdf'
) as snapshot of mirror_test
;
use mirror_test
select * from test
11 打开镜像监控器
11 mirror+logshipping
练一技,修百艺,而成于自然.