了解Oracle内核代码层的作用

简介:
Oracle RDBMS Kernel 的代码分成多层次,如<Oracle8i Internal Services>一书所介绍的: oracle_kernel_layer  其中部分代码层的作用: The cache layer (KC)

The cache layer manages the database buffer cache. It uses operating system dependent facilities for data file I/O, provides concurrency control facilities for local access to the cache buffers, and provides parallel cache management (PCM) instance locking facilities for Oracle parallel server. The other main responsibility of the cache layer is the control of redo generation into the log buffer, and the writing of redo to the log files. The cache layer also caches control file information.

  • To read blocks.
  • To update blocks in redo only mode.
The transaction layer (KT)

This layer is responsible for the allocation of transactions to rollback segments, interested transaction list changes within data blocks, changes to rollback segment blocks for undo generation, transaction control facilities such as savepoints, and read consistency. The transaction layer is also responsible for space management, both at the level of segment free lists and at the level of tablespace extent allocation.

  • To update blocks with undo.
  • To check with the status of the transaction.
  • To manage recursive transactions for nested space operations.
The recursive program interface (RPI)

The recursive program interface is used to populate the dictionary cache from the data dictionary. Row cache recursive SQL statements are executed in a separate call context, but are not parsed and optimized in the compilation layer.

Row Cache Layer

  • To read/update space dictionary information, where acutal updates happens by callbacks when row cache is flushed.

Recursive SQL

  • To read/update dictionary information.
File Layer
  • To create/drop/alter files in tablespace.

  以上各代码层实现了Oracle Space Management 空间管理的主要功能。


本文转自maclean_007 51CTO博客,原文链接:http://blog.51cto.com/maclean/1278030


相关文章
|
1月前
struts+hibernate+oracle+easyui实现lazyout组件的简单案例——EmpDao层代码
struts+hibernate+oracle+easyui实现lazyout组件的简单案例——EmpDao层代码
|
1月前
struts+hibernate+oracle+easyui实现lazyout组件的简单案例——DeptDao层代码
struts+hibernate+oracle+easyui实现lazyout组件的简单案例——DeptDao层代码
|
7月前
|
存储 Oracle 关系型数据库
Oracle 代码异常查询(五)
Oracle 代码异常查询
175 0
|
7月前
|
SQL Oracle 关系型数据库
Oracle 代码异常查询(九)
Oracle 代码异常查询
211 0
|
7月前
|
SQL 存储 Oracle
Oracle 代码异常查询(三)
Oracle 代码异常查询
199 0
|
7月前
|
SQL Oracle 关系型数据库
Oracle 代码异常查询(八)
Oracle 代码异常查询
123 0
|
7月前
|
SQL 存储 Oracle
Oracle 代码异常查询(七)
Oracle 代码异常查询
358 0
|
7月前
|
存储 Oracle 关系型数据库
Oracle 代码异常查询(六)
Oracle 代码异常查询
117 0
|
7月前
|
SQL Oracle 关系型数据库
Oracle 代码异常查询(四)
Oracle 代码异常查询
|
7月前
|
SQL Oracle 关系型数据库
Oracle 代码异常查询(二)
Oracle 代码异常查询