前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【DB笔试面试751】在Oracle中,有哪几种类型的DG?

【DB笔试面试751】在Oracle中,有哪几种类型的DG?

作者头像
AiDBA宝典
发布2020-02-24 10:35:02
7040
发布2020-02-24 10:35:02
举报
文章被收录于专栏:小麦苗的DB宝专栏

题目部分

在Oracle中,有哪几种类型的DG?

答案部分

DG根据备库(Standby Database)重演日志方式的不同,可以分为物理DG(Physical DG)、逻辑DG(Logical DG)和快照DG(Snapshot DG),它们对应的数据库分别可以称为Physical Standby、Logical Standby和Snapshot Standby。

创建物理备库的方法很多。对于Oracle 11g而言,可以直接从Active Database来创建,也可以基于10g的RMAN备份方式来创建。对于Oracle 10g而言,只能基于RMAN来创建。对于12c的数据库,可以通过dbca -createDuplicateDB的方式来创建一个物理DG,但是前提条件是主库必须是一个单机且非CDB的环境。

(一)物理DG(Physical DG)

物理DG使用的是Media Recovery技术,在数据块级别进行恢复,这种方式没有数据类型的限制,可以保证两个数据库完全一致。在Oracle 11g之前的物理DG只能在MOUNT状态下进行恢复,虽然可以以只读方式打开备库,但是不能应用日志,而到了Oracle 11g时备库可以在打开的情况下执行恢复操作了,这称为ADG(Active Data Guard)。物理DG实时应用进程为MRP进程。需要注意的是,主库在开启闪回数据库功能后,物理备库并不会开启闪回数据库的功能。

(二)逻辑DG(Logical DG)

逻辑DG使用的是LogMiner技术,通过把日志内容还原成SQL语句,然后通过SQL引擎执行这些SQL语句。逻辑DG不支持所有的数据类型,这些不支持的数据类型可以在视图DBA_LOGSTDBY_UNSUPPORTED中查看。如果使用了这些数据类型,那么不能保证主备库完全一致。Logical Standby可以在恢复的同时进行读写操作。逻辑DG实时应用进程为LSP进程。需要注意的是,在逻辑DG中,SYS用户下的对象不会同步。要想创建一个逻辑备库需要先创建一个物理备库,然后再将其转换成逻辑备库。

(三)快照DG(Snapshot DG)

当Physical Standby转换为Snapshot Standby时,它是一个完全可更新的Standby数据库。Snapshot Standby依然会接收来自主库的归档文件,但是它不会应用。当Snapshot Standby转换为Physical Standby时,所有在Snapshot Standby数据库的操作被丢弃之后,Physical Standby数据库才会应用Primary数据库的Redo数据。

最后需要说明的一点是,物理DG可以转换为逻辑DG,但是逻辑DG不能转换为物理DG。快照DG和物理DG可以相互转换。

通过V$DATABASE视图的DATABASE_ROLE列可以查询DG的类型:

代码语言:javascript
复制
[root@rhel6lhr ~]# ps -ef|grep pmon
grid      3375     1  0 08:48 ?        00:00:00 asm_pmon_+ASM
oracle    5462     1  0 09:17 ?        00:00:00 ora_pmon_oradgphy
oracle    5581     1  0 09:17 ?        00:00:00 ora_pmon_oradg11g
oracle    5762     1  0 09:18 ?        00:00:00 ora_pmon_oradglg
oracle    8128     1  0 09:39 ?        00:00:00 ora_pmon_oradgss


-- ORACLE_SID=oradg11g
SYS@oradg11g > select db_unique_name,database_role,open_mode from v$database;

DB_UNIQUE_NAME                 DATABASE_ROLE    OPEN_MODE
------------------------------ ---------------- --------------------
oradg11g                       PRIMARY          READ WRITE


-- ORACLE_SID=oradgphy
SYS@oradgphy > select db_unique_name,database_role,open_mode from v$database;

DB_UNIQUE_NAME                 DATABASE_ROLE    OPEN_MODE
------------------------------ ---------------- --------------------
oradgphy                       PHYSICAL STANDBY READ ONLY WITH APPLY

-- ORACLE_SID=oradglg
SYS@oradglg > select db_unique_name,database_role,open_mode from v$database;

DB_UNIQUE_NAME                 DATABASE_ROLE    OPEN_MODE
------------------------------ ---------------- --------------------
oradglg                        LOGICAL STANDBY  READ WRITE


-- ORACLE_SID=oradgss
SYS@oradgss > select db_unique_name,database_role,open_mode from v$database;

DB_UNIQUE_NAME                 DATABASE_ROLE    OPEN_MODE
------------------------------ ---------------- --------------------
oradgss                        SNAPSHOT STANDBY READ WRITE

& 说明:

有关这3种DG的搭建过程可以参考我的BLOG:https://ke.qq.com/course/318038?tuin=26507979、http://blog.itpub.net/26736162/viewspace-2158321/

本文选自《Oracle程序员面试笔试宝典》,作者:小麦苗

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-02-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DB宝 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档