概述
本篇主要包括如下两部分内容:
- Data Guard保护模式
- 设置主库的保护模式
一 Data Guard保护模式
1、最大可用性(MAXumum Availability)
最大可用性保护模式提供了在不影响主库可用性的情况下最高级别的数据保护。需要进行恢复事务的所有重做数据被写到online redo log和至少一个同步备库的standby redo log时,事务才会提交。如果主库不能将重做流写到至少一个备库,那么它将按照最大性能模式来保护主库的可用性,直到它再次能够将重做流写到备库为止。
2、最大性能(Maxumum Performance)
最大性能是默认的保护模式,它提供了在不影响主库性能情况下的最高级别数据保护。一旦事务产生的redo data被写到online log,事务就会立即提交。重做数据也被写入一个或多个备库,但它在事务提交方面是异步完成的,因此,主库性能不会因延迟写重做数据到备库而受到影响。和最大可用性模式相比,这种保护模式提供了稍微小一些的数据保护,但它对主库性能的影响最小。
3、最大保护(Maximum Protection)
最大保护模式确保主库故障时不会发生数据丢失。为了提供这种级别的保护,在事务提交前,恢复事务所需的重做数据必须同时写入online redo log和至少一个备库的standby redo log。为了确保数据丢失不会发生,如果主库不能将其重做流写入至少一个备库,主库将关闭,而不是继续处理事务。
Data Guard将重做数据一写到standby redo log持久存储时,主库的事务就会被认为是受保护的。一旦完成,确认就会快速返回到主库,以便继续进行下一个事务,这减少了同步传输对主库吞吐量和响应时间的影响。要完全从备库的完整Data Guard验证中获益,确保在实时应用日志模式(real-time apply mode)操作,以便重做更改被接收时快速地应用到备库。
由于这种数据保护模式将数据保护优先于主库的可用性,因此,Oracle建议使用至少两个备库来保护运行在最大保护模式下的主库,以防止单个备库故障而导致主库关闭。
二 设置主库的保护模式
执行下面的步骤设置主库的保护模式。
1、查看主库当前保护模式
SQL> select name,open_mode,protection_mode,database_role,switchover_status from v$database;
NAME OPEN_MODE PROTECTION_MODE DATABASE_ROLE SWITCHOVER_STATUS
--------- -------------------- -------------------- ---------------- --------------------
SZPRI READ WRITE MAXIMUM PERFORMANCE PRIMARY TO STANDBY
2、切换保护模式为最大保护模式
需要使主库处于Mount状态方可切换
SQL> startup mount
ORACLE instance started.
Total System Global Area 830930944 bytes
Fixed Size 2257800 bytes
Variable Size 536874104 bytes
Database Buffers 289406976 bytes
Redo Buffers 2392064 bytes
Database mounted.
SQL> alter database set standby database to maximize protection;
Database altered.
3、查看主备库保护模式
- 主库
SQL> select name,open_mode,protection_mode,database_role,switchover_status from v$database;
NAME OPEN_MODE PROTECTION_MODE DATABASE_ROLE SWITCHOVER_STATUS
--------- -------------------- -------------------- ---------------- --------------------
SZPRI READ WRITE MAXIMUM PROTECTION PRIMARY TO STANDBY
- 备库
SQL> select name,open_mode,protection_mode,database_role,switchover_status from v$database;
NAME OPEN_MODE PROTECTION_MODE DATABASE_ROLE SWITCHOVER_STATUS
--------- -------------------- -------------------- ---------------- --------------------
SZPRI READ ONLY WITH APPLY MAXIMUM PROTECTION PHYSICAL STANDBY NOT ALLOWED
4、切换保护模式为最大可用性
SQL> alter database set standby database to maximize availability;
Database altered.
SQL> alter database open;
Database altered.
SQL> select name,open_mode,protection_mode,database_role,switchover_status from v$database;
NAME OPEN_MODE PROTECTION_MODE DATABASE_ROLE SWITCHOVER_STATUS
--------- -------------------- -------------------- ---------------- --------------------
SZPRI READ WRITE MAXIMUM AVAILABILITY PRIMARY SESSIONS ACTIVE
5、切换保护模式为最大性能
SQL> alter database set standby database to maximize performance;
Database altered.
SQL> alter database open;
Database altered.
SQL> select name,open_mode,protection_mode,database_role,switchover_status from v$database;
NAME OPEN_MODE PROTECTION_MODE DATABASE_ROLE SWITCHOVER_STATUS
--------- -------------------- -------------------- ---------------- --------------------
SZPRI READ WRITE MAXIMUM PERFORMANCE PRIMARY SESSIONS ACTIVE
6、验证主备数据更新
- 主库
SQL> select *from test;
ID NAME
---------- --------------------------------------------------
1 Alen Liu
SQL> insert into test values(2,'Protection mode test');
1 row created.
SQL> commit;
Commit complete.
- 备库
SQL> select *from test;
ID NAME
---------- --------------------------------------------------
1 Alen Liu
SQL> /
ID NAME
---------- --------------------------------------------------
1 Alen Liu
2 Protection mode test
最后
以上就是俭朴篮球为你收集整理的Oracle 11g Data Guard保护模式的全部内容,希望文章能够帮你解决Oracle 11g Data Guard保护模式所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复