当前位置:文档之家› oracle基本组件概览

oracle基本组件概览

oracle基本组件概览
oracle基本组件概览

基本组件概览

Oracle 体系结构包括很多基本组件,将详细介绍这些组件。

Oracle 服务器:Oracle 服务器中包含多种文件结构、进程结构和内存结构;但是,处理SQL 语句时,并非所有这些结构都会用到。某些结构用于提高数据库的性能,确保该数据库在遇到软件或硬件错误时可以恢复,或者执行维护该数据库所需的其它任务。Oracle 服务器包括一个Oracle 例程和一个Oracle 数据库。

数据库服务器是信息管理的关键。一般来说,服务器必须可靠地管理多用户环境中的大量数据,以便多个用户能够同时访问同一数据。所有这一切都必须在保证高性能的同时进行。数据库服务器还必须防止未经授权的访问,并为故障恢复提供有效的解决方案。

Oracle 例程:Oracle 例程是后台进程和内存结构的组合。只有启动例程后,才能访问数据库中的数据。每次启动例程时,会分配系统全局区(SGA) 并启动Oracle 后台进程。后台进程代表调用进程执行各种功能。它们把为每个用户运行的多个Oracle 程序所处理的功能统一起来。后台进程执行输入/输出(I/O),并监视其它Oracle 进程来提高并行性,从而使性能和可靠性更加优越。

Oracle 例程由系统全局区(SGA) 内存结构和用于管理数据库的后台进程组成。例程是通过使用特定于每个操作系统的方法来标识的。例程一次只能打开和使用一个数据库。

建立连接和创建会话用户只有在连接到例程后,才能向Oracle 数据库提交SQL 语句。

用户启动SQL*Plus 之类的工具,或者运行使用Oracle Forms 之类的工具开发的应用程序。该应用程序或工具将作为用户进程来执行。

在最基本的配置中,用户登录到Oracle 服务器时,运行Oracle 服务器的计算机上就会创建一个进程。这个进程称为服务器进程。服务器进程代表客户机上运行的用户进程与Oracle 例程进行通信。服务器进程代表用户执行SQL 语句。

连接:连接是用户进程和Oracle 服务器之间的通信路径。数据库用户可以采用以下三种方式之一连接到Oracle 服务器:

用户登录到运行Oracle 例程的操作系统上,然后启动访问该系统中的数据库的应用程序或工具。通信路径是使用主机操作系统上的进程间通信机制建立的。

用户在本地计算机上启动应用程序或工具,然后通过网络连接到运行Oracle 例程的计算机。在这个称为客户机/服务器的配置中,用户和Oracle 服务器使用网络软件进行通信。

在三层连接中,用户计算机通过网络与应用程序服务器或网络服务器进行通信,这些服务器又通过网络与运行Oracle 例程的计算机连接。例如,用户在网络中的一台计算机上运行浏览器来使用位于NT 服务器上的应用程序,该NT 服务器又从UNIX 主机上运行的Oracle 数据库中检索数据。

会话:会话是用户与Oracle 服务器的一种特定连接。会话在Oracle 服务器验证用户后启动,当用户退出或出现异常终止时会话结束。对某个具体的数据库用户来说,如果该用户从很多工具、应用程序或者终端同时登录,则可能有很多并发会话。除了一些专用的数据库管理工具以外,启动数据库会话还要求Oracle 服务器可供使用。

注:在此处所讲的连接类型中,用户进程和服务器进程之间存在一对一的通信关系,这称作专用服务器连接。使用共享服务器(Shared Server) 配置时,多个用户进程可以共享服务器进程。Oracle 数据库:Oracle 数据库包含操作系统文件(也称为数据库文件),这些文件为数据库信息提供了实际的物理存储。数据库文件用于确保数据一致性并能在例程失败时得以恢复。

数据库的一般用途是存储和检索相关信息。Oracle 数据库具有逻辑结构和物理结构。数据库的物理结构是数据库中操作系统文件的集合。Oracle 数据库包含以下三类文件:

数据文件,包含数据库中的实际数据

重做日志文件,包含数据库的更改记录,可以在出现故障时恢复数据

控制文件,包含维护和验证数据库完整性所需的信息

其它关键文件:非数据库文件用于配置例程、验证特权用户以及在磁盘出现故障时恢复数据库。

Oracle 服务器还使用一些其它文件,这些文件并不是数据库的一部分:

参数文件,用来定义Oracle 例程的特性。例如,它包含调整SGA 中一些内存结构大小的参数。

口令文件验证哪些用户有权启动和关闭Oracle 例程。

归档的重做日志文件是重做日志文件的脱机副本,当必须从介质失败中进行恢复时可能会需要这些副本。

用户进程和服务器进程:执行SQL 语句时,用户进程和服务器进程是其中涉及的主要进程;

但是,其它进程也会有助于服务器完成SQL 语句的处理。

其它进程:还有很多供其它选件使用的其它进程,例如,高级排队(Advanced Queuing)、实时应用集群(Real Application Clusters)、共享服务器(Shared Server) 和高级复制(Advanced Replication) 等。

物理结构

Oracle 数据库的物理结构包括以下三种文件类型:控制文件、数据文件和重做日志文件。内存结构

Oracle 的内存结构由两个内存区组成,分别是:

系统全局区(SGA) :在例程启动时分配,是Oracle 例程的基本组件

程序全局区(PGA) :在服务器进程启动时分配

系统全局区(SGA)

SGA包括以下几种内存结构:

共享池数据库缓冲区高速缓存重做日志缓冲区其它结构(例如锁定和栓锁管理以及统计数据)

在SGA中还可配置其它两种内存结构:大型共享池Java 池

SGA 也称作共享全局区,用于存储数据库进程共享的数据库信息。它包含有关Oracle 服务器的数据和控制信息,在Oracle 服务器所在计算机的虚拟内存中分配。

要查看SGA 内存的分配情况,可以使用下面的语句:

SQL> SHOW SGA:

动态SGA:

从Oracle9i 开始,动态SGA 实施了一种体系结构,可以对SGA 配置进行更改,而不必关闭例程。这样,在不关闭例程的情况下,就可以更改数据库缓冲区高速缓存和共享池的大小。因此,开始时可将数据库缓冲区高速缓存和共享池配置为一个较小的值,然后根据它们各自的工作量增减,但最大值不能超过由SGA_MAX_SIZE 指定的值。

调整SGA 的大小:

SGA 的大小由几个初始化参数决定。对SGA 的大小影响最大的参数有:

DB_CACHE_SIZE:标准块的高速缓存大小。对于UNIX,缺省值是48 MB,对于NT,缺省值是52 MB

LOG_BUFFER:为重做日志缓冲区分配的字节数

SHARED_POOL_SIZE:专用于共享SQL 和PL/SQL 的内存区的大小(以字节为单位)。缺省值是16 MB。如果是64 位,则缺省值是64 MB

LARGE_POOL_SIZE:大型共享池的大小。缺省值是零(如果未将init.ora 参数PARALLEL_AUTOMATIC_TUNING 设置为TRUE,则自动计算缺省值。)

JAVA_POOL_SIZE:Java 池的大小。缺省值是24 MB

因此,SGA 的大小不能超过SGA_MAX_SIZE - DB_CACHE_SIZE - LOG_BUFFER –SHARED_POOL_SIZE - LARGE_POOL_SIZE - JAVA_POOL_SIZE。

分配单位:

粒组是一个连续虚拟内存分配单位。粒组的大小取决于估算的SGA 的总大小,这个总大小是根据参数SGA_MAX_SIZE 的值计算的。

如果估算的SGA 的大小小于128 MB,那么粒组大小是4 MB

否则为16 MB

组件(数据库缓冲区高速缓存和共享池)能够以粒组为单位进行增减。对于拥有粒组的每个组件而言,分配给该组件的粒组数、对该组件执行但暂时挂起的任何操作(例如,通过ALTER SYSTEM 分配粒组、通过ALTER SYSTEM 释放粒组,相应的自身优化),以及以粒组为单位的目标大小都将由V$BUFFER_POOL 视图来跟踪和显示。启动例程时,Oracle 服务器将分配粒组条目,每个粒组使用一个条目来支持SGA_MAX_SIZE 字节的地址空间。继续启动时,每个组件将根据需要获取足够的粒组。SGA 的最低配置是三个粒组(一个粒组用于固定的SGA(包括重做缓冲区);一个粒组用于数据库缓冲区高速缓存;另一个粒组用于共享池)。共享池

用于存储:最近执行的SQL 语句最近使用的数据定义

它包括以下两个与性能相关的关键内存结构:库高速缓存数据字典高速缓存

其大小由SHARED_POOL_SIZE 参数确定

共享池环境既包含固定结构,也包含可变结构。固定结构的大小相对保持不变,而可变结构的大小会根据用户和程序的需求增减。固定结构和可变结构的实际大小由一个初始化参数和Oracle 内部算法来确定。

调整共享池大小:

由于共享池用于可以全局共享的对象,如可重复使用的SQL 执行计划、PL/SQL 程序包、过程、函数和游标信息,所以必须对它的大小进行调整,以满足固定区和可变区的需要。分配给共享池的内存由SHARED_POOL_SIZE 初始化参数确定。使用ALTER SYSTEM SET,便可以动态地重新调整它的大小。经过性能分析后,就可以调整它的大小,但SGA 的总大小不能超过SGA_MAX_SIZE。

库高速缓存

库高速缓存的大小视所定义的共享池大小而定。内存分配是在对语句进行语法分析或调用程序单元时进行。如果共享池的大小太小,就会将语句连续重新载入库高速缓存,从而使性能受到影响。库高速缓存由算法LRU 来管理。高速缓存填满时,将从库高速缓存中删除最近很少使用的执行路径和语法分析树,以便为新条目腾出空间。如果某些SQL 或PL/SQL 语句未再次使用,它们最终会被删除。

库高速缓存包括以下两个结构:

共享SQL:共享SQL 为针对数据库运行的SQL 语句存储并共享执行计划和语法分析树。下次运行同一SQL 语句时,这个语句就能利用共享SQL 提供的语法分析信息来加快其执行速度。要确保SQL 语句随时可以使用共享SQL 区,文本、方案和绑定变量必须完全相同。

共享PL/SQL:共享PL/SQL 区存储并共享最近执行的PL/SQL 语句。经过语法分析和编译的程序单元和过程(函数、程序包和触发器)都存储在这个区中。

数据字典高速缓存

数据字典高速缓存也称作字典高速缓存或行高速缓存。将数据字典信息同时高速缓存到数据库缓冲区和共享池内存中,可以提高性能。有关数据库(用户帐户数据、数据文件名、段名、区的位置、表的说明和用户权限)的信息都存储在数据字典表中。当服务器需要用到这类信息时,将会读取数据字典表,返回的数据将存储在数据字典高速缓存中。

调整数据字典的大小:

数据字典的整体大小取决于共享池的大小,并由数据库进行内部管理。如果数据字典高速缓存太小,那么数据库必须对数据字典表进行反复地查询,才能获得服务器所需要的信息。这些查询称作递归调用,它在速度上要慢于对数据字典高速缓存所进行的直接查询,因为直接查询不使用SQL。

处理查询时,Oracle 服务器进程在数据库缓冲区高速缓存中查找任何所需的块。如果未在数据库缓冲区高速缓存中找到这个块,服务器进程就从数据文件读取这个块,并在数据库缓冲区高速缓存中放置一个副本。由于对同一个块的后续请求可以在内存中找到这个块,因此这些请求可能不需要进行物理读取。Oracle 服务器使用LRU 算法来释放近期未被访问的缓冲区,以便在数据库缓冲区高速缓存中为新块腾出空间。

数据库缓冲区高速缓存

存储已从数据文件中检索到的数据块的副本

能够大幅提高获取和更新数据时的性能

通过LRU 算法管理

主块的大小由DB_BLOCK_SIZE 确定

处理查询时,Oracle 服务器进程在数据库缓冲区高速缓存中查找任何所需的块。如果未在数据库缓冲区高速缓存中找到这个块,服务器进程就从数据文件读取这个块,并在数据库缓冲区高速缓存中放置一个副本。由于对同一个块的后续请求可以在内存中找到这个块,因此这些请求可能不需要进行物理读取。Oracle 服务器使用LRU 算法来释放近期未被访问的缓冲区,以便在数据库缓冲区高速缓存中为新块腾出空间。

调整数据库缓冲区高速缓存的大小:

数据库缓冲区高速缓存中每个缓冲区的大小等于一个Oracle 块的大小,它由

DB_BLOCK_SIZE 参数来指定。数据库缓冲区高速缓存由独立的子高速缓存组成,子高速缓存用于缓冲区池和多个块大小。参数DB_BLOCK_SIZE 确定主块的大小,主块的大小用于SYSTEM 表空间。

以下三个参数定义了数据库缓冲区高速缓存的大小:

DB_CACHE_SIZE:只调整缺省缓冲区高速缓存的大小,这个参数始终存在且不能设置为零DB_KEEP_CACHE_SIZE:调整保留缓冲区高速缓存的大小,用于保留内存中很可能会重新使

用的块

DB_RECYCLE_CACHE_SIZE:调整循环缓冲区高速缓存的大小,用于删除内存中重新使用的可能性很小的块

缓冲区高速缓存咨询功能:

缓冲区高速缓存咨询功能可以启用和禁用统计信息的收集,这些统计信息用于预测不同高速缓存大小的行为。这些统计信息所提供的信息可以帮助您针对具体的工作量,调整数据库缓冲区高速缓存的大小,以达到最佳性能。缓冲区高速缓存咨询信息通过V$DB_CACHE_ADVICE 视图收集和显示。

可以通过初始化参数DB_CACHE_ADVICE 启用缓冲区高速缓存咨询功能。这个参数是一个动态参数,可以使用ALTER SYSTEM 来更改。可供使用的三个值是OFF、ON 和READY。DB_CACHE_ADVICE 参数值:

OFF:咨询功能关闭,并且没有为咨询功能分配内存

ON:咨询功能打开,并产生CPU 和内存开销

如果参数处于OFF 状态,在尝试将它设置为ON 状态时会产生ORA-4031 错误:当参数切换到ON 时,无法从共享池分配内存。如果参数处于READY 状态,则能正确地设置为ON,因为此时已为咨询功能分配内存。

READY:咨询功能关闭,但已经为咨询功能分配内存。在实际打开咨询功能前分配内存可以避免产生ORA-4031 错误。如果将参数从OFF 状态直接切换到ON,可能会产生ORA-4031 错误。

重做日志缓冲区

记录对数据库数据块所做的全部更改

主要用于恢复

其中记录的更改称作重做条目

重做条目包含用于重新构造或重做更改的信息

大小由LOG_BUFFER 定义

重做日志缓冲区是一个循环缓冲区,它包含对数据文件块所做的各种更改。此信息存储在重做条目中。重做条目包含将数据恢复到使用INSERT、UPDATE、DELETE、CREATE、ALTER、

或DROP 操作进行更改前的状态所需要的信息。

调整重做日志缓冲区的大小:

重做日志缓冲区的大小由初始化参数LOG_BUFFER 定义。

大型共享池

SGA 中的可选内存区

分担了共享池的一部分工作

用于:共享服务器的会话内存(UGA) I/O 服务器进程备份和恢复操作或RMAN 并行执行消息缓冲区

将PARALLEL_AUTOMATIC_TUNING 设置为TRUE

不使用LRU 列表

大小由LARGE_POOL_SIZE 确定

通过从大型共享池为共享服务器、Oracle XA 或并行查询缓冲区分配会话内存,Oracle 可将共享池主要用于高速缓存共享的SQL 语句。这样,便减轻了共享池中各区的工作负担。共享池无需再提供内存以高速缓存SQL 语法分析树,来支持共享服务器会话信息、I/O 以及备份和恢复进程。由于增减共享SQL 高速缓存的开销降低,性能得以提高。

备份和恢复:

如果设置了BACKUP_DISK_IO= n 和BACKUP_TAPE_IO_SLAVE = TRUE 参数,则恢复管理器(RMAN) 将使用大型共享池。如果大型共享池已经配置,但不够大,则在大型共享池中分配内存就会失败。RMAN 将错误消息写入警报日志文件,而且不使用I/O 操作进行备份或恢复操作。

并行执行:

如果将PARALLEL_AUTOMATIC_TUNING 设置为TRUE,将使用大型共享池。否则,将把这些缓冲区分配至共享池。

调整大型共享池的大小:

大型共享池的大小由LARGE_POOL_SIZE 参数定义,单位是字节。该参数不是动态参数。大型共享池和LRU 列表:

大型共享池并不包含LRU 列表。它与使用LRU 列表的共享池中的保留空间不同。

Java 池

存储Java命令的服务分析要求在安装并使用Java时是必需的大小由

JAVA_POOL_SIZE参数确定

Java 池是一个可选设置,但如果安装并使用Java,则需要使用Java 池。Java 池大小可以使用JAVA_POOL_SIZE 参数设置,单位为字节。在Oracle9i,Java 池的缺省大小是24 MB。

程序全局区(PGA)

程序全局区或进程全局区(PGA) 是内存区,它包含有关单个服务器进程或单个后台进程的数据和控制信息。PGA 在创建进程时分配,并在终止进程时回收。与由若干个进程共享的SGA 相比,PGA 是仅供一个进程使用的区。

PGA 的内容:

PGA 内存的内容会因不同情况而变化,这取决于例程是在专用服务器配置还是在共享服务器配置下运行。一般来讲,PGA 内存包括下列组件:

专用SQL 区:包含绑定信息和运行时内存结构之类的数据。发出SQL 语句的每个会话均拥有一个专用SQL 区。提交同一SQL 语句的每个用户都拥有自己的使用单个共享SQL 区的专用SQL 区。因此,许多专用SQL 区都与同一个共享SQL 区相关联。一个游标的专用SQL 区可以分成以下两个区:

永久区:包含绑定信息,并且只在关闭游标时释放

运行时区:在执行请求时的第一步创建。对于INSERT、UPDATE 和DELETE 命令,该区在执行语句后释放,对于查询操作,该区只在提取所有行或取消查询后释放。

专用SQL 区的位置取决于为会话建立的连接类型。在专用服务器环境中,专用SQL 区位于各自服务器进程的PGA 中。在共享服务器环境中,专用SQL 区位于SGA 中。

管理专用SQL 区是用户进程的职责。用户进程可以分配的专用SQL 区的数目始终由初始化参数OPEN_CURSORS 来限制。该参数的缺省值是50。

会话内存:包含为保留会话变量以及与该会话相关的其它信息而分配的内存。对于共享服务器环境,该会话是共享的而不是专用的。

SQL 工作区:用于大量占用内存的操作,如排序、散列联接、位图合并和位图创建。工作区的

大小可进行控制和调整。

自Oracle9i 起,工作区的大小可以进行自动的全局管理。要实现这种功能,可将WORKAREA_SIZE_POLICY 参数设置成缺省情况下的AUTO,同时设置

PGA_AGGREGATE_TARGET 初始化参数。DBA 可以对PGA_AGGREGATE_TARGET 参数进行设置,以指定该例程可以使用的PGA 内存的目标聚集数目。此参数只是一个指标,可以由DBA 在例程一级动态修改。设置值的单位可以是字节数、千字节数、兆字节数或吉字节数。设置完这些参数后,工作区的大小即可自动调整,这些会话将忽略所有的*_AREA_SIZE 参数。

专用服务器和共享服务器之间的内存分配差异:

PGA 内存的内容会因不同情况而变化,这取决于例程是在专用服务器配置下还是在共享服务器配置下运行。一般来讲,PGA 内存包括下列组件:

进程结构

Oracle 利用了以下几种进程的优势:

用户进程:在数据库用户请求连接到Oracle 服务器时启动

请求与Oracle 服务器交互的程序

必须先建立连接

不与Oracle 服务器直接交互

需要从数据库请求信息的数据库用户必须先建立与Oracle 服务器的连接。连接由SQL*Plus 这类的数据库接口工具请求,并开始用户进程。用户进程并不与Oracle 服务器直接进行交互操作,而是通过用户程序接口(UPI) 生成各种调用。用户程序接口则可以创建会话并启动服务器进程。

服务器进程:与Oracle 例程相连接,在用户建立会话时启动

直接与Oracle 服务器交互的程序

执行生成的调用并返回相关结果

可以是专用服务器或共享服务器

用户建立连接后,服务器进程便会启动,以处理用户进程的请求。服务器进程可以是专用服务器进程或共享服务器进程。在专用服务器环境中,服务器进程只处理一个用户进程的请求。用户进程断开连接后,服务器进程就会终止。在共享服务器环境中,服务器进程将处理多个用户进程的请求。服务器进程可以通过Oracle 程序接口(OPI) 与Oracle 服务器进行通信。

后台进程:在Oracle 例程启动时启动

维护并加强物理结构与内存结构之间的关系

必备的后台进程:DBWn PMON CKPT

LGWR SMON

可选的后台进程: ARCn LMDn RECO

CJQ0 LMON Snnn

Dnnn Pnnn

LCKn QMNn

Oracle 体系结构有五个必备的后台进程,本课将详细介绍这些进程。除了必备的后台进程列表以外,Oracle 体系结构中还有很多可选的后台进程。如果选择使用这些可选的后台进程,它们便会启动。除了ARCn 后台进程之外,这些可选的进程不在本课所涉及的范围之内。下面列出了一些可选的后台进程:

RECO:恢复程序

QMNn:高级排队

ARCn:归档程序

LCKn:RAC 锁管理器–例程锁

LMON:RAC DLM 监控程序–全局锁

LMDn:RAC DLM 监控程序–远程锁

CJQ0:协调程序作业队列后台进程

Dnnn:调度程序

Snnn:共享服务器

Pnnn:并行查询从属

数据库写入程序(DBWn)

服务器进程在数据库缓冲区高速缓存中记录对还原块和数据块所做的更改。DBWn 将数据库缓冲区高速缓存中的灰数据缓冲区写入数据文件。这可确保数据库缓冲区高速缓存中有足够数量的空闲缓冲区(即当服务器进程需要读取数据文件中的块时可以覆盖的缓冲区)可用。由于服务器进程只在数据库缓冲区高速缓存中进行更改,因此提高了数据库的性能。

DBWn 延迟写入数据文件,直到发生下列事件之一:

增量或正常检查点

灰数据缓冲区的数量达到阈值

进程扫描指定数量的块而无法找到任何空闲缓冲区时

出现超时

实时应用集群(Real Application Clusters, RAC) 环境中出现ping 请求

使一般表空间或临时表空间处于脱机状态

使表空间处于只读模式

删除或截断表

执行ALTER TABLESPACE 表空间名BEGIN BACKUP 操作

日志写入器(LGWR)

LGWR 在下列情况下执行从重做日志缓冲区到重做日志文件的连续写入:

当提交事务时

当重做日志缓冲区的三分之一填满时

当重做日志缓冲区中记录了超过 1 MB 的更改时

在DBWn 将数据库缓冲区高速缓存中修改的块写入数据文件以前

每隔三秒

因为恢复操作需要重做,所以LGWR 只在重做写入磁盘后确认提交操作。

LGWR 还可以调用DBWn 来写入数据文件。

系统监控程序(SMON)

如果Oracle 例程失败,那么SGA 中尚未写入磁盘的所有信息都会丢失。例如,操作系统的失败导致例程失败。例程丢失后,后台进程SMON 在数据库重新打开时自动执行例程恢复。恢复例程需要执行以下步骤:

1. 前滚以恢复尚未记入数据文件但已经记入联机重做日志中的数据。由于例程失败时SGA 的丢失,所以尚未将这些数据写入磁盘。在该进程中,SMON 读取重做日志文件并将重做日志中记录的更改应用到数据块中。由于提交的所有事务处理都已写入重做日志,因此该进程完全恢复了这些事务处理。

2. 打开数据库以便用户可以登录。未被未恢复事务处理锁定的任何数据都立即可用。

3. 回退未提交的事务处理。它们由SMON 回退,或在访问锁定的数据时由单个服务器进程回退。

SMON 也执行一些空间维护功能:

它联合或合并数据文件中空闲空间的邻近区域。

它回收临时段,将它们作为数据文件中的空闲空间返回。

过程监视器(PMON)

进程失败后,后台进程PMON 通过下面的方法进行清理:

回退用户的当前事务处理

释放当前保留的所有表锁或行锁

释放用户当前保留的其它资源

重新启动已失效的调度程序

检查点(CKPT)

每隔三秒,CKPT 进程就会向控制文件存储数据,以标识重做日志文件中恢复操作的起始位置,该操作称作检查点。检查点的用途是确保数据库缓冲区高速缓存中在时间点之间发生修改的所有缓冲区内容都已写入数据文件。这个时间点(称作检查点位置)是例程失败时开始恢复数据库的位置。DBWn 应将数据库缓冲区高速缓存中在该时间点之前发生修改的所有缓冲区内容写入数据文件。对于Oracle9i 之前的版本,这项操作在重做日志的结尾处执行。切换日志时,CKPT 还将这个检查点的信息写入数据文件的头部。

启动检查点的原因如下:

确保定期向磁盘写入内存中发生修改的数据块,以便在系统或数据库失败时不会丢失数据

缩短例程恢复所需的时间。只需处理最后一个检查点后面的重做日志条目以启动恢复操作

确保提交的所有数据在关闭期间均已写入数据文件

由CKPT 写入的检查点信息包括检查点位置、系统更改号、重做日志中恢复操作的起始位置以及有关日志的信息等等。

注:CKPT 并不将数据块写入磁盘,或将重做块写入联机重做日志。

归档程序(ARCn)

所有其它后台进程都是可选的,这将取决于数据库的配置;但是,其中的ARCn 进程对于丢失磁盘数据后的数据库恢复起着至关重要的作用。当联机重做日志文件填满时,Oracle 服务器开始写入下一个联机重做日志文件。从一个重做日志到另一个重做日志的切换过程称为日志切换。ARCn 进程在每次日志切换时备份或归档已满的日志组。在日志能够重新使用之前,它自动将联机重做日志归档,从而保留对数据库所做的全部更改。这样,即使磁盘驱动器损坏,DBA 也能够将数据库恢复到出现故障前的状态。

归档重做日志文件:DBA 必须做出的一个重要决策是配置数据库以ARCHIVELOG 模式还是以NOARCHIVELOG 模式操作。

NOARCHIVELOG 模式:在NOARCHIVELOG 模式下,每次发生日志切换时,就会覆盖联机重做日志文件。只有重做日志组的检查点完成后,LGWR 才会覆盖该日志组。这就确保发生例程崩溃时提交的数据能够得以恢复。在例程崩溃的过程中,只会丢失SGA 中的数据。磁盘数据不会丢失,而只会丢失内存中的数据。例如,当操作系统的崩溃引起例程崩溃时。ARCHIVELOG 模式:如果将数据库配置为以ARCHIVELOG 模式运行,那么已满的联机重做日志文件的非活动组必须归档之后才能够再次使用。因为对数据库所做的更改记录在联机重做日志文件中,所以数据库管理员能够使用数据文件的物理备份和归档的联机重做日志文件来恢复数据库,而不会由于任何单点故障(包括磁盘数据的丢失)而丢失任何已提交的数据。通常应将生产数据库配置为以ARCHIVELOG 模式运行。

逻辑结构

逻辑结构的层次如下所述:

Oracle 数据库至少包含一个表空间。

表空间包含一个或多个段。

段由区组成。

区由逻辑块组成。

块是读写操作的最小单元。

Oracle 数据库体系结构包括构成数据库的逻辑结构和物理结构。

物理结构包括构成数据库的控制文件、联机重做日志文件和数据文件。

逻辑结构包括表空间、段、区和数据块。

Oracle 服务器通过表空间和逻辑存储结构(包括段、区和数据块),使您能够实现磁盘空间使用的小粒度控制。

表空间:

Oracle 数据库内的数据存储在表空间内。

Oracle 数据库可以从逻辑上分组到称为表空间的更小的逻辑空间区。

一个表空间在某一时刻只能属于一个数据库。

每个表空间由一个或多个称为数据文件的操作系统文件组成。

表空间可能包含一个或多个段。

表空间可以在数据库运行时联机。

除了SYSTEM 表空间或者有活动还原段的表空间,可将其它表空间置于脱机状态而不会影响数据库运行。

表空间可以在可读写和只读状态之间切换。

数据文件(不是逻辑结构):

Oracle 数据库内的每个表空间由一个或者多个称为数据文件的文件组成。这些物理结构与在其上运行Oracle 服务器的操作系统是一致的。

一个数据文件只能属于一个表空间。

通过分配指定数量的磁盘空间加上少量的开销,Oracle 服务器创建表空间数据文件。

数据文件创建后,数据库管理员可以更改其大小或者指定数据文件应随着表空间内对象的增长而动态增长。

段:

段是在表空间中为特定逻辑存储结构分配的空间。

表空间可以由一个或多个段组成。

段无法跨越表空间;但是段可以跨越属于同一表空间的多个数据文件。

每个段由一个或多个区组成。

区:

按区向段分配空间。

一个或多个区组成一个段。

当段创建后,它至少由一个区组成。

随着段的增长,需要向该段添加区。

DBA 可以手动向段添加区。

一个区就是一组连续的Oracle 块。

区无法跨越数据文件,所以,它必须存在于一个数据文件内。

数据块:

Oracle 服务器以Oracle 块或者数据块为单位来管理数据文件中的存储空间。

Oracle 数据库内的数据存储在数据块内,数据块为最精细的粒度等级。

Oracle 数据块是Oracle 服务器能够分配、读或写的最小存储单元。

一个数据块对应一个或多个从现有数据文件中分配的操作系统块。

每个Oracle 数据库的标准数据块大小是在创建数据库时由初始化参数DB_BLOCK_SIZE 指定的。

数据块大小应当是操作系统块大小的整数倍以避免不必要的I/O。

数据块大小最大值取决于操作系统。

oracleebs表结构及功能总结(财务制造分销模块)

Oracle application表结构 1.表结构,WHO字段来实现 通过菜单HELP 下的HISTORY 来找表 2. 通过LAST_QUERY来判断所使用的表 LAST_ QUERY 是系统变量保存所执行的最后一次的SQL语句 BLOCK 一定选SYSTEM 作为一个虚拟的BLOCK 用HELP 菜单下面的EXAMING子菜单 3.用TRACE的办法来实现找表 4.查看源代码来找表 基本表结构 学习目的:了解数据库的设计思想 1.库存模块 INV表结构,主要是物料的保存和搬运 组织:分为库存组织和经营单位 对于来说首先定义成一个经营单位,主要是进行业务核算的基本单位,是经营单位 每一个生产单位作为一个库存组织,库存组织不作为核算单位 组织表是 HR_ORGANIZATION_UNITS 存放所有的组织 ORG_ID 表示的经营单位 ORGANIZATION_ID 表示库存组织 通过制造物料参数表 MTL_PARAMETERS 来查看库存组织ID

原材料仓库,半成品仓库,成品仓库 子库存属于库存组织的一个结构,子库存下面还可以有一个叫库位的结构 物料的位置由:库存组织+子库存+库位 子库存放置在MTL_SECONDARY_INVENTORIES表中 货位信息放置在MTL_ITEM_LOCATIONS 表中 在MTL_ITEM_LOCATIONS中的SEGMENT1存放其库位名称 MTL_ONHAND_QUANTITIES表存放物料的现有量表其中LOCATION_ID表示库位信息 MTL_SYSTEM_ITEMS表存放所有库存组织,所有物料 MTL_MATERIAL_TRANSACTIONS 物料事务处发表(存放物料的进货销售) TRANSACTION_ID INVENTORY_ID表示操作的物料ID TRANSACTION_QUANTITY 表示货物的数量正数为搬进负数为搬出 PRIMARY_QUANTITY 表示主计量单位 TRANSACTION_COST表示物料的成本 ACTUAL_COST表示通过算法得到的物料成本 ITEM_MASTER物料主表 PRIMAR_UNIT_OF_MEASURE 表示主计量单位

ORACLE 体系结构详解

ORACLE 体系结构 (Architecture of ORACLE) 第一部分:ORACLE8i体系结构 第一章. 概要 在本章里你可以了解以下内容 1、理解ORACLE 实例的组成 2、理解ORACLE 数据库的组成 3、理解ORACLE内存结构的组成 4、理解后台进程的作用与分工 5、理解数据库的物理文件与对应的逻辑结构 6、理解ORACLE的整体构架 第二章. 理解ORACLE实例 2.1 ORACLE SERVER ORACLE是一个可移植的数据库——它在相关的每一个平台上都可以使用,即所谓的跨平台特性。在不同的操作系统上也略有差别,如在UNIX/LINUX上,ORACLE是多个进程实现的,每一个主要函数都是一个进程;而在Windows上,则是一个单一进程,但是在该进程中包含多个线程。但是从整体构架上来看,ORACLE在不同的平台上是一样的,如内存结构、后台进程、数据的存储。 一个运行着的ORACLE数据库就可以看成是一个ORACLE SERVER,该SERVER由数据库(Database)和实例(Instance)组成,在一般的情况下一个ORACLE SERVER包含一个实例和一个与之对应的数据库,但是在特殊情况下,如8i的OPS,9i的RAC,一个SERVER中一个数据库可以对应多个实例。 一系列物理文件(数据文件,控制文件,联机日志等)的集合或与之对应的逻辑结构(表空间,段等)被称为数据库,简单的说,就是一系列与磁盘有关系的物理文件的组成。ORACLE内存结构和后台进程被成为数据库的实例,一个实例最多只能安装(Mount)和打开(Open)在一个数据库上,负责数据库的相应操作并与用户交互。 实例与数据库的关系如下图所示:

Oracle ERP常用系统表结构

PO模块常用表结构 表名: PO.PO_REQUISITION_HEADERS_ALL 说明: 采购请求 REQUISITION_HEADER_ID NUMBER PR头标识码 SEGMENT1VARCHAR2(20)PR号 ENABLE_FLAG VARCHAR2(1)使能标志(Y/N) AUTHORIZATION_STATUS VARCHAR2(25)批准标志(APPROVED/) TYPE_LOOKUP_CODE VARCHAR2(25)类型(PURCHASE) REQUIST_ID NUMBER请求标识码 CANCEL_FLAG VARCHAR2(1)取消标志(Y/N) TRANSFERRED_TO_OE_FLAG VARCHAR2(1)可否转入OE标志(Y/N) PREPARER_ID NUMBER准备人ID(可与HR.PER_PEOPLE_F.PERSON_ID关联) 表名: PO.PO_REQUISITION_LINES_ALL 说明: 采购请求明细 REQUISITION_LINE_ID NUMBER PR行ID REQUISITION_HEADER_ID NUMBER PR头ID LINE_NUM NUMBER栏目 LINE_TYPE_ID NUMBER行类别 CATEGORY_ID NUMBER归类标识码 ITEM_DESCRIPTION VARCHAR2(240)项目描述 UNIT_MEAS_LOOKUP_CODE VARCHAR2(25)单位 UNIT_PRICE NUMBER单价(已折为人民币) QUANTITY NUMBER数量 DELIVER_TO_LOCATION_ID NUMBER交货位置码(与HR.HR_LOCATIONS.LOCATION_ID关联)TO_PERSON_ID NUMBER收货人代码 SOURCE_TYPE_CODE VARCHAR2(25)来源类型 ITEM_ID NUMBER项目内码 ITEM_REVISION VARCHAR2(3)项目版本 QUANTITY_DELIVERED NUMBER已交付数量 SUGGESTED_BUYER_ID NUMBER建议采购员代码 ENCUMBERED_FLAG VARCHAR2(1)分摊标志 RFQ_REQUIRED_FLAG VARCHAR2(1) NEED_BY_DATE DATE需求日期(原始) LINE_LOCATION_ID NUMBER定位行标识码(为空时表示未生成PO) MODIFIED_BY_AGENT_FLAG VARCHAR2(1)被采购员更改标志(被拆分Y/NULL)

实验2 Oracle数据库物理存储结构管理

实验2 Oracle数据库物理存储结构管理 1.向BOOKSALES数据库的USERS表空间添加一个大小为10MB的数据文件users0 2.dbf。 2.向BOOKSALES数据库的TEMP表空间添加一个大小为10MB的临时数据文件temp02.dbf。 3. 向BOOKSALES数据库的USERS表空间中添加一个可以自动扩展的数据文件user03.dbf ,大小5M,每次扩展1M,最大容量为100M。 4.取消BOOKSALES数据库数据文件user03.dbf的自动扩展。 5.将BOOKSALES数据库数据文件users02.dbf更名为users002.dbf。

6.查询BOOKSALES数据库当前所有的数据文件的详细信息。 7.为BOOKSALES数据库添加一个多路复用的控制文件control03.ctl。 (过程忘了截图)复制过程没有问题,在文件夹中也能显示出CONTROL03.CTL文件可是在重新startup的时候数据库没有重新运行,出现了错误 查询也有CONTROL03.CTL文件

后来删除了CONTROL03.CTL文件(即10的图)还是启动不了数据库,只在新的例程里,后来重载了oracle。 8.以二进制文件的形式备份BOOKSALES数据库的控制文件。 第一次忘了截图 9.将BOOKSALES数据库的控制文件以文本方式备份到跟踪文件中,并查看备份的内容。

10.删除BOOKSALES数据库的控制文件control03.ctl。 11.查询BOOKSALES数据库当前所有控制文件信息 12.向BOOKSALES数据库添加一个重做日志文件组(组号为4),包含一个成员文件undo04a.log,大小为4M。 13.向BOOKSALES数据库的重做日志组4中添加一个成员文件,名称为undo04b.log。 14.将BOOKSALES数据库的重做日志组4中所有成员文件移植到一个新的目录下。

Oracle体系结构详解

Oracle体系结构就是围绕这张图展开的,要想深入了解oracle,就必须把这张图搞明白。如图: 一、基本组成: Oracle server: 一般情况下是一个instance和一个database组成 1个instance只能对应一个数据库。 特殊:1个数据库可以有多个instance(rac) 一台服务器上同时可装多套版本的数据库软件,每个数据库软件可建多个数据库,但是每个数据库只对应一个instance,也可以理解成每个数据库只有一个SID 。 利用DBCA建出的每个库都是相对独立的,在同一服务器上如果创建多库必须将环境变量的参数文件做区分,并且在对实例切换时需如下操作: connect 用户名/密码@实例的服务名

Oracle Instance: 是由内存(SGA)和后台进程(backupground Process)组成 通过instance来访问database 一个实例只能打开一个数据库 Oracle database: 数据文件(Data files): 数据文件永远存储数据库的数据,包括数据字典、用户数据(表、索引、簇)、undo数据等 重做日志(Redo log): “先记后写” 重做日志用于记录数据库的变化,当进行例程恢复或介质恢复时需要使用重做日志 执行DDL或DML操作时,事物变化会被写到重做日志缓冲区,而在特定的时刻LGWR会将重做日志缓冲区中的内容写入重做日志。 控制文件(Control file) 控制文件用于记录和维护数据库的物理结构,并且每个Oracle数据库至少要包含一个控制文件。 归档日志(Archive log): 是非活动(Inactive)重做日志的备份。 口令文件(Password file): 用于验证特权用户(具有SYSDBA、SYSOPER权限的特殊数据库用户) 参数文件(Parameter file): 用于定义启动实例所需要的初始化参数,包括文本参数文件(pfile)和服务器参数文件(spfile)(二进制文件放入裸设备,引入spfile) User and Server process : 在执行sql语句时产生的进程,每一个连接,oracle server创建一个session,产生一个server process,在client发起一个connection时就产生了一个user process。

oracle体系结构(详解)

在学习oracle中,体系结构是重中之重,掌握的越深入越好。在实际工作遇到疑难问题,其实都可以归结到体系结构中来解释,所以我们根据下面的示图了解一下oracle体系结构。 1.Summarize 根据示图,便于我们记忆,示图分三部分组成,左侧User Process、Server Process、PGA可以看做成Clinet端,上面的实例(Instance)和下面的数据库(Database)及参数文件(parameter file)、密码文件(password file)和归档日志文件(archived logfiles)组成Oracle Server,所以整个示图可以理解成一个C/S架构。Oracle Server由两个实体组成:实例(instance)与数据库(database)。这两个实体是独立的,不过连接在一起。在数据库创建过程中,实例首先被创建,然后才创建数据库。在典型的单实例环境中,实例与数据库的关系是一对一的,一个实例连接一个数据库,实例与数据库也可以是多对一的关系,即不同计算机上的多个实例打开共享磁盘系统上的一个公用数据库。这种多对一关系被称为实际应用群集(Real Application Clusters,RAC)RAC极大提高了数据库的性能、容错与可伸缩性(可能耗费更多的存储空间)并且是oracle网格(grid)概念的必备部分。 2.Client端 在Client端的作用是如何从客户端创建服务器进程与数据库进行交互的过程。 2.1 User process 用户运行一个应用程序时与Oracle数据库进程交互(例如:sql/plus)时,oracle创建一个用户进程来运行用户的应用程序。 2.2 Server process

oracle体系结构

Oracle体系结构:物理结构,逻辑结构,内存结构,数据库实例和进程,数据字典 物理结构:数据文件,日志文件,控制文件,配置文件 数据文件用来存储数据库中的全部数据,如数据库表中的数据和索引数据。通常为后缀名为.dbf格式的文件。 日志文件(又称重做日志文件),用于记录数据库所做的全部变更(如增加、删除、修改),以便在系统发生故障时,用它对数据库进行恢复。名字通常为Log*.dbf格式 控制文件每个Oracle数据库都有相应的控制文件,用于打开、存取数据库。它们是较小的二进制文件,其中记录了数据库的物理结构。名字通常为Ctr*.ctl格式 配置文件是一个ASCII文本文件,记录Oracle数据库运行时的一些重要参数。名字通 常为initsid*.ora格式,如:initCIMS.ora,SID相当于它所控制的数据库的标识符。每个Oracle 数据库和实例都有它自己惟一的init.ora文件。 逻辑结构:表空间,段,区,数据库块,模式对象 Oracle中除了用户创建的存放数据对象的数据表空间外,还有以下类型的表空间: (1)System表空间 (2)回滚表空间(RollBack TableSpace) (3)临时表空间(Temp TableSpace) 段:数据段,索引段,临时段,回退段 区是由很多连续的数据块组成的数据库存储空间。缺省情况下,数据库会使用表空间中存储的存储参数来管理他们的区。

Oracle数据库的模式对象包括表、视图、序列、同义词、索引、触发器、存储过程等。内存结构:系统全局区,程序全局区,排序区,软件代码区 系统全局区(SGA,System Global Area.)是内存结构的主要组成部分,是Oracle为一个实例分配的一组共享内存缓冲区,保存着Oracle系统与所有数据库用户的共享信息,包括数据维护、SQL语句分析,重做日志管理等。是实例的主要部分。 数据块缓冲区中存放着Oracle系统最近从数据文件中读取的数据块。数据块缓冲区又称用户数据高速缓冲区,为所有与该实例相链接的用户进程所共享。 在Oracle9i中,数据库缓存的大小可以直接由初始化参数DB_ACHESIZE指定,该参数可以直接以K字节或M字节为单位来设置数据库缓存的大小。 字典缓冲区用于保存数据字典中的行。数据字典缓冲区也通过最近最少使用(LRU)算法来管理。大小由数据库内部管理。字典缓存区是SQL共享池的一部分,共享池的大小(以字节为单位)由数据库文件init.ora中的SHARED_POOL_SIZE参数来设置 对数据库进行修改的任何事务(Transaction)在记录到重做日志之前都必须首先放到重做日志缓冲区(Redo Log Buffer.)中。重做日志缓冲区是专为此开辟的一块内存区域,重做日志缓存中的内容将被LGWR后台进程随时写入重做日志文件 共享SQL池(Shared SQL Pool)相当于程序高速缓冲区,所有的用户程序都存放在共享SQL 池中。SQL共享池包括库高速缓存、数据字典高速缓存和服务器控制结构 Java池为Java命令提供语法分析。 缓冲池把大数据集与其他的应用程序分开,以减少它们争夺数据块缓冲区内相同的资源。可以在SGA中创建多个缓冲池 数据库是指物理上的数据库文件或逻辑上的数据库结构。 基于之上管理和控制物理数据库的软件系统,称为数据库管理系统(DBMS)。 数据库实例和进程 数据库实例是指软件系统中用来访问数据库文件集的存储结构以及后台进程的集合,它是存取和控制数据库的软件机制

Oracle数据库的物理存储结构之数据库控制文件详解

Oracle数据库中,数据库控制文件维护着数据库的全局物理结构,用以支持数据库成功的启动和运行。创建数据库时,同时就提供了与之对应的数据库控制文件。在数据库使用过程中,Oracle不断的更新数据库控制文件,所以只要数据库是打开的,数据库控制文件就必须处于可写状态。如果,犹豫某些原因控制文件不能被访问,那么数据库也就不能正常的工作了。 每一个控制文件只能与一个Oracle数据库相关联。数据库控制文件包含了数据库实例的启动和正常操作时,访问数据库所需的关于数据库的信息。数据库控制文件的内容只有Oralce 可以修改,数据库管理员和用户都不能对其进行编辑。 控制文件包含了以下信息: ?数据库名称 ?数据库创建的时间戳 ?相关的数据文件、重演日志文件的名称和位置 ?表空间信息 ?数据文件脱机范围 ?日志历史 ?归档日志信息 ?备份组和备份块信息 ?备份数据文件和重演日志信息 ?数据文件拷贝信息 ?当前日志序列数 ?检查点(checkpoint)信息 数据库名称和时间戳源自数据库创建之时,数据库名称或是来自DB_NAME初始化从参数,或者来自Cteate Database语句使用的名称。 每当数据文件或重演日志文件被添加内容、重新命名或者直接从数据库删除时,控制文件都要进行更新以反应物理结构的变化。记录下这些变化后,Oracle就可以:在数据库启动的时候,能够确定并打开数据文件和重演日子文件。 在必须要恢复数据库的时候,能够确定哪些文件是必须的、哪些文件是可用的。 PS:如果数据库的物理结构发生了改变(使用了Alert Database语句),用户应该立刻备份控制文件。 控制文件还记录了关于检查点的信息。每3秒,检查点进程(CKPT)就会在控制文件里记录重演日志文件的检查点位置信息。这些信息用于数据库的恢复过程,告诉数据库在这一点之前的已经记录下的重演条目不必进行恢复,因为它们已经被写入数据文件了。 由于控制文件对数据库的至关重要,所以联机存储着多个副本。这些文件一般存储在各个不同的磁盘上,以便将因磁盘试下哦引起的潜在危险降至最低程度。Oracle支持对同一个数据库并发的打开、书写多个相同的控制文件。通过为一个数据库在不同的磁盘上保存多个控制文件,可以幼小的降低对于控制文件可能发生的单点失败。例如,包含一个控制文件的磁盘崩溃了,如果Oracle试图访问这个被破坏的文件,当前实例就会失败,但是如果在不同的磁盘上保存了当前控制文件的复件,就可以重启一个实例而无需进行数据库恢复。

oracle体系结构总结

oracle体系结构总结 传统上Oracle体系结构由内存结构、进程结构、存储结构组成。其中,内存结构由SGA、PGA组成;进程结构由用户进程和Oracle进程组成;存储结构由逻辑存储、物理存储组成。 通过数据库的启动过程和一条sql的执行过程可以将oracle的内存结构、进程结构、存储结构串起来。 一、内存结构 (1)SGA(System Global Area):一个包含实例数据和控制信息的共享内存区域 (2)PGA(Program Global Area):一个包含服务器进程和后台进程的数据和控制信息的共享内存区域 1.1系统全局区SGA 系统全局区,是DB Server 中实例的必要组成部分,由很多小内存区共同构成,各个小内存区存放不同的信息,系统全局区用于暂存可以被所有进程(包括server process 以及background process)共享的信息,对系统的运行性能有好处,SGA 在实例启动的时候自动分配,实例关闭时自动释放。 SGA 暂存系统的大量共享数据,对系统有相当的性能影响,所以需要为SGA 选择适当的管理方式,根据所使用的数据库版本不同,SGA 的管理有三种方式:1)8i:SGA 的大小由所有内存组件大小之和决定,不能直接定义SGA 大小,对内存组件的大小可后台进行修改,但只能通过直接修改参数文件的内存参数大小,而且修改完数据库必须重起后才能生效,所以这种内存管理方法叫做SGA 的静态管理。 2)9i:SGA 的大小由初始化参数SGA_MAX_SIZ E 确定,各个内存组件大小之和不能超过这个参数。可以直接通过命令进行修改内存组件大小而不用重启,这种叫做SGA 的动态管理

oracleebs表结构及功能总结财务,制造,分销模块工作计划总结活动总结培训总结范文公文心得最新

Oracleapplication表结构 1.表结构,WHO字段来实现 通过菜单HELP下的HISTORY来找表2.通过LAST_Q UERY来判断所使用的表 LAST_QUERY是系统变量保存所执行的最后一次的SQL语句BLOCK一定选SYSTEM作为一个虚拟的BLOCK用HELP菜单下面的EXAMING子菜单3.用TRACE的办法来实现找表4.查看源代码来找表 基本表结构 学习目的:了解数据库的设计思想 1.库存模块INV表结构,主要是物料的保存和搬运 组织:分为库存组织和经营单位 对于来说首先定义成一个经营单位,主要是进行业务核算的基本单位,是经营单位每一个生产单位作为一个库存组织,库存组织不作为核算单位 组织表是HR_ORGANIZATION_UNITS存放所有的组织ORG_ID表示的经营单位 ORGANIZATION_ID表示库存组织 通过制造物料参数表MTL_PARAMETERS来查看库存组织ID MTL_SYSTEM_ITEM物料信息 原材料仓库,半成品仓库,成品仓库

子库存属于库存组织的一个结构,子库存下面还可以有一个叫库位的结构 物料的位置由:库存组织+子库存+库位 子库存放置在MTL_SECONDARY_INVENTORIES表中货位信息放置在MTL_ITEM_LOCATIONS表中 在MTL_ITEM_LOCATIONS中的SEGMENT1存放其库位名称 MTL_ONHAND_QUANTITIES表存放物料的现有量表其中LOCATION_ID表示库位信息 MTL_SYSTEM_ITEMS表存放所有库存组织,所有物料 MTL_MATERIAL_TRANSACTIONS物料事务处发表(存放物料的进货销售)TRANSACTION_IDINVENTORY_ID表示操作的物料ID TRANSACTION_QUANTITY表示货物的数量正数为搬进负数为搬出PRIMARY_QUANTITY表示主计量单位TRANSACTION_COST表示物料的成本 ACTUAL_COST表示通过算法得到的物料成本 ITEM_MASTER物料主表 PRIMAR_UNIT_OF_MEASURE表示主计量单位 MTL_CATEGORY_SET表表示产品分类级 MTL_CATAGROYS 2.PO采购模块从供应商订购和接收货物

Oracle体系结构简要介绍

Oracle体系结构简要介绍 1.o racle数据库软件介绍 oracle数据库包括:oracle数据库和oracle实例两个东西。Oracle实例指的是:oracle 启动后占用的内存和后台进程的总称;oracle数据库是实例和数据文件的总称。数据库关闭后数据库实例就不存在了,数据库文件一直存在。 Oracle是由oracle软件和oracle数据库组成,oracle数据库主要指的是三类文件,分别是控制文件(*.ctl)、日志文件(*.log)、数据文件(*.dbf)。 2.o racle中内存结构介绍 oracle数据库启动起来后有两大内存结构,一是SGA(系统全局区),二是PGA,其中SGA 是用来共享的,PGA是用来给进程使用的。

2.1SGA介绍 Sga是就是oracle系统的全局区,在linux和nuix中用ipcs -m命令来查看占用的共享内存。Sga包括:共享池(shared pool)、stream池(stream pool)、大型池(large pool)、java 池、数据库缓冲区高速缓存(buffer cache)、重做日志缓冲区(log buffer)。 其中主要的缓冲区包括:共享池(shared_pool)、数据库高速缓存区(db_cache)、重做日志缓冲区(log_buffer),最容易出问题的也是这三个。 在plsql中可以通过show parameters sga 或者show sga 来查看sga的参数配置。 2.1.1共享池(shard pool) 共享池(shard pool)主要用来缓存SQL语句以及所对应的SQL执行计划。参数是shared_pool_size。 SQL语句的执行计划存放在shard pool中,下次去执行的时候先到shard pool中去找,这样大大减少资源的消耗。 SQL语句的解析以及执行计划的缓存、shard pool的访问,都是有server process 来做的。 2.1.2数据库缓冲区高速缓存(buffer cache) 数据库缓冲区高速缓存(buffer cache)主要用来缓存DBF的数据,这些数据通过SQL语句的执行计划得来的。参数是db_cache_size 。 数据库缓存区高速缓存对应的是数据库写进程(DBWN),数据库写进程(DBWN)对应的是数据文件和控制文件。 2.1.3重做日志缓冲区(log buffer) 重做日志缓冲区(log buffer)主要用来存放日志的。参数是log_buffer。 重做日志缓冲区对应的是日志写进程(LGWR),日志写进程(LGWR)对应的数据文件是重做日志文件,也就是日志文件。 2.1.4stream 池(stream pool) stream 池(stream pool)是由oracle的stream来使用的。参数是streams_pool_size。 2.1.5大型池(large pool) 大型池(large pool)用于为某些大型的进程提供大量的内存分配,如数据备份等。 参数是:lorge_pool_size

(ERPMRP管理)ORACLEERP常用TABLE说明

(ERPMRP管理)ORACLEERP常用TABLE说明

ORACLEERP常用TABLE说明mtl_onhand_locator_v(库存数据视图)2 inv.mtl_system_items(物料主表)2 ont.oe_order_headers_all(订单头)6 po.po_lines_all(采购订单行)8 apps.fnd_user(MRPII用户表)9 hr.per_people_f(职工姓名表)9 hr.hr_locations(交货位置表)10 hwcust.hw_oe.products(产品编码表)10 e.ra_customers(客户表)10 wip.wip_accounting_classes(离散作业会计科目)10 wip.wip_ment_codes(离散作业注释)11 wip.wip_discrete_jobs(离散作业表)11 wip.wip_entities(任务令信息表)13 wip.wip_requirement_operations(任务令物料需求发放表)14 wip.wip_operations(离散作业操作表)14 wip.wip_operation_resources(离散作业操作资源)15 wip.wip_transactions(离散作业交易表)16 wip.wip_transaction_accounts(离散作业交易帐目)17 wip.wip_scrap_values(离散作业报废价值表)18 wip.wip_shop_floor_status_codes(场地状态表)18 wip.wip_move_transactions(离散作业工序移动交易)19 wip.wip_so_allocations(分配表)19 wip.wip_valid_intraoperation_steps(有效的进入工序步骤)20 bom.bom_bill_of_materials(BOM清单父项目)20 bom.bom_inventory_ponents(BOM清单构成项目)21 bom.bom_assembly_ments(装配件状态表)21

Oracle体系结构概述

Oracle 体系结构概述 完整的Oracle 数据库系统通常由两个部分组成:实例(INSTANCE )和数据库(DATABASE )。数据库是由一系列物理文件的集合(数据文件,控制文件,联机日志,参数文件等);实例则是由一组Oracle 后台进程/线程以及在服务器分配的共享内存区。 实例和数据库有时可以互换使用,不过二者的概念完全不同。实例和数据库之间的关系是:数据库可以由多个实例装载和打开,而实例可以在任何时间点装载和打开一个数据库。准确地讲,一个实例在其生存期中最多只能装载和打开一个数据库。如果要想再打开其他数据库,必须先丢弃这个实例,并创建一个新的实例。 数据库的主要功能是保存数据,实际上可以将数据库看作是存储数据的容器。数据库的存储结构也就是数据库存储数据的方式,Oracle 数据库的存储结构分为逻辑存储结构和物理存储结构,这两部分是相互独立但又密切相关的。逻辑存储结构主要用于描述在Oracle 内部的组织和管理数据的方式,而物理存储结构则用于描述在Oracle 外部,即操作系统中组织和管理数据的方式。 Oracle 对逻辑存储结构和物理存储结构的管理是分别进行的,两者之间不直接影响。因此Oracle 的逻辑存储结构能够适用于不同的操作系统平台和硬件平台,而不需要考虑物理实现方式。 在启动Oracle 数据库服务器时,实际上是在服务器的内存中创建一个Oracle 实例(即在服务器内存中分配共享内存并创建相关的后台进程),然后由这个实例来访问和控制磁盘中的数据文件。图2-1以最简单的形式展示了Oracle 实例和数据库。Oracle 有一个很大的内存块,称为系统全局区(SGA )。 文件 文件文件文件 文件数据库 SGA 后台进程后台进程后台进程后台进程后台进程后台进程后台进程 实例 图2-1 Oracle 实例和数据库 当用户连接数据库时,实际上是连接到实例中,由实例负责与数据库通信息,然后再将处理结构返回给用户。 Oracle 数据库服务器的后台进程的数量与其工作模式有密切关系。Oracle 服务器处理请求有两种最常见的方式,分别是专用服务器连接和共享服务器连接。在专用服务器连接下,Oracle 数据库会为每个用户请求分配一个专用服务器进程为其提供服务,当用户请求结束后,对应的服务器进程也相应地被终止。如果同时存在大量的用户请求,则需要同等数量的服务器进程提供服务。 而在共享服务器连接下,Oracle 数据库始终保持一定数量的服务器进程,用户的请求首

Oracle体系结构简介

Oracle体系结构简介 一、数据库(Database) 数据库是一个数据的集合,不仅是指物理上的数据,也指物理、存储及进程对象的一个组合。Oracle是关系型数据库治理系统(RDBMS)。 二、实例(Instance) 数据库实例(也称为服务器Server)就是用来访问一个数据库文件集的一个存储结构及后台进程的集合。它使一个单独的数据库可以被多个实例访问(也就是ORACLE并行服务器-- OPS)。实例和数据库的关系如下 决定实例的组成及大小的参数存储在init.ora文件中。 三、内部结构 表、列、数据类型(T able、Column、Datatype)Oracle中是以表的形式存储数据的,它包含若干个列;列是表的属性的描述;列由数据类型和长度组成;Oracle中定义的数据类型主要有CHAR、VARCHAR2、NUMBER、DATE、LONG、LOB、BFILE等,具体的数据类型情况将在本栏目的相关文档中具体介绍。 约束条件(Constraint)表中以及表间可以存在一些数据上的逻辑关系、限制,也就是约束。Oracle中的约束主要有主键(PK)、外键(FK)、检查(CHECK)、唯一性(UNIQUE)等几种;拥有约束的表中每条数据均必须符合约束条件。 抽象数据类型(Abstract Datatype)可以利用CREATE TYPE命令创建自定义的抽象数据类型。 分区(Partition)可以利用分区将大表分隔成若干个小的存储单元,逻辑上仍然是一个完整的独立单一实体,以减小访问时数据的查找量,提高访问、存储效率 用户(User)用户不是一个物理结构,但是它与数据库的对象拥有非常重要的关系--用户拥有数据库对象,以及对象的使用权。 模式(Schema)用户帐号拥有的对象集合称为模式。 索引(Index)数据库中每行记录的物理位置并不重要,Oracle为每条记录用一个ROWID来标识,ROWID记录了记录的准确位置。索引是供用户快速查找到记录的数据库结构。ORACLE8中有簇索引、表索引、位图索引三种索引形式。 簇(Cluster)经常被频繁引用的表可以在物理位置上被存储在一起,簇就是用来治理这种集中存储的。集中存储可以减少I/O次数,以达到性能的改善和提高。

Oracle EBS R12 客户表结构

R12 客户表结构 客户表/联系人/PARTY关联 HZ_PARTIES 客户账户表 HZ_CUST_ACCOUNTS 例子: SELECT hp.party_number --客户注册标识 , hp.party_name --组织名/客户 , hp.known_as --别名 , https://www.doczj.com/doc/977618823.html,anization_name_phonetic --名称拼音 , acc.account_number --帐号 , flv_sale.meaning sales_channel_code --销售渠道 , acc.account_name --账记说明 , flv_customer.meaning customer_class_code --分类 , acc.orig_system_reference --参考 , flv_status.meaning status --状态 , flv_type.meaning customer_type --账户类型

, acc.attribute_category --上下文 , acc.attribute1 --注册 , acc.attribute2 --人员推广 , acc.attribute3 --特殊要求 , acc.Attribute4 --发货单是否打印价格 , acc.Attribute5 --所属利润 FROM hz_parties hp , hz_cust_accounts acc , fnd_lookup_values flv_sale --销售渠道 , fnd_lookup_values flv_customer --分类 , fnd_lookup_values flv_status --状态 , fnd_lookup_values flv_type --账户类型 WHERE hp.party_id = acc.party_id AND acc.sales_channel_code = flv_sale.lookup_code AND flv_sale.lookup_type = 'SALES_CHANNEL' AND flv_https://www.doczj.com/doc/977618823.html,NGUAGE = userenv('LANG') AND acc.customer_class_code = flv_customer.lookup_code AND flv_customer.lookup_type = 'CUSTOMER CLASS' AND flv_https://www.doczj.com/doc/977618823.html,NGUAGE = userenv('LANG') AND acc.status = flv_status.lookup_code

oracleebsr12常用表表结构总结之ar应收模块

AR 应收 应收事务处理相关表 SELECT * FROM ; --事务处理批 SELECT * FROM ; --应收事务头/发票头SELECT * FROM ; --应收事务行项目/发票行SELECT * FROM ;--应收事务分配行/发票分配SELECT * FROM ; --收款计划/发票调整 收款相关表 SELECT * FROM ; --收款表 SELECT * FROM ; --收款历史表 SELECT * FROM ; --收款分配表/付款计划SELECT * FROM ;--杂项历史记录分配表SELECT * FROM ;--收款核销表 Subledger accounting 子分类账 SELECT * FROM ar_adjustments_all;--会计分录SELECT * FROM ; --会计事件表 SELECT * FROM ; --事务处理表 SELECT * FROM ; --子分类帐日记账头 SELECT * FROM ; --子分类帐日记账行SELECT * FROM ;--子分类帐日记帐行关联表SELECT * FROM ; --会计事件错误提示表

接口相关表应收临时表 SELECT * FROM ; --应收接口行表 SELECT * FROM ;--应收接口分配行表 接口相关表收款临时表 SELECT * FROM ar.ar_interim_cash_receipts_all; --收款标准接口 主数据相关表/视图 SELECT * FROM ; --客户 SELECT * FROM ; --客户地点 SELECT * FROM ; --银行 SELECT * FROM ; --银行账户 SELECT * FROM ; --银行账户使用表 SELECT * FROM ; --期间,取期间视图 SELECT * FROM ; --业务实体视图 税相关表 SELECT * FROM zx_lines_det_factors; --税决定因素表 SELECT * FROM zx_lines; --税行 注:应收模块税仅含这个表。 ra_customer_trx_all 应收发票? 发票编号:customer_trx _id 客户收单方编号:bi ll_to_site_use_id 销售员编号:primary_sales_id reference是Oracle提供的外部编号输入框,但是由于版本问题和长度(<=30),不建议

oracle物理结构

oracle物理结构 在一个服务器中,每一个运行的数据库都有一个数据库实例(instancename) 相联系。数据库启动时,系统首先在服务器内存中分配系统全局区(SGA),即构成了oracle的内存结构。然后启动若干个常驻内存的操作系统进程,即组成了oracle的进程结构。除此之外,还有数据库的物理与逻辑结构。数据库体系统结构图可以参考第一篇。在接下来的篇幅中将分五篇来详细说明oracle数据库的体系结构。 ?oracle物理结构 ?oracle逻辑结构 ?oracle内存结构 ?oracle进程结构 ?oracle连接配置结构 本篇说明物理结构。 物理结构,即oracle数据库使用的操作系统文件结构。对于数据库物理结构文件,不同的oracle版本,不同的操作系统平台上有不同的存储目录结构。 ?winnt | d:/oracle/product/10.1.0/oradata/DB_NAME/*.*(oracle 10g);d:/orant/database/*.*(oracle7,oracle8) ?Unix | /home/app/oracle/product/10.1.0/oradata/DB_NAME/*.*(10g);/home/app/oradata/db_name/*. *(8i,9i) 数据库的物理结构文件按其作用可以分为三类: ?数据文件 ?日志文件 ?控制文件 物理存储结构是指从物理角度分析数据库的构成,即Oracle数据库创建后所使用的操作系统文件。从物理存储结构上分析:每一个Oracle数据库是主要由三种类型的文件组成:数据文件、日志文件和控制文件,另外还包括一些参数文件。其中:数据文件的扩展名为.DBF;日志文件的扩展名为.LOG;控制文件的扩展名为.CTL。 一、数据文件 数据文件(Data File)用于存储数据库数据的文件,如表中的记录,索引,数据字典信息等都存储于数据文件中。在存取数据时,Oracle数据库系统首先从数据文件中读取数据,并存储在内存中的数据缓冲区中。当用户查询数据时,如果所要查询的数据不在数据缓冲区中,则这时Oracle数据库进行启动相应的进程从数据文件中读取数据,并保存到数据缓冲区中。当用用户修改数据时,用户对数据的修改保存在数据缓冲区中,再由oracle后台进程DBWR决定如何将其写入到数据文件中。这样的存取方式减少了磁盘的I/O操作,提高了系统的响应性能。 一个Oracle数据库往往有多个数据文件。这里需要注意的是:当向Oracle数据库中某个表添加数据时,输入到表中的数据可能包含在一个数据文件中,也可能包含在多个数据文件中。换句说话,当在Oracle数据库为中创建一个表时,Oracle数据库系统不会为此在磁盘在上创建一个数据文件。

Oracle体系结构图以及分析

Oracle体系结构 Oracle服务器 –提供一个开放的、全面的、完整的信息管理平台 –Oracle实例和Oracle数据库组成 Oracle实例 ?访问Oracle数据库的一种方法 ?只能是打开一个仅仅只有一个数据库 ?由内存和后台进程组成 Oracle 实例由SGA 内存结构和用于管理数据库的后台进程组成。实例是通过使用对每个操作系统特定的方法来进行标识的。实例一次只能打开和使用一个数据库。

系统全局区 SGA 是用于存储数据库信息的内存区,该信息为数据库进程所共享。它包含Oracle 服务器的数据和控制信息。它是在Oracle 服务器所驻留的计算机的虚拟内存中得以分配。SGA 由几种内存结构组成: ? 共享池用于存储最近执行的SQL 语句和最近使用的数据字典数据。这些SQL 语句可以是用户进程提交的,也可以是从数据字典读取的(在存储过程的情况中)。 ? 数据库缓冲区高速缓存用于存储最近使用的数据。这些数据从数据文件读取,或者写入数据文件。 ? 重做日志缓冲区用于跟踪服务器和后台进程对数据库所做的更改。 在SGA 中还有两种可选的内存结构: ? Java 池:用于存储Java 代码 ? 大型共享池:用于存储并不与SQL 语句处理直接相关的大型内存结构。例如在备份和复原操作过程中复制的数据块。 后台进程 实例中的后台进程执行用于处理并行用户请求所需的通用功能,而不会损害系统的完整性和性能。它们把为每个用户运行的多个Oracle 程序所处理的功能统一起来。后台进程执行I/O 并监控其它Oracle 进程以增加并行性,从而使性能和可靠性更加优越。 根据配置情况,Oracle 实例可以包括多个后台进程,但是每个实例都包括下面五个必需的后台进程: ? 数据库写入程序(DBW0) 负责将更改的数据从数据库缓冲区高速缓存写入数据文件。? 日志写入程序(LGWR) 将重做日志缓冲区中注册的更改写入重做日志文件。 ? 系统监控程序(SMON) 检查数据库的一致性,如有必要还会在数据库打开时启动数据库的恢复。 ? 过程监视器(PMON) 负责在一个Oracle 进程失败时清理资源 ? 检查点进程(CKPT) 负责在每当缓冲区高速缓存中的更改永久地记录在数据库中时,更新控制文件和数据文件中的数据库状态信息。 连接到Oracle Server 1.建立一个用户连接 2.创建一个会话 用于连接例程的进程 用户在给Oracle 提交SQL 语句之前,必须同实例连接起来。 ? 用户启动SQL*Plus 之类的工具,或者运行使用Oracle Forms 之类的工具开发的应用程序。这个应用程序或者工具就在用户进程中执行。 ? 在最基本的配置中,当用户登录到Oracle 服务器时,运行Oracle 服务器的计算机上就会创建一个进程。这个进程称为服务器进程。服务器进程代表在客户机上运行的用户进程与Oracle 实例通信。服务器进程代表用户执行SQL 语句。 连接 连接是用户进程和Oracle 服务器之间的通信路径。数据库用户可以用下面三种方式之一连接到Oracle 服务器: ? 用户登录到运行Oracle 实例的操作系统上,然后启动访问该系统中的数据库的应用程序或工具。通信路径是使用主机操作系统上的交互进程通信机制建立的。 ? 用户在本地计算机上启动应用程序或工具,然后通过网络连接到运行Oracle实例的计算

相关主题
文本预览
相关文档 最新文档