SqlServer 2008镜像配置

本文章参考了多篇文章,以下内容为精简:


一. 创建证书文件
--1.删除镜像端点   
IF  EXISTS (SELECT * FROM sys.endpoints e WHERE e.name = N'DatabaseMirroring')   
DROP ENDPOINT [DatabaseMirroring]   
GO   

--2.删除证书   
USE master;   
DROP CERTIFICATE HOST_MASTER_cert   

--3.删除主密钥   
USE master;   
DROP  MASTER KEY

--创建主密钥   
USE master;   
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'password'; --演示所需,否则不要设置这么简单的密码   
GO  

USE master;   
CREATE CERTIFICATE HOST_MASTER_cert   
   WITH SUBJECT = 'HOST_MASTER certificate'--在Winess实例上创建证书,命名为HOST_MASTER_cert,这个选项是描述证书   
   ,EXPIRY_DATE ='2055-10-1' ;--证书过期时间,可以适当设置长一点,具体按实际需要设置   
GO  
 
CREATE ENDPOINT DatabaseMirroring   
   STATE = STARTED   
   AS TCP (   
      LISTENER_PORT=5022                        --使用5022端口,这个端口可以改成未被使用的端口,但是镜像过程中的所有合作者都应该使用相同的端口   
      , LISTENER_IP = ALL   
   )   
   FOR DATABASE_MIRRORING (   
      AUTHENTICATION = CERTIFICATE HOST_MASTER_cert    --使用证书来授权端点   
      , ENCRYPTION = REQUIRED ALGORITHM AES   
      , ROLE = ALL                                --表示这个端点可以作为任何角色,包括主服务器、镜像服务器、见证服务器。   
   );   
GO  

BACKUP CERTIFICATE HOST_MASTER_cert TO FILE = 'D:\Certifications\HOST_MASTER_cert.cer';   
GO  


二.创建账号/用户并进行证书授权

/*   
--删除账号   
DROP LOGIN HOST_A_user   
*/ 
--创建登陆帐号
USE master; 
CREATE LOGIN Host_MIRROR_Login WITH PASSWORD = 'password';
GO

--创建用户,映射至登陆帐号
USE master; 
CREATE USER Host_MIRROR_User For Login Host_MIRROR_Login; 
GO

--创建一个新的证书,并使用从伙伴服务器中复制过来的证书导入,然后映射登陆账号到这个新证书上
CREATE CERTIFICATE Host_MIRROR_Cert   
AUTHORIZATION Host_MIRROR_User   
FROM FILE = 'D:\Certifications\Host_MIRROR_Cert.cer'; 

--授予这个新账号连接端点的权限   
GRANT CONNECT ON ENDPOINT::DatabaseMirroring TO HOST_MIRROR_login;   
GO 


三.从主数据库还原至镜像数据库
1.完整备份mydb到共享文件夹D:\ShareFolders
2.复制备份文件到镜像服务器
3.以Nonrecovery选项还原mydb到镜像服务器
4.日志备份mydb,并同样方式还原到镜像mydb(备份文件中包含全部数据文件跟日志文件)
5.在镜像服务器上执行下面脚本:
ALTER DATABASE mydb
    SET PARTNER = 'TCP://***:5022';  
GO
6.在主体服务器执行下面脚本,把RepB添加成RepA的伙伴
ALTER DATABASE mydb   
    SET PARTNER = 'TCP://***:5022';  
GO  
7.切换模式(自定义选择)
alter database mydb set partner safety full;  --设置数据库高安全模式
alter database mydb set partner safety off;   --设置数据库高性能模式


四.数据库镜像运维方案

--1. 主服务器断开,在镜像服务器上执行操作,镜像服务器->主服务器
ALTER DATABASE [mydb] SET PARTNER FORCE_SERVICE_ALLOW_DATA_LOSS

镜像服务器状态:主体,已断开连接
主体服务器状态:镜像,挂起/正在还原...

--2. 主服务器恢复,在镜像服务器执行操作,主附
alter database [mydb] set partner resume

镜像服务器状态:主体,已同步
主体服务器状态:镜像,已同步/正在还原...

此时,主服务器与镜像服务器完全切换,处于互热备状态


--3. 切换回原始的主体镜像服务器
USE master;
ALTER DATABASE [mydb] SET PARTNER FAILOVER; --切换主备

镜像服务器状态:镜像,已同步/正在还原...
主体服务器状态:主体,已同步


可以发现,主体与镜像完全切换回来。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值