Oracle 10g 数据库基本体系结构复习资料(

Oracle 10g 数据库基本体系结构复习资料(一)
Oracle Database 10g:“g”代表网格
全球网格论坛 (GGF) 是一个负责制定网格计算标准的标准团体。这个团体由一些委员会和工作小组构成并致力于制定网格计算各方面的标准。这些委员会和工作小组包括来自学术界、研究团体和(日益增加的)商业公司的参与者。请访问 GGF 网站 http://www.gridforum.org。
Oracle 创建的网格计算基础结构软件可在多个服务器中平衡各种类型的工作量并把所有这些服务器作为一个完整的系统来管理。因为所有组件都通过集群方式集中在一起,所以网格计算与大型机计算一样,同样可以实现很高水平的可靠性。但是,与大型机和大型 UNIX 对称多处理 (SMP) 服务器不同,网格的构建使用开放系统技术,如 Intel 处理器和 Linux 操作系统,因此成本很低。
Oracle 的网格计算技术包括:
Automatic Storage Management (ASM)
Real Application Clusters (RAC)
Oracle Streams
Enterprise Manager Grid Control
使用自动存储管理技术可以在所有磁盘中分布数据库数据,创建并维护存储网格。以最低的管理成本提供最高的输入/输出 (I/O) 吞吐量。添加或删除磁盘时,ASM 会自动重新分发数据。(不需要使用逻辑卷管理器来管理文件系统。)数据可用性随着可以选择使用镜像而提高,因而可在线添加或删除磁盘。有关详细信息,请参阅“管理数据库存储结构”一课。
Oracle 的 Real Application Clusters 运行后可调整服务器集群上的所有应用程序工作量,同时还可提供以下功能:
1、集成式集群件:这个集群件包括用于进行集群连接、消息传送和锁定、集群控制与恢复的功能。在 Oracle Database 10g 支持的所有平台上均可实现这些功能。
2、自动工作量管理:用于定义一些规则,以便在正常操作和响应故障期间内将处理资源自动分配到每个服务。为了符合不断变化的业务需求,可以动态修改这些规则。这种在数据库网格中动态资源分配的功能是 Oracle RAC 特有的功能。
3、对中间层自动发送事件通知:集群配置发生更改后,中间层可以立即适应实例故障转移或可用新实例。这样,最终用户在发生实例故障转移时可继续工作,不存在通常由网络超时引起的延迟。当新实例可用时,中间层可以立即开始与该实例建立负载平衡连接。Oracle Database 10g 中的 Java 数据库连接 (JDBC) 驱动程序拥有“快速连接故障转移”功能,启用这个功能后可处理以上事件。
4、Oracle Streams 为信息共享、组合消息队列、数据复制、发出事件通知、执行数据仓库加载,以及通过一种技术实现发布和预订两种功能提供了一个统一的框架。如果在任一个站点应用更新,Oracle Streams 可以使两个或更多个数据源副本保持同步。它可以自动捕获数据库更改、将更改传播到预订节点、应用更改,还可以在检测到数据更新冲突后解决问题。Oracle Streams 作为消息队列或工作流功能可由应用程序直接使用,从而可在网格中的应用程序之间进行通信。
5、Enterprise Manager Grid Control 用于管理网格级操作,这包括管理整个软件堆栈、预配用户、克隆数据库和管理补丁程序。它可从最终用户的角度监视所有应用程序的性能。Grid Control 将网格基础结构的性能和可用性视为一个统一的整体,而不是独立的存储单元、数据库和应用程序服务器。硬件节点、数据库和应用程序服务器可以组成单个的逻辑实体,因而可作为一个单元来管理一组目标。
注:在本课程中,可使用 Enterprise Manager Database Consol 一次管理一个数据库。
Oracle 数据库体系结构
Oracle 服务器是进行信息管理的关键。通常,Oracle 服务器必须可靠地管理多用户环境中的大量数据,大多数用户才能并发访问同一数据。这一点必须实现才能提供高性能。另外,Oracle 服务器必须阻止未授权的访问,并且在进行故障恢复时提供有效的解决方案。
数据库结构
每一个运行的 Oracle 数据库都与一个 Oracle 实例关联。在数据库服务器上启动数据库后,Oracle 软件会分配一个称为系统全局区 (SGA) 的共享内存区,还会启动若干个 Oracle 后台进程。这种由 SGA 和 Oracle 进程组成的组合就称为一个 Oracle 实例。
启动实例后,Oracle 软件会将实例与特定的数据库关联。这个过程称为装载数据库。然后可打开数据库,使得授权用户可访问数据库。在同一台计算机上可以并发执行多个实例,每一个实例只访问它自己的物理数据库。
您可以将 Oracle 数据库体系结构看作各种不同的、相互关联的结构化组件。
Oracle 数据库使用内存结构和进程来管理、访问数据库。所有内存结构都存在于构成数据库服务器的计算机的主存中。进程指的是在这些计算机内存中运行的作业。进程被定义为“控制线程”或操作系统中可以运行一系列步骤的一种机制。
Oracle 内存结构
Oracle 实例关联的基本内存结构包括:
系统全局区 (SGA):由所有服务器进程和后台进程共享
程序全局区 (PGA):专用于每一个服务器进程或后台进程。每一个进程使用一个 PGA
SGA 是包含实例的数据和控制信息的内存区。
SGA 包含以下数据结构:
数据库缓冲区高速缓存:缓存从数据库检索的数据块
重做日志缓冲区:高速缓存重做信息(用于实例恢复),直到可以将其写入磁盘中存储的物理重做日志文件
共享池:缓存可在用户间共享的各个结构
大型池:是一个可选区域,可为某些大型进程(如 Oracle 备份和恢复操作、I/O 服务器进程)提供大量内存分配
Java 池:用于 Java 虚拟机 (JVM) 中所有特定会话的 Java 代码和数据
Streams 池:由 Oracle Streams 使用
通过使用 Enterprise Manager 或 SQL*Plus 启动实例,可以显示为 SGA 分配的内存量。
程序全局区 (PGA) 是包含每一个服务器进程的数据及控制信息的内存区。Oracle 服务器进程为客户机的请求提供服务。每一个服务器进程都有自己专用的 PGA,这个 PGA 是在服务器进程启动时创建的。由该服务器进程独占对 PGA 的访问,PGA 只由对它自身执行操作的 Oracle 代码读写。
使用动态 SGA 基础结构时,可以在不关闭实例的情况下更改数据库缓冲区高速缓存、共享池、大型池和 Java 池和 Streams 池的大小。
Oracle 数据库使用初始化参数创建并配置内存结构。例如,SGA_TARGET 参数用于指定 SGA 可用的总空间量。如果 SGA_TARGET 设置为 0,则会禁用“自动共享内存管理”。
进程结构
调用应用程序或 Oracle 工具时,如调用 Enterprise Manager 时,Oracle 服务器会通过创建服务器进程来执行应用程序发出的命令。Oracle 服务器还会针对一个实例创建一组后台进程。这些进程不仅彼此进行交互操作,还与操作系统进行交互操作,这样可以管理内存结构,通过异步执行 I/O 操作将数据写入磁盘,而且还可以执行其它所需的任务。存在哪些后台进程取决于数据库中当前使用的功能。
Oracle 实例管理
Oracle 数据库服务器由 Oracle 数据库和 Oracle 实例组成。Oracle 实例由称为系统全局区 (SGA) 的内存结构和后台进程构成,这些后台进程可以处理实例运行中涉及的大量后台任务。以下是最常见的后台进程:
系统监视器 (SMON):出现故障后启动实例时执行崩溃恢复任务
进程监视器 (PMON):用户进程失败时执行进程清理任务
数据库写进程 (DBWn):将修改后的块从数据库缓冲区高速缓存写入磁盘中的数据文件
检查点 (CKPT):通过更新数据库的所有数据文件和控制文件指出最新的检查点
日志写进程 (LGWR):将重做日志条目写入磁盘
归档进程 (ARCn):发生日志切换时将重做日志文件复制到归档存储器
服务器进程和数据库缓冲区高速缓存
处理某个查询时,Oracle 服务器进程会在数据库缓冲区高速缓存中查找它所需的所有数据块。如果未在数据库缓冲区高速缓存中找到数据块,服务器进程会从数据文件中读取数据块,并在数据库缓冲区高速缓存中添加一个副本。因为关于同一数据块的后续请求可能会在内存中找到该数据块,因此,这些请求可能不需要进行物理读操作。Oracle 服务器使用最近用过的算法腾出最近未访问的缓冲区,以便在数据库缓冲区高速缓存中为新数据块提供空间。
缓冲区高速缓存中的缓冲区可能处于以下四种状态之一:
已连接:可防止多个会话同时对同一数据块进行写操作。此时,其它会话正等待访问该块。
干净:缓冲区现已解除连接,如果没有再次引用当前内容(数据块),该缓冲区是可以立即腾出的候选项。此时,不是缓冲区的内容已与磁盘中存储的数据块内容同步,就是缓冲区中包含块的一致读取 (CR) 快照。
空闲或未使用:实例刚刚启动,缓冲区为空。此状态与“干净”状态非常相似,不同之处在于缓冲区尚未使用。
灰数据:缓冲区不再处于已连接状态,但是内容(数据块)已更改,DBWn 必须先将内容刷新到磁盘,才能腾出缓冲区。
Tags: 

延伸阅读

最新评论

发表评论