DATAGUARD物理standby高级管理(笔记三)


Phy standby工作模式

Redo apply

物理standby通过应用归档文件或者直接从standby系统通过oracle恢复机制应用redo 文件。恢复操作是blockblock的操作,如果当前正在应用redo,则数据库不能被open

Read-only

read-only模式打开后,你可以直接从standby库中执行查询,或者备份操作。此时standby数据库仍然可以接受redo数据,只不过不被应用,知道数据库恢复redo apply。可以根据需要,在这两种模式之间互相切换。

Read-write

如果以read-write模式打开,则standby暂停从primary接受redo数据,而且暂时失去灾难保护功能。切回redo apply时数据库闪回到操作前的状态,闪回之后,standby会自动同步primary数据库。

Phy standby特点

灾难恢复及高可用性

物理standby提供了一个健全而且极高效的灾难恢复及高可用性的解决方案。更加易于管理的switchover/failover角色转换及最更短的计划内或计划外停机时间。

数据保护

应用物理standby数据库,Dg能够确保即使面对无法预料的灾害也能够不丢失数据。前面也提到物理standby是基于块对块的复制,因此对象、语句统统无关,primary数据库上有什么,物理standby也会有什么。

分担primary数据库压力

通过将一些备份任务、仅查询的需求转移到物理standby,可以有效节省primary数据库的cpu以及i/o资源。

提升性能

物理standby所使用的redo应用技术使用最底层的恢复机制,这种机制能够绕过sql级代码层,因此效率最高。

下面看看如何设置phy standby的工作模式吧,以read applyread only为例。

1)启动redo apply

SQL> startup nomount;

ORACLE instance started.

Total System Global Area  251658240 bytes

Fixed Size                  2019928 bytes

Variable Size             113249704 bytes

Database Buffers          130023424 bytes

Redo Buffers                6365184 bytes

SQL> alter database mount standby database;

Database altered.

SQL> archive log list;

Database log mode              Archive Mode

Automatic archival             Enabled

Archive destination            /usr/local/ora10/flash_recovery_area/

Oldest online log sequence     88

Next log sequence to archive   0

Current log sequence           90

SQL> alter database recover managed standby database disconnect from session;

Database altered.

SQL> select name,database_role from v$database;

NAME      DATABASE_ROLE

--------- ----------------

ORCL      PHYSICAL STANDBY

SQL>

2)启动read-only

Standby库原先工作在redo apply模式下

SQL> alter database recover managed standby database cancel;

Database altered.

SQL> alter database open;

Database altered.

SQL>

alter database open会直接打开到read only 模式

如果要再切换会redo apply模式,直接执行

alter database recover managed standby database disconnect from session即可。

 

Phy standby数据库事件管理

初始化参数STANDBY_FILE_MANAGEMENT可以控制是否自动将primary数据库增加删除表空间、数据文件的改动继承到standby
如果该参数值设置为auto,则自动创建。
如果设置为manual,则需要手工复制新创建的数据文件到standby服务器。
下面在auto下模拟增删表空间,数据文件
1)查看standby_file_management

SQL> show parameter standby_file

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

standby_file_management              string      AUTO

SQL>

2)pirmary增加表空间

SQL> create tablespace test datafile '/usr/local/ora10/oradata/orcl/test.dbf' size 10M;

Tablespace created.

SQL>

SQL> alter system switch logfile;

System altered.

SQL>

3)  standby查看表空间

SQL> select * from v$tablespace;

       TS# NAME                           INC BIG FLA ENC

---------- ------------------------------ --- --- --- ---

         0 SYSTEM                         YES NO  YES

         1 UNDOTBS1                       YES NO  YES

         2 SYSAUX                         YES NO  YES

         4 USERS                          YES NO  YES

         3 TEMP                           NO  NO  YES

         7 DAT                            YES NO  YES

         8 TEST                           YES NO  YES

7 rows selected.

SQL>

Test表空间创建了。

Phy standby监控


alert告警日志
动态性能视图
v$managed_standby---------查看进程的活动情况

v$archive_dest_status----确认redo应用进度
v$archived_log---------检查归档文件路径及创建信息
v$log_history--------查询归档历史
v$database--------查询当前数据的基本信息
v$archive_dest_status----检查应用模式
v$dataguard_status------- Data guard 事件

 

原文地址:https://www.cnblogs.com/zeromyth/p/1558055.html