提供三种数据保护模式,分别是最大保护(Maximum Protection),最大可用(Maximum Availability)和最大性能(Maximum Performance)。可以通过DV_DATABASE的PROTECTION_MODE字段进行查询。
最大保护(Maximum Protection)
最大保护模式能够确保数据零丢失。
要求所有的事务在提交前其事务日志不仅被写入到本地的日志文件,还要同时写入到备库日志文件,并确保日志数据在至少在一个备库中可用,然后才会在主库上提交。如果出现故障导致所有备库不可用(如网络中断),主库业务会阻塞,以防止数据丢失。
主库必须使用LGWR SYNC方式复制到备库。
该保护模式需要在mount状态下设置,命令如下:
ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE PROTECTION;
最大保护模式下:
LOG归档的备机地址ARCHIVE_DEST_n(n不等于1),至少有一个备机的Redo日志传输模式必须配置为同步模式SYNC,如果所有的备机都配置为异步模式ASYNC,数据库会启动失败。
如果LOG归档的备机地址ARCHIVE_DEST_n(n不等于1)指定了SYNC和AFFIRM属性,那么事务日志写入所有指定AFFIRM的备库日志文件后,才会在主库上提交。
如果LOG归档的备机地址ARCHIVE_DEST_n(n不等于1)指定了SYNC和NAFFIRM属性,那么无需等待备机写入,事务日志将直接写入主库。
最大可用(Maximum availability)
在不影响主库可用的前提下,提供最高级别的数据保护策略。
实现方式与最大保护模式类似,也要求本地事务在提交前必须将事务日志写入到至少一台备机的日志文件中。与最大保护模式不同的是,如果出现故障导致备库不可用,主库业务不会阻塞。虽然会尽量避免数据丢失,但不能绝对保证数据完全一致。
要求主库必须使用LGWR SYNC方式复制到备库。
该保护模式设置没有状态要求,命令如下:
ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE AVAILABILITY;
最大可用模式下:
如果LOG归档的备机地址ARCHIVE_DEST_n(n不等于1)指定了SYNC和AFFIRM属性,且指定了AFFIRM的备机和主机连接正常时,那么事务日志写入所有指定AFFIRM的备库日志文件后,才会在主库上提交。
如果LOG归档的备机地址ARCHIVE_DEST_n(n不等于1)指定了SYNC和NAFFIRM属性,那么无需等待备机写入,事务日志将直接写入主库。
最大性能(Maximum performance)
这种模式在不影响主库性能的前提下,提供最高级别的数据保护策略。缺省模式。
事务可以随时提交。主库的事务日志至少需要写入一个备库,不过这种写入可以是不同步的。如果网络条件理想的话,这种模式能够提供类似最高可用性的数据保护,而仅对主库性能有轻微影响。
主库可以使用LGWR SYNC/ASYNC复制到备库。
该保护模式设置没有状态要求,命令如下:
ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE PERFORMANCE;