Data Guard好处: 主要应用场景是冗灾,同时根据配置的不同,Data Guard 还具备高可用、性能提升、数据保护以及故障恢复等特征
1.primary数据库
Primary 数据库实际上就是产生修改操作、并且负责将修改操作传输到其它服务器上的数据库,它也被称为主数据库,相同 Data Guard 环境中至少要包含一个并且仅能有一个 Primary 数据库, Primary 数据库既可以是单实例结构,也可以是 RAC 结构。
2.Standby数据库
Standby 数据库是在高可用环境中,用于灾难保护的生产数据库的一个独立副本。Oracle11gR2版本在同一个Data Guard配置中最多可以创建30个Standby数据库。通过在Standby数据库端应用 Primary 数据库生成的重做记录,Data Guard 自动维护每一个 Standby 数据库在事务上与主库保持同步。Data Guard 区分物理 Standby 和逻辑 Standby 两种同步方式。二者都是使用主库的归档日志来实现事务的同步,但实现原理有着显著的不同。物理 Standby 在接收 Primary 数据库生成的 REDO 后,以介质恢复的方式实现同步。而逻辑 Standby 则是在接收 Primary 数据库生成的 REDO 后,先将其转换成 SQL 语句,再通过在 Standby 数据库上执行该 SQL 语句来实现同步。前者叫 Redo Apply, 后者叫 SQL Apply. 由于二者在实现上的区别,就决定了物理Standby 无论从逻辑结构和物理结构都是和主库必须保持一致,而逻辑 Standby 则只需保证数据库的逻辑结构一致即可,在物理实现上可以不同。
3.角色转换的概念
DG 环境中的数据库只能有两种角色:Primary 和 Standby. 所谓角色转换就是让数据库在这两个角色间进行切换,切换也分两种:switchover 和 failover.
switchover:在 Primary 数据库和其中之一的 Standby 数据库之间的角色切换,任何情况下,switchover 都能确保不会丢失数据。
failover:当 Primary 数据库出现故障并且不能被及时恢复时,就需要通过 failover 将 DG配置中的其中一个 Standby 数据库转换为新的 Primary 数据库。在最大保护模式和最高可用性模式下,failover 也可以确保不会丢失数据。
4.常用并且推荐的保护模式
Maximum Performance(最高性能):这种模式在不影响 Primary 数据库性能前提下,提供最高级别的数据保护策略。事务可以随时提交,当前 Primary 数据库的 REDO 数据至少需要写入一个 Standby 数据库,不过这种写入可以是不同步的。如果网络条件理想的话,这种模式能够提供类似最高可用性的数据保护,而仅对 Primary 数据库的性能有轻微影响。最高性能是创建 Standby 数据库时,系统的默认保护模式。