Architecture Intro
Overview• Oracle数据库的架构可以分为两种类型: 单  实例架构和分布式架构(RAC), 后者不是我们  要讨论的内容;• Oracle单实例架构包含两个方面: 实例架构  (instance arch)和存储架构(storage...
Instance vs. Database• 通常我们在谈论oracle数据库时指的是数据库  服务器(oracle database server), 它由两个部分  组成: 实例(instance) + 数据库(database);• 实例...
Single-instance Architecture• 单实例是最常见的一种情况, 数据库实例运行在某台server  上, 并打开存储在本地磁盘的数据库. 客户端与服务端的交  互则可以总结为: – 一个客户端用户进程与一个服务端进程交互...
Instance Memory Structure                 - SGA• 实例内存由被称为系统全局区(SGA,System  Global Area)的系统共享内存(shared memory)组成,  SGA包括以下必...
Instance Memory Structure              - PGA• 当服务端接收到客户端发起的请求并成功  建立连接时, 一个新的会话(session)就会产  生, 该会话代表了此次客户端进程与服务端  进程的交互. ...
Instance Memory Structure       - Database Buffer Cache• 数据库在执行SQL语句时, 需要对磁盘数据文件  进行读取或者写入操作, 而磁盘操作通常是代  价昂贵的, 因此oracle引入了...
Instance Memory Structure         - Redo Log Buffer• 重做日志缓冲对于oracle保持数据的完整性至关重  要, oracle在执行DML语句时会生成重做日志(redo  log), 并写入到...
Instance Memory Structure              - Shared Pool• 共享池是SGA中最为复杂的内存结构, 主要由以下部分组成:  – 库缓存(library cache)     最常见的是用于缓存解析后...
Instance Memory Structure             - Large Pool• 大池是SGA中可选的内存结构, 在以下情况  会使用到: – 共享服务器(shared server) – 并行执行服务器(parallel...
Instance Memory Structure       - Java & Streams Pool• 当应用使用到java存储过程时, java池被用作  堆栈(heap space)空间用于存储java类对象.  需要注意的是, ja...
Instance Process Structure• oracle数据库在启动时会启动相应的后台进程,  这些进程有的是由来已久的比如SMON, PMON,  DBWn, LGWR, CHKPT等; 有的是随着新的版本引  入的, 比如MMO...
Instance Process Structure             - Overview• 这是一张关于SGA与实例进程之间的交互图,  其中server processes表示的是会话进程, 用  于处理客户端与服务端的连接; LG...
Instance Process Structure         - SMON & PMON• SMON, the system monitor  系统监控进程. 在数据库启动时, SMON负责挂  载和打开数据库; 在数据库成功启动之后,...
Instance Process Structure                  - DBWn• DBWn, the database writer  会话进程修改的是数据块缓冲区, 不会直接写磁盘数据文件, 负  责这份工作的是DBWn...
Instance Process Structure               - LGWR• LGWR, the Log Writer  LGWR进程负责将重做日志缓冲区的内容写入到在线  重做日志文件(online redo log fi...
Instance Process Structure                - CKPT• CKPT, the Checkpoint Process  检查点操作通过写入所有的脏数据块从而确保当前数据  库的状态是一致的, CKPT会更...
Instance Process Structure              - MMON• MMON, the Manageability Monitor  可管理性监控器, 该进程随着10g引入, 用于  数据库的自我监控和调优功能. M...
Instance Process Structure              - MMAN• MMAN, the Memory Manager  内存管理进程, MMAN是随着10g版本引入的,  该进程用于自动管理实例内存(SGA & PG...
Instance Process Structure              - ARCn• ARCn, the Archiver  归档日志进程, 这是一个可选的进程, 但是对于大多  数企业应用而言此进程是必须的, 在数据库灾难发  生的...
Instance Process Structure                  - RECO• RECO, the Recoverer  RECO进程负责分布式事务的回滚操作, 分布式事务  一个常见的情况就是使用database li...
Instance Process Structure             - Other Processes• CJQn & Jnnn  这两个进程用于管理数据库定时任务, CJQn进程监控任务队列,  并将需要执行的任务发送给Jnnn进程...
Instance Process Structure          - Other Processes• PSP0  PSP0(Process Spawner)用于创建和管理其他的  oracle进程.• QMNC, Q000  Oracl...
Database Storage Structure            - Overview• Oracle数据库的存储结构可以划分为物理存  储和逻辑存储两个方面, 物理存储指的是  oracle在磁盘或者其它设备上的文件; 逻辑  存储...
Database Physical Storage             - Overview• oracle数据库由三种必须的文件类型和其它  的外部文件(严格上来说这些文件不是必须  的)组成, 必须的文件包括:  • 控制文件(cont...
Database Physical Storage           - Controlfile• Controlfile  关于控制文件有两种看法, 有的DBA认为存在多个控制文  件, 有的则认为只有一个控制文件; 这两种说法都是正确  ...
Database Physical Storage       - Online redo log file• oracle重做日志文件包含两种类型: 在线重做日志和归档  重做日志, 这里讲述的是前者; Oracle数据库要求至少两  个在线...
Database Physical Storage             - Datafile• Datafile  数据文件, 在10g&11g版本中数据库要求至少两个数据文件分别  用于SYSTEM和SYSAUX表空间, 实际情况下会创建...
Database Physical Storage            - Other files• Parameter file  在数据库启动时参数文件被读取并使用, oracle数据库的所有配  置参数中仅有一个参数是必须的: DB_N...
Database Logical Storage• Oracle通过表空间(tablespace)的方式实现了对  物理存储结构的抽象; 从逻辑上来说, 表空间由  多个逻辑段(segment)组成, 段用于存储相关的  数据, 典型的段有表/...
Database Logical Storage• Extent  扩展. 段由多个扩展组成,扩展则是数据块的  集合. 段在每次扩容时, 会分配一个新的扩  展. 下图是oracle逻辑存储结构和物理存储  结构的映射关系  (注意图中使用黑...
Database Logical Storage          - Data dictionary• 数据字典是关于数据的数据, 它是对数据库中其他对象(表, 索引,  限制等)的描述. 以表的数据字典为例, 它包含了表的名称, 创建  参...
END
Upcoming SlideShare
Loading in...5
×

1, OCP - architecture intro

825

Published on

Oracle Database Arch Intro

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
825
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

1, OCP - architecture intro

  1. 1. Architecture Intro
  2. 2. Overview• Oracle数据库的架构可以分为两种类型: 单 实例架构和分布式架构(RAC), 后者不是我们 要讨论的内容;• Oracle单实例架构包含两个方面: 实例架构 (instance arch)和存储架构(storage arch), 前 者又可以分为内存和进程两个方面. 这一章 将依次讨论这些内容.
  3. 3. Instance vs. Database• 通常我们在谈论oracle数据库时指的是数据库 服务器(oracle database server), 它由两个部分 组成: 实例(instance) + 数据库(database);• 实例 实例指的是oracle运行时的内存和相关的操作 系统进程, 在数据库启动时会分配相应的内存 并启动相关的后台进程.• 数据库 数据库指的是相关的存储文件, 包括参数文件, 密码文件, 数据文件等.
  4. 4. Single-instance Architecture• 单实例是最常见的一种情况, 数据库实例运行在某台server 上, 并打开存储在本地磁盘的数据库. 客户端与服务端的交 互则可以总结为: – 一个客户端用户进程与一个服务端进程交互; – 服务端进程与实例进行交互; – 实例与数据库进行交互. 如下:
  5. 5. Instance Memory Structure - SGA• 实例内存由被称为系统全局区(SGA,System Global Area)的系统共享内存(shared memory)组成, SGA包括以下必须的以及可选的组成部分, 必须: – 数据块缓冲区(database buffer cache) – 日志缓冲(log buffer) – 共享池(shared pool) 可选: – 大池(large pool) – Java池(java pool) – 流池(stream pool)
  6. 6. Instance Memory Structure - PGA• 当服务端接收到客户端发起的请求并成功 建立连接时, 一个新的会话(session)就会产 生, 该会话代表了此次客户端进程与服务端 进程的交互. 实例会为每一个会话分配专属 的内存空间, 被称为程序全局区(PGA, program global area). 与SGA不同的是, PGA是每一个 session私有的, 不会共享;• PGA通常用于SQL运算操作, 比如排序, 分组, 连接(join)等.
  7. 7. Instance Memory Structure - Database Buffer Cache• 数据库在执行SQL语句时, 需要对磁盘数据文件 进行读取或者写入操作, 而磁盘操作通常是代 价昂贵的, 因此oracle引入了数据块缓冲将数据 块(data block)加载到内存进行相关的操作, 并 在适时的情况下读写磁盘;• 数据块缓冲区的大小对于数据库的整体性能至 关重要, 缓冲区太小会导致频繁的读写磁盘, 太 大以致不被用到的数据块也被缓存. 使用数据 块命中率(data buffer hit ratio)来衡量缓冲区设 置的合理性, 通常情况下该数值要达到99%以上.
  8. 8. Instance Memory Structure - Redo Log Buffer• 重做日志缓冲对于oracle保持数据的完整性至关重 要, oracle在执行DML语句时会生成重做日志(redo log), 并写入到该缓冲区中. 与其它的内存结构不同 的是, 该缓冲区设置通常比较小(8M), 后台进程LGWR 用于将缓冲区的内容写入到重做日志文件, 该进程 会在下面的情况中被调用: – DBWn进程被调用 – 1/3的缓冲区被使用 – 执行commit语句• 重做日志缓冲的大小设置在数据库启动参数 log_buffer中, 可以修改该参数值, 但是不能小于默认 值. 通常情况下设置过大的log_buffer不是一个好的 做法, 因为在执行commit语句时会实时写重做日志 文件, 会消耗更多的时间.
  9. 9. Instance Memory Structure - Shared Pool• 共享池是SGA中最为复杂的内存结构, 主要由以下部分组成: – 库缓存(library cache) 最常见的是用于缓存解析后的sql语句 – 数据字典缓存(data dictionary cache) 用于缓存最近使用过的数据库对象的数据字典信 息, 比如表/索引等的定义 – PL/SQL存储过程和函数缓冲 缓存PLSQL存储过程和函数的定义 – SQL查询和PL/SQL函数结果缓冲 这是11g版本中引入的一个新的特性, 通过缓存sql查询和 plsql函数的执行结果可以避免重复执行. 系统自身会检查数 据是否已经过期. 默认情况下此特性被关闭.• 共享池的大小对于数据库的性能至关重要, 理想情况下共享池应该能 够存储那些经常被执行sql的解析结果和数据字典定义等信息, 但不应 该保存那些极少被使用的数据. 共享池在数据库启动时被分配, 可以运 行时动态改变共享池的大小(自9i).
  10. 10. Instance Memory Structure - Large Pool• 大池是SGA中可选的内存结构, 在以下情况 会使用到: – 共享服务器(shared server) – 并行执行服务器(parallel execution server) – RMAN备份数据到磁带设备 如果在执行这些操作时, 大池没有被创建那 么则会选择使用共享池中的内存.
  11. 11. Instance Memory Structure - Java & Streams Pool• 当应用使用到java存储过程时, java池被用作 堆栈(heap space)空间用于存储java类对象. 需要注意的是, java存储过程与plsql存储过 程一样被缓存在共享池中.• 流池是Oracle Streams使用到的内存结构, 暂 时不予讨论.
  12. 12. Instance Process Structure• oracle数据库在启动时会启动相应的后台进程, 这些进程有的是由来已久的比如SMON, PMON, DBWn, LGWR, CHKPT等; 有的是随着新的版本引 入的, 比如MMON, MMAN等; 有的是一些非关 键的进程, 比如ARCn, RECO等; 另外一些进程需 要启用相关的数据库选项; 最后的一组进程则 与数据库集群和高级流相关;• 这些进程在不同的系统平台上表现为不同的形 式, 在unix/linux平台上针对每个进程会启动相 应的操作系统进程, 而在windows平台则实现为 oracle.exe进程的子线程.
  13. 13. Instance Process Structure - Overview• 这是一张关于SGA与实例进程之间的交互图, 其中server processes表示的是会话进程, 用 于处理客户端与服务端的连接; LGWR用于 写重做日志文件, DBWn写数据文件; ARCn进 程用于归档重 做日志文件.
  14. 14. Instance Process Structure - SMON & PMON• SMON, the system monitor 系统监控进程. 在数据库启动时, SMON负责挂 载和打开数据库; 在数据库成功启动之后, SMON则负责一些系统的监控任务, 比如合并数 据文件中的空间.• PMON, the process monitor PMON用于监控服务端会话进程. 当客户端发起 一个会话连接时, 服务端会启动相应的会话进 程. 如果该会话正常结束(比如, 用户退出登录), 那么该进程将会被正常的终止; 否则PMON将会 清理这些进程, 这包括回滚未完成的事务和释 放会话的PGA内存.
  15. 15. Instance Process Structure - DBWn• DBWn, the database writer 会话进程修改的是数据块缓冲区, 不会直接写磁盘数据文件, 负 责这份工作的是DBWn进程, 可以有多个该进程同时运行分别是 DBW0, DBW1... DBWn进程负责将缓冲区的脏数据块写入到数据文件, 该进程遵 循的一个原则是: 尽可能少被调用, 每次调用尽可能少写. DBWn 只会写缓冲区中最近没有被使用到的脏数据块, 这样只会导致最 少量的磁盘IO操作. 以下情况会触发DBWn动作: – 数据块缓冲空间被使用完 – 脏数据块过多 – 每隔3秒DBWn会被调用 – 调用checkpoint操作 在上面的3种情况下只会导致尽量少的脏数据块被写入磁盘, checkpoint 则会对所有的脏数据块执行写入操作, 这样带来的一个后果是磁盘IO 大幅度上升, 数据库性能急剧下降. 数据块在关闭时会执行该动作, 可 以通过如下语句手动执行(没有必要请不要执行): alter system checkpoint
  16. 16. Instance Process Structure - LGWR• LGWR, the Log Writer LGWR进程负责将重做日志缓冲区的内容写入到在线 重做日志文件(online redo log files)中, 每次写操作称 为flush.• 当一个会话执行某些DML语句(INSERT, UPDATE, etc) 时, 会话进程首先会向重做日志缓冲区写修改队列 (change vector), 然后才修改数据缓冲区的数据块. LGWR进程会在下面的情况中被调用: – DBWn进程被调用 – 1/3的缓冲区被使用 – 执行commit语句注意: 有时候会提到LGWR进程每3秒被调用一次,实际上这是由DBWn进程决定的, 因为DBWn进程每个3秒被调用, 而DBWn会调用LGWR.
  17. 17. Instance Process Structure - CKPT• CKPT, the Checkpoint Process 检查点操作通过写入所有的脏数据块从而确保当前数据 库的状态是一致的, CKPT会更新控制文件记录检查点位 置(checkpoint position), 该位置被用于oracle启动时的灾 难恢复操作(比如数据库突然崩溃). 频繁的CKPT操作可以 减少数据库恢复的时间, 但是会对运行时性能产生影响.• CKPT, full vs. partial 检查点操作分为full 和 partial类型, 与前者不同的是 partial类型的操作只会写入某个数据文件或者表空间的 脏数据块, 而不是针对整个数据库的.• CKPT, 8 vs. 8i and onward CKPT自8i版本开始有比较大的变化, 在V8版本中CKPT以 full类型被定时执行; 自8i版本开始, CKPT使用partial类型 以增量的方式执行, 这样带来的好处是数据库的整体性 能表现更为平滑. 只有在用户要求执行或者数据库关闭 时, full类型的CKPT操作才会被调用.
  18. 18. Instance Process Structure - MMON• MMON, the Manageability Monitor 可管理性监控器, 该进程随着10g引入, 用于 数据库的自我监控和调优功能. MMON按照 如下的步骤工作(默认一小时运行一次): – 读取实例收集的数据库活动和性能数据, 并建立 快照(snapshot); – 启动ADDM(Automatic Database Diagnostic Monitor)工具, 对比当前快照和之前的快照并进 行分析; – 生成相应的报告和警告信息.
  19. 19. Instance Process Structure - MMAN• MMAN, the Memory Manager 内存管理进程, MMAN是随着10g版本引入的, 该进程用于自动管理实例内存(SGA & PGA)的分配.• prior 9i 在9i之前无论SGA还是PGA均是静态的, 不可以在实 例启动之后进行重新的调整.• 9i & 10g 在9i版本中SGA/PGA可以被手工调整大小, 10g中引 入了MMAN实现了SGA内存的自动管理.• 11g 11g在所有之前的版本上更进一步, DBA需要做的是 设置一个总的内存共SGA和PGA使用, MMAN会监控 SGA/PGA的内存需要进行自动的管理.
  20. 20. Instance Process Structure - ARCn• ARCn, the Archiver 归档日志进程, 这是一个可选的进程, 但是对于大多 数企业应用而言此进程是必须的, 在数据库灾难发 生的情况下, 如果没有开启该进程可能会导致数据 无法被正常恢复.• How it works? LGWR负责写在线重做日志文件(比较小), 在这些文 件被写满之后LGWR则会覆盖之前的内容, 因此这些 日志文件只能记录数据库近期的活动. ARCn进程用 于在这些日志文件被重写之前对它们进行归档操作, 以记录数据库所有的历史活动.
  21. 21. Instance Process Structure - RECO• RECO, the Recoverer RECO进程负责分布式事务的回滚操作, 分布式事务 一个常见的情况就是使用database link, 比如: update orders@mirror set order_status=complete where customer_id=1000; 这里mirror代表的是一个指向远程数据库的link, 对于 这种事务的提交称之为二部提交(2PC, 2-phase commit). 2PC涉及到本地数据库和远程数据库的提交 操作以及它们之间的同步, 如果均提交成功那么2PC 操作成功, 如果出现了失败那么RECO进程负责分布 式事务的回滚.
  22. 22. Instance Process Structure - Other Processes• CJQn & Jnnn 这两个进程用于管理数据库定时任务, CJQn进程监控任务队列, 并将需要执行的任务发送给Jnnn进程执行;• D000 & Snnn 分派进程, 在启用共享服务器的情况下, 该进程将SQL语句发送给 Snnn进程执行.• DBRM 数据库资源管理进程, 负责资源计划和其它的一些资源管理任务.• DIA0 此进程负责检测和解决数据库死锁(deadlock).• DIAG 可诊断性进程, 负责诊断信息的转储和执行oradebug命令, 该命 令用于检测实例中的问题.• FBDA 闪回数据归档进程(flashback data archiver process), 负责对数据 库表的数据进行归档, 以支持闪回查询(flashback query).
  23. 23. Instance Process Structure - Other Processes• PSP0 PSP0(Process Spawner)用于创建和管理其他的 oracle进程.• QMNC, Q000 Oracle队列管理进程.• SHAD 支持用户会话的辅助进程.• SMCO, W000 SMCO, 空间管理调度进程. W000是它的从属进 程.
  24. 24. Database Storage Structure - Overview• Oracle数据库的存储结构可以划分为物理存 储和逻辑存储两个方面, 物理存储指的是 oracle在磁盘或者其它设备上的文件; 逻辑 存储则是oracle对物理存储的抽象, oracle使 用表空间(tablespace), 段(segment), 扩展 (extent), 数据块(data block)来表示数据库的 逻辑存储结构. 关于oracle存储会在以后的 章节作详细的介绍.• 接下来会首先介绍与物理存储相关的数据 库文件, 之后介绍逻辑存储.
  25. 25. Database Physical Storage - Overview• oracle数据库由三种必须的文件类型和其它 的外部文件(严格上来说这些文件不是必须 的)组成, 必须的文件包括: • 控制文件(controlfile) • 在线重做日志文件(online redo log file) • 数据文件(datafile) 可选的文件类型包括: • 初始化参数文件(initialization parameter file) • 密码文件(password file) • 归档重做日志文件(archive redo log file) • 追踪文件(trace file)
  26. 26. Database Physical Storage - Controlfile• Controlfile 关于控制文件有两种看法, 有的DBA认为存在多个控制文 件, 有的则认为只有一个控制文件; 这两种说法都是正确 的, 通常确实存在多个控制文件, 但是这些控制文件内容 都是相同的. 控制文件对于oracle数据库至关重要, 它存储了如下信息: – 在线重做日志文件的位置, 当数据库处在归档日志模式, 控制 文件会存储近期归档日志文件的位置; – 数据库表空间, 表空间对应的数据文件; – 维护数据库完整性的关键信息, 比如之前提到的检查点位置; – 如果使用了RMAN 进行数据库的备份, 那么备份信息会存储 在控制文件中.• Multiplexing 根据控制文件对于数据库的重要性, 好的做法是对控制 文件保存多个拷贝.
  27. 27. Database Physical Storage - Online redo log file• oracle重做日志文件包含两种类型: 在线重做日志和归档 重做日志, 这里讲述的是前者; Oracle数据库要求至少两 个在线重做日志文件组(方便归档操作), 每个组包含至少 一个文件(称之为成员文件). 为了数据的安全性, 一般在 一个文件组中创建多个成员, LGWR进程会同时写这些文 件以保证它们的同步.• 相关概念 – 当前组(current group) 指的是当前记录重做日志的文件组. – 日志切换(log switch) 当某一组重做日志文件被写满时, 会切换到另一组, 这称为日志切换• 重做日志文件组的数目和大小对于数据库的性能 调优十分重要, 应当根据数据库的具体活动情况进 行适当的调整.
  28. 28. Database Physical Storage - Datafile• Datafile 数据文件, 在10g&11g版本中数据库要求至少两个数据文件分别 用于SYSTEM和SYSAUX表空间, 实际情况下会创建更多的数据文 件; 数据文件存储了数据库段(segments), 典型的segment类型有表/ 索引等; 这些段包含了两种类型的信息: 用户数据库和数据字典 数据.• Data block 从操作系统的层面来看, 数据文件由文件系统块组成, 在内部使 用中则会被处理为oracle数据块(接下来说的数据块均指oracle数 据块),两者之间没有必然的联系但是基于性能的考虑oracle数据 块大小需要大于文件系统数据块的大小; 通常情况下, 整个数据库的数据块大小均相同, 但可以为不同的 数据文件指定不同的块大小. 为了数据的安全性考虑, 数据文件需要进行定时的备份操作; 使 用oracle提供的RMAN工具或者使用磁盘阵列(RAID)技术对数据 文件进行备份.
  29. 29. Database Physical Storage - Other files• Parameter file 在数据库启动时参数文件被读取并使用, oracle数据库的所有配 置参数中仅有一个参数是必须的: DB_NAME, 其他参数均有默认 值, 因此参数文件可能非常小. 另外, 参数文件被存储为pfile或者 spfile.• Password file 通常情况下用户验证信息保存在数据字典并用于验证操作, 如果 数据字典不可用则需要使用密码文件进行验证, 常见的情况是启 动或者创建一个数据库.• Archive redo log file 归档重做日志文件, 用于数据库的恢复.• Alert log and trace file 告警日志文件记录了对数据库影响重大的操作, 比如数据库的启 动和关闭, 改变数据库参数, 修改数据库的物理结构; 跟踪文件, 由数据库后台进程生成, 经常使用到的是会话跟踪文 件, 用于数据库错误诊断和性能调优.
  30. 30. Database Logical Storage• Oracle通过表空间(tablespace)的方式实现了对 物理存储结构的抽象; 从逻辑上来说, 表空间由 多个逻辑段(segment)组成, 段用于存储相关的 数据, 典型的段有表/索引/回滚段; 从物理的角 度来看, 表空间由多个数据文件组成; 段与数据 文件之间是多对多的关系.• Data dictionary segment 在创建数据库时, 需要创建大量的数据字典段, 这些段存储在SYSTEM/SYSAUX表空间中. 10g版 本引入了SYSAUX表空间用于数据字典的存储, 之前所有的字典数据均存储在SYSTEM表空间中.
  31. 31. Database Logical Storage• Extent 扩展. 段由多个扩展组成,扩展则是数据块的 集合. 段在每次扩容时, 会分配一个新的扩 展. 下图是oracle逻辑存储结构和物理存储 结构的映射关系 (注意图中使用黑 字标注的数字):
  32. 32. Database Logical Storage - Data dictionary• 数据字典是关于数据的数据, 它是对数据库中其他对象(表, 索引, 限制等)的描述. 以表的数据字典为例, 它包含了表的名称, 创建 参数, 列等信息; 从10g版本开始, 数据字典还包含了性能监控的 相关信息. 在很多方面, 数据字典与其他的数据库对象一样, 也是 使用段进行存储的, 关键的区别在于这些段在数据库创建时创建, 而且不应当直接去访问这些数据(通常使用视图的方式进行访 问);• Data dictionary views oracle以三种视图的形式提供对数据字典的访问, 分别以不同的 前缀进行命名: – USER_XXXX 当前用户拥有的对象的数据字典信息, 比如user_tables, user_indexes; – ALL_XXXX 当前用户具有访问权限的对象的数据字典信息, 比如all_tables, all_indexes; – DBA_XXXX 数据库所有对象的数据字典信息, 比如dba_tables.
  33. 33. END

×