7、证书与用户关联
命令:
主库上执行:
use master
go
create certificate mirror02_cert
authorization mirror02_user
from file=\'D:\cert\mirror02_cert.cer\'
go
镜像库上执行:
use master
go
create certificate mirror01_cert
authorization mirror01_user
from file=\'D:\cert\mirror01_cert.cer\'
go
8、授予对远程数据库端点的登录名的CONNECT权限
命令:
主库上执行:
use master
go
GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [mirror02_login];
go
镜像库上执行:
use master
go
GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [mirror01_login];
go
9、对需要做镜像的数据库做完整备份和事务日志备份,然后在镜像库上做还原(先还原完整备份,再还原事务日志),使用NORECOVERY模式,这里不做阐述,最后还原后的数据库状态如下:
10.连接镜像(先在镜像库上操作,然后在主库上操作)
注:sqlmirror01和sqlmirror02是2台机器的机器名
命令:
镜像库上执行:(做完这个操作后,数据库的状态:正在恢复)
use master
go
ALTER DATABASE test SET PARTNER = \'TCP://sqlmirror01:5022\';
go
主库上执行:(做完这个操作,镜像就搭建好了)
use master
go
ALTER DATABASE test SET PARTNER = \'TCP://sqlmirror02:5022\';
go
此时主库的状态:
镜像库的状态:
镜像的状态:(只能在主库上右键-->属性查看)
注:如果状态不对,先刷新一下SSMS
11.查看的选项
(1)启用数据库监视器查看镜像是否正常(主库上查看)
(2)查看镜像服务器是否授权主库服务器
12 .主库宕机后,怎么恢复镜像库为可用状态
--第一步:脱离镜像
alter database test set partner off
--第二步;修改数据库的状态为recovery
restore database test with recovery
三、涉及到的系统SQL
--1.查看所有的主秘钥
select * from sys.key_encryptions
--删除主秘钥(要先删除使用秘钥的证书)
drop master key
--2.查看所有的证书
select * from sys.certificates
--删除证书(要先删除使用证书的端点)
drop certificate sqlmirror02_cert
--3.查看所有的端点(endpoint)
select * from sys.endpoints
--删除端点
drop endpoint Endpoint_Mirroring
--4.修改镜像的运行模式为同步(高安全)
alter database test set safety full
--5.修改镜像的运行模式为异步(高性能)
alter database test set safety off
--6.镜像的故障转移
alter database test set partner failover
四、遇到的错误
1.数据库镜像监视器的报错
(1)错误截图