咱们对几个概念简单的介绍一下:
事务安全性:
FULL 主体和镜像数据库同步传输的模式,
主体在发送日志后等待镜像的确认
主体和镜像的日志彻底一致
OFF
主体和发送日志后不等待镜像的确认,继续处理后继的操做。
主体失败时在镜像上可能丢失部分数据
仲裁:在高可用性或是高级别保护模式下须要仲裁。以决定那一个服务器是主体服务器,
仲裁的改变将致使故障转移,如主体服务器发生故障了,则会发生仲裁的改变,将镜像服务器定为主体服务器。
造成仲裁的形式通常有这么几种:
下面咱们就来看一下如何配置数据库镜像: 这应该是你们感受很兴奋的,由于听我西里哗拉的讲了半天。终于不用再受罪了。其实配置很简单的,只要注意几个步骤就好了。
准备镜像数据库 在镜像服务器上准备镜像数据库
建立数据库镜像端点 在各个服务器上配置镜像端点
配置安全性
启动数据库镜像
下面咱们就具体看一下如何去作,有哪些须要注意:
这里须要提到的一点的就是在SQL SERVER2005刚刚发布出来的时候数据库镜像这个服务默认是关闭的,也是不支持的。在刚刚发布SQL SERVER2005正式版本的时候,认为数据库镜像这个技术还不成熟,有待完善。因此若是你使用的是正式版本则没法使用这个技术。
那么须要下载SP1或是以上的补丁。
·
版本号
|
|
9.00.1399
|
|
9.00.2047
|
|
9.00.3042
|
|
咱们这里直接打SP2补丁:略
准备数据库:
条件 很重要:
主体数据库必须是彻底恢复模式
建立镜像数据库
在主体数据库上作一个彻底备份,在镜像服务器上使用NORECOVER选项恢复主体数据库。
继续恢复后续日志备份(NORECOVER) NORECOVER 很重要
配置数据库镜像端点 (ENDPOINT)
数据库镜像端点实现镜像会话的通信,也就是各个服务器的入口点,有点相似于端口号。但不是。也就是说你建立了这个端点以后,各个服务器之间就可使用TCP协议进行实例间的通信。每一个镜像端点上都在一个惟一的TCP端口号上侦听,通常你们都使用5022号端口。
建立数据库镜像端点:
须要在每一个实例上建立
只有管理员组的成员才能权限。
设置端点角色 即有的是伙伴端点,有的是见证端点,因此必需要指定。
激活端点 默认是不能使用的,因此要激活。
下面咱们看一下使用T-SQL 语句建立端点
CREATE ENDPOINT DBMIRRORING
AS TCP(LISTENER_PORT=5022)固然也可使用其余端口,只要没有被使用
FOR DATABASE_MIRRORING(ROLE=PARTNER,ENCRYPTION=SUPPORTED) GO
-- 建立的是一个数据库镜像端点,角色是伙伴,通信过程是经过加密的。
ALTER ENDPOINT DBMIRRORING STATE=STARTED GO --激活
此时这个端点就开始侦听了。
建立见证服务器的端点:建立的时候激活端点。
CREATE ENDPOINT DBMIRRORING
STATE=STARTED AS TCP(LISTENER_PORT=5022)
For DATABASE_MIRRORING (ROLE=WITNESS,ENCRYPTION=SUPPORTED)
配置安全性:
数据库镜像中的实例之间必须可信 都使用WINDOWS 身份验证或是基于证书的身份验证(非信任域),为了简单为例,咱们使用WINDOWS身份验证。
赋予服务账户对端点的链接权限。
在这里咱们都使用相同的用户名口令
下面咱们建立完端点后就要启动数据库镜像,注意顺序很重要
指定镜像数据库的伙伴 在镜像服务器上操做
指定主体数据库伙伴 在主体服务器上操做
指定见证服务器 在见证服务器上操做
指定事务安全选项 FULL 仍是 OFF
对应语句分别是:
ALTER DATABASE NOTHWIND SET PARTNER=N’TCP:/SERVER1H:
5022’
–-在SERVER2(镜像)上执行
ALTER DATABASE NOTHWIND SET PARTNER=N’TCP:/SERVER2:
5022’
--在SERVER1(主体)上执行
ALTER DATABASE NOTHWIND SET WITNESS=N’TCP:/SERVER3:
5022’
--在SERVER1(主体)上执行
ALTER DATABASE NOTHWIND SET SAFETY FULL;
--在SERVER1(主体)上执行 高可用性
固然也可使用SMSS
那么完成以后怎么来查看数据库镜像是否完成,能够经过如下两种方法:
SMSS 数据库属性---镜像状态
T-SQL
SELECT * FROM SYS.DATABASE——MIRRORING
SELECT * FROM SYS.DATABASE——MIRRORING——WITNESS
下面咱们具体看一下配置高可用性数据库镜像
咱们使用T-SQL 能够很明显的看到配置的过程。
下面我来介绍一下咱们所使用的环境:
SERVER1为主体服务器
SERVER2为镜像服务器
SERVER3 为见证服务器
首先咱们要
准备数据库:一个是备份主体数据库,一个是在镜像服务器上恢复。
因此
在SERVE1上:
BACKUP DATABASE NORTHWIND TO DISK=’C:\NW.BAK’
在 SERVER2上:
RESTORE DATABASE NORTHWIND FROM DISK=’C:\NW.BAK’ WITH NORECOVERY
建立数据库端点:
1.
在SERVER1上建立数据库镜像端点,用于伙伴通信
Create endpoint dbmirrep as tcp (listener_port=5022)
For database_mirroring (role=partner,encryption=supported );
Alter endpoint dbmirrep state=started
经过图形界面能够查看到
2.
在SERVER2上建立数据库端点,也是用于伙伴通信
Create endpoint dbmirrep as tcp (listener_port=5022)
For database_mirroring (role=partner,encryption=supported)
Alter endpoint dbmirrep state=started
3.
在SERVER3上建立镜像端点,用于见证通信
CREATE ENDPOINT DBMIRREP AS TCP (LISTENER_PORT=5022)
FOR DATABASE_MIRRORING (role=witness,encryption=supported)
ALTER
ENDPOINT
DBMIRREP
STATE
=STARTED
4.
检查端点配置
SELECT * FROM SYS.DATABASE_MIRRORING_ENDPOINTS
也能够经过图形界面查看
配置数据库镜像安全性:也就是指定哪些用户可使用这个端点。确定是管理员,通常用户不让他访问。