第十八周学习笔记

第十八周学习笔记

本周主要讲解了镜像的知识点与注意事项。

一、定义

数据库镜像是DBMS根据DBA的要求,自动把整个数据库或其中的关键数据复制到另一个磁盘上,每当主数据库更新时,DBMS会自动把更新后的数据复制过去,即DBMS自动保证镜像数据与主数据的一致性。为了避免介质故障影响数据库的可用性,许多DBMS还可以提供了数据库镜像(mirror)和复制功能,它不同于数据转储,一般由DBMSDBA的要求自动完成。

(一)SQL Server镜像只有两种模式:高安全模式和高性能模式。两种模式的主要区别在于在事务提交后的操作。

1.在高性能模式下,主体服务器不需要等待镜像服务器响应即可提交事务。

2.在高安全性模式,需要把事务同步到镜像并得到响应后才最终提交主体服务器的事务。

(二)SQL Server镜像状态可能包含下面几种:

1.SYNCHRONIZING:正在同步,通常在第一次启用数据库镜像时出现,表示镜像服务器正在追上主体服务器的进度。

2.SYNCHRONIZED:已经同步完毕,大部分时间都是这种状态,一旦有爆发性的事务传输到镜像数据库,状态会从SYNCHRONIZED转变成SYNCHRONIZING。在高安全性模式下,这种状态通常不会导致数据丢失,仅表示镜像服务器正在同步,但是在高性能模式下,可能有数据丢失的风险。

3.SUSPENDED:挂起,当主体服务器不发送事务到镜像服务器时出现,在Failover发生后会出现这种状态(如果镜像环境依旧运行,仅使用Failover则不出现,但是如果镜像库断开连接,则会出现)。手动暂停镜像会话或者redo 日志发生错误时都会出现。

4.PENDING_FAILOVER:仅当主体服务器变成镜像服务器并且断开用户连接时,会在原主体服务器出现这种状态。在这种状态下,主体服务器和镜像服务器都会表现这种状态。但是见证服务器会出现:CONNECTED/DISCONNECTED/UNKNOWN的其中一种状态。

5.CONNECTED:代表见证服务器能连到其中一个伙伴,另外两种代表不能连到伙伴服务器,这种情况下,数据库会变成不可用,如果镜像环境使用了见证,而镜像服务器为DISCONNECTED,并且镜像服务器奔溃,那么数据库(即使在主体服务器上)都会变得无法访问。所以当见证为disconnected,可以关闭见证,从而禁用仲裁,使用ALTER DATABASE <DB> SET WITNESS OFF实现。

6.DISCONNECTED:当镜像环境中的伙伴均无法连接对方时出现。

可以使用sys.database_mirroring目录视图查看镜像信息。

二、作用

当出现介质故障时,可由镜像磁盘继续提供数据库的可用性,同时DBMS自动利用镜像磁盘进行数据库的修复,不需要关闭系统和重装数据库副本。

没有出现故障时,数据库镜像还可以用于并发操作。即当一个用户对数据库加排他锁修改数据时,其他用户可以读镜像数据库,而不必等待该用户释放锁。

 

三、注意事项

数据库镜像是通过复制数据实现的,频繁地复制自然会降低系统运行效率,因此在实际应用中用户往往只选择对关键数据镜像,如对日志文件镜像,而不是对整个数据库进行镜像。

posted @ 2018-01-11 17:11  wllw6  阅读(155)  评论(0编辑  收藏  举报