基于证书的sqlserver镜像搭建
Sqlserver数据库镜像的搭建步骤
0、首先在hosts文件中添加IP映射(主库和镜像库上都添加)
192.168.3.13 node1 192.168.3.10 node2 |
1、创建主密钥(主库和镜像库上都执行)
use master |
2、创建主库和镜像库的证书(分别在主库和镜像库上执行)
主库上执行: use master 镜像库上执行: use master
|
3、创建主库和镜像库的端点
主库上执行: use master 镜像库上执行: use master
|
4、备份证书(主库和镜像的库的都备份,并互相拷贝过去,保证每个服务器上都有2个证书)
主库上执行: use master 镜像库上执行: use master
|
5、创建登录名(这个要和证书关联,所以1创建2的,2创建1的)
主库上执行: use master 镜像库上执行: use master
|
6、创建使用该登录名的用户
主库上执行: use master 镜像库上执行: use master
|
7、证书与用户关联
主库上执行: use master 镜像库上执行: use master
|
8、授予对远程数据库端点的登录名的CONNECT权限
命令: 主库上执行: use master 镜像库上执行: use master
|
9、对需要做镜像的数据库做完整备份和事务日志备份,
1.完整备份 BACKUP DATABASE [test] TO DISK = N'D:\bak\test.bak' WITH NOFORMAT, INIT, NAME = N'test-完整 数据库 备份', SKIP, NOREWIND, NOUNLOAD, COMPRESSION, STATS = 10 GO declare @backupSetId as int select @backupSetId = position from msdb..backupset where database_name=N'test' and backup_set_id=(select max(backup_set_id) from msdb..backupset where database_name=N'test' ) if @backupSetId is null begin raiserror(N'验证失败。找不到数据库“test”的备份信息。', 16, 1) end RESTORE VERIFYONLY FROM DISK = N'D:\bak\test.bak' WITH FILE = @backupSetId, NOUNLOAD, NOREWIND GO
2.事物日志备份 BACKUP LOG [test] TO DISK = N'D:\bak\test_log.tran' WITH NOFORMAT, INIT, NAME = N'test-完整 数据库 备份', SKIP, NOREWIND, NOUNLOAD, COMPRESSION, STATS = 10 GO declare @backupSetId as int select @backupSetId = position from msdb..backupset where database_name=N'test' and backup_set_id=(select max(backup_set_id) from msdb..backupset where database_name=N'test' ) if @backupSetId is null begin raiserror(N'验证失败。找不到数据库“test”的备份信息。', 16, 1) end RESTORE VERIFYONLY FROM DISK = N'D:\bak\test_log.tran' WITH FILE = @backupSetId, NOUNLOAD, NOREWIND GO
|
10、把主库上的备份在镜像库上做还原(先还原完整备份,再还原事务日志),使用NORECOVERY模式
1.还原完整备份 USE [master] RESTORE DATABASE [test] FROM DISK = N'D:\bak\test.bak' WITH FILE = 1, NORECOVERY, NOUNLOAD, STATS = 5 GO 2.还原事物日志
RESTORE LOG [test] FROM DISK = N'D:\bak\ test.tran' WITH FILE = 1, NORECOVERY, NOUNLOAD, STATS = 10 GO
|
注:同样的操作方式把其他库也备份一下
11、连接镜像(先在镜像库上操作,然后在主库上操作)
镜像库上执行:(做完这个操作后,数据库的状态:正在恢复) use master 主库上执行:(做完这个操作,镜像就搭建好了) use master
|
注:同样的操作方式把其他库弄一下即可
12、灾备切换方式
主库宕机后,只要在镜像库上执行如下2个SQL即可
第一步:脱离镜像 第二步;修改数据库的状态为recovery
|
- 点赞
- 收藏
- 关注作者
评论(0)