欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Oracle 10g DG中数据保护模式

程序员文章站 2024-02-15 22:13:29
...

这种模式能够保证在primary Database发生故障保证数据不丢失。在这种模式下,事务提交前,要保证Redo数据已经写入到Primary Data

Data Guard的保护模式(Data Guard Protection Modes)

最大保护(Maximum protection )

这种模式能够保证在primary Database发生故障保证数据不丢失。在这种模式下,事务提交前,要保证Redo数据已经写入到Primary Database的Online Redologs,同时写入Standby Database的Standby Redologs,并确保至少在一个Standby Database中可用。如果Standby Database不可用,Primary Database将会shutdown。

最高可用性(Maximum availability)

这种模式在不影响Primary Database可用的前提下,,提供*别的数据保护策略,这种模式也能够确保数据不丢失。事务提交之前,要保证Redo数据已经写入到Primary Database的Online Redologs,同时写入Standby Database的Standby Redologs,确保至少在一个Standby Database中可用。与最大保护模式不同的是,如果Standby Database出现故障导致不可用,Primary Database并不会被shutdown,而是自动转换为最高性能模式,等Standby Database恢复正常后,Primary Database又会自动切换到最高可用性模式。

最大性能(Maximum performance)

这是一种默认的保护模式。事务可以随时提交,当前Primary Database的Redo数据至少需要写入一个Standby Database,不过这种方式不会等待Standby Database是否写入的确认因此这种写入属于异步写入。

当网络有很大带宽可用时,常采用这种保护模式。

批注:最大保护和最高可用性至少需要一个Standby Database的Redo数据被同步写入。以上三种保护都要指定LOG_ARCHIVE_DEST_n初始化参数。

在CentOS 6.4下安装Oracle 11gR2(x64)

Oracle 11gR2 在VMWare虚拟机中安装步骤

Debian 下 安装 Oracle 11g XE R2

基于同一主机配置 Oracle 11g Data Guard

探索Oracle之11g DataGuard

Oracle Data Guard (RAC+DG) 归档删除策略及脚本

Oracle Data Guard 的角色转换

Oracle Data Guard的日志FAL gap问题

Oracle 11g Data Guard Error 16143 Heartbeat failed to connect to standby 处理方法

1.DG配置中设置数据保护模式

最大保护(Maximum protection ) 最高可用性(Maximum availability) 最大性能(Maximum performance)

Redo archival process LGWR LGWR LGWR or ARCH

Network transmission mode SYNC SYNC SYNC or ASYNC when using LGWR process. SYNC if using ARCH process

Disk write option AFFIRM AFFIRM AFFIRM or NOAFFIRM

Standby redo log required? Yes Yes No, but it is recommended

查看当前数据库的保护模式,如下:
SQL> select DATABASE_ROLE,PROTECTION_MODE,PROTECTION_LEVEL from v$database;

DATABASE_ROLE PROTECTION_MODE PROTECTION_LEVEL
---------------- -------------------- --------------------
PRIMARY MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE

修改数据库的保护模式为 MAXIMIZE AVAILABILITY,如下:
SQL> startup mount --备库启动至mount状态
ORACLE instance started.

Total System Global Area 281018368 bytes
Fixed Size 2020160 bytes
Variable Size 88083648 bytes
Database Buffers 184549376 bytes
Redo Buffers 6365184 bytes
Database mounted.
SQL> show parameter LOG_ARCHIVE_DEST_2; --备库参数查询

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_2 string SERVICE=orcl LGWR ASYNC VALID_ FOR=(ONLINE_LOGFILES ,PRIMARY_ROLE) DB_UNIQUE_NAME=orcl

SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=myorcl OPTIONAL LGWR SYNC AFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=myorcl'; --备库参数设置

System altered.

SQL> ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(myorcl,orcl)';

System altered.

SQL> SHUTDOWN IMMEDIATE;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> STARTUP MOUNT;
ORACLE instance started.

Total System Global Area 281018368 bytes
Fixed Size 2020160 bytes
Variable Size 109055168 bytes
Database Buffers 163577856 bytes
Redo Buffers 6365184 bytes
Database mounted.
SQL> ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE AVAILABILITY; --修改数据保护模式

Database altered.

SQL> ALTER DATABASE OPEN;

Database altered.

SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=orcl OPTIONAL LGWR SYNC AFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=orcl'; --备库设置

System altered.

SQL> SELECT PROTECTION_MODE, PROTECTION_LEVEL FROM V$DATABASE;

PROTECTION_MODE PROTECTION_LEVEL
-------------------- --------------------
MAXIMUM AVAILABILITY RESYNCHRONIZATION