Oracle 11g物理Active Data Guard实时查询特性分析


本篇内容介绍了“Oracle 11g物理Active Data Guard实时查询特性分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在Oracle 11g以前版本中的的Data Guard物理备用数据库,可以以只读的方式打开数据库,但此时Media Recovery利用日志进行数据同步的过程就停止了,如果物理备用数据库处于恢复的过程中数据库就不能打开查询,也就是说日志应用和只读打开两个状态是互斥的,而Oracle 11g Active Data Guard功能解决了这个矛盾,在利用日志恢复数据的同时可以用只读的方式打开数据库,用户可以在备用数据库上进行查询、报表等操作,这类似逻辑Data Guard备用数据库的功能(查询功能方面),但是,数据同步的效率更高、对硬件的资源要求更低。这样可以更大程度地发挥物理备用数据库的硬件资源的效能。

以创建表空间、用户以及表为例体验一下Oracle 11g物理Active Data Guard实时查询(Real-time query)特性。

1.调整备库为“READ ONLY WITH APPLY”状态
这体现的便是Oracle 11g物理Active Data Guard功能中的“Active”真实含义。
1)查看备库当前状态
ora11gdg@secdb /home/oracle$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Fri Mar 16 11:54:52 2012

Copyright (c) 1982, 2009, Oracle. All rights reserved.Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 – Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

sys@ora11gdg@> select open_mode from v$database;

OPEN_MODE
——————–
MOUNTED

此时备库处于MOUNT状态。

2)取消备库的自动恢复
sys@ora11gdg@> alter database recover managed standby database cancel;

Database altered.

3)OPEN备库调整为“READ ONLY”状态
sys@ora11gdg@> alter database open;

Database altered.

sys@ora11gdg@> select open_mode from v$database;

OPEN_MODE
——————–
READ ONLY

4)在“READ ONLY”状态下进一步启动备库的恢复
sys@ora11gdg@> alter database recover managed standby database using current logfile disconnect;

Database altered.

选项“USING CURRENT LOGFILE”的含义是当备库收到日志后,尽快完成恢复。

sys@ora11gdg@> select open_mode from v$database;

OPEN_MODE
——————–
READ ONLY WITH APPLY

状态“READ ONLY WITH APPLY”即表示此时备库处于Read Only状态的同时可以接受主库传过来的日志进行恢复,以便达到备库可以即时查看到主库变化的目的。

2.体验实时查询(Real-time query)特性
1)主库上创建表空间、用户以及表并初始化数据
(1)创建表空间并查看表空间创建结果和状态
sys@ora11g> create tablespace secooler_tbs datafile ‘/u01/app/oracle/oradata/ora11g/secooler_tbs01.dbf’ size 10m;

Tablespace created.

sys@ora11g> select * from v$tablespace where name = ‘SECOOLER_TBS’;

TS# NAME INC BIG FLA ENC
———- —————————— — — — —
8 SECOOLER_TBS YES NO YES

sys@ora11g> select ts#,status,bytes,name from v$datafile where ts# = 8;

TS# STATUS BYTES NAME
———- ——- ———- ——————————
8 ONLINE 10485760 /u01/app/oracle/oradata/ora11g
/secooler_tbs01.dbf

(2)创建用户并授权
sys@ora11g> create user secooler identified by secooler default tablespace secooler_tbs;

User created.

sys@ora11g> grant dba to secooler;

Grant succeeded.

(3)创建表并初始化数据
sys@ora11g> conn secooler/secooler
Connected.
secooler@ora11g> create table t (x varchar2(8));

Table created.

secooler@ora11g> insert into t values (‘Secooler’);

1 row created.

secooler@ora11g> commit;

Commit complete.

secooler@ora11g> select * from t;

X
——–
Secooler

2)此时观察ora11g实例的alert日志记录了如下信息
Fri Mar 16 11:56:36 2012
create tablespace secooler_tbs datafile ‘/u01/app/oracle/oradata/ora11g/secooler_tbs01.dbf’ size 10m
Fri Mar 16 11:56:48 2012
Completed: create tablespace secooler_tbs datafile ‘/u0免费云主机域名1/app/oracle/oradata/ora11g/secooler_tbs01.dbf’ size 10m

3)几乎与此同时(1秒)备库ora11gdg实例的警告日志中记录了如下信息
Fri Mar 16 11:56:37 2012
Recovery created file /u01/app/oracle/oradata/ora11gdg/secooler_tbs01.dbf
Successfully added datafile 5 to media recovery
Datafile #5: ‘/u01/app/oracle/oradata/ora11gdg/secooler_tbs01.dbf’

可见,备库已经接受到主库的这个变化,并把这个变化在备库应用完毕。

4)验证主库所创建表空间、用户以及表并初始化数据是否在备库应用成功
(1)查看备库表空间
sys@ora11gdg> select * from v$tablespace where name = ‘SECOOLER_TBS’;

TS# NAME INC BIG FLA ENC
———- —————————— — — — —
8 SECOOLER_TBS YES NO YES

sys@ora11gdg> select ts#,status,bytes,name from v$datafile where ts# = 8;

TS# STATUS BYTES NAME
———- ——- ———- ——————————
8 RECOVER 10485760 /u01/app/oracle/oradata/ora11g
dg/secooler_tbs01.dbf

创建成功,但是此时备库数据文件的状态是“RECOVER”。

(2)查看备库用户及数据是否存在
sys@ora11gdg> conn secooler/secooler
Connected.
secooler@ora11g> set lines 80
secooler@ora11g> desc t;
Name Null? Type
—————— ——– —————————-
X VARCHAR2(8)

secoolerdg@ora11g> select * from t;

X
——–
Secooler

主库上的变化已经即使的在备库上得到应用。
这便是Oracle 11g物理Active Data Guard实时查询(Real-time query)特性的体现。
“Oracle 11g物理Active Data Guard实时查询特性分析”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注百云网站,小编将为大家输出更多高质量的实用文章!

相关推荐: Redis常用命令(一) 字符串键、散列键

redis是key-value的数据结构,每条数据都是一个键值对键的类型是字符串,因为默认是字符串所以都不用加引号注意:键不能重复值的类型分为五种:字符串string散列hash列表list集合set有序集合zset### string字符串键set key …

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 01/10 20:05
下一篇 01/10 20:05