系统管理Lesson 02. Exploring Oracle Database Architecture

1. 请给出组成 Oracle 数据库体系三大结构的名称。 2-3

memory structures
process structures
storage structures

  • 内存结构
  • 进程结构
  • 存储结构

2. 请说明连接(connection)和会话(session)的概念。 2-5

connection:Comunication betwween a user process and an instance
session:Specific connection of user to an instance through a user process
连接:用户进程和Oracle DB实例之间的交流 (路径)
会话:用户通过用户进程与实例的特定连接 (状态)<登录到数据库的当前用户的状态>
会话在连接基础之上,用户名和密码

3. 请解释内存结构中共享池、缓存高速缓冲区、大池、重做日志缓冲区各自所实现的功能。 2-6 2-7

共享池 2-8
Shared pool:保存SQL解析和执行相关数据的内存区域 (浅解析&硬解析)
缓冲高速缓冲区 2-10
Database buffer cache:存放从数据文件读取的数据块的副本,是修改数据的地方
大池 2-12
Large pool:可选区域为某些大型进程提供大量内存分配,如Oracle备份和恢复操作以及I/O服务器进程
进行大的内存分配的地方,比如共享服务器模式UGA的缓存、I/O进程缓存、操作的缓存等
重做日志缓冲区 2-11
Redo log buffer:暂存数据块所做更改的信息
暂存修改性事务产生重做条目的区域

4. 请说明内存列存储的特点以及使用场合。 2-16

特点:把一个或多个列单独抽取出来放在内存连续空间 快速响应
适用场景:对少量列进行频繁查询

5. 请说出必须的后台进程 DBWn、LGWR、CKPT、SMON、PMON、LREG、MMON、MMNL 的作用。 2-26

在这里插入图片描述

DBWn 2-28
Database Writer Process 数据库写进程
将数据库缓冲区高速缓存中经过修改的缓冲区(灰数据缓冲区)成批写入数据文件中
(在完全检查点或强制检查点时负责把高速缓冲区中已提交的数据块写入数据文件中)
LGWR 2-30
Log Writer Process 日志写进程
在条件满足时,负责把重做日志缓冲区的重做条目整体刷新到联机重做日志文件中
CKPT 2-32
Checkpoint Process 检查点进程
检查点进程的驱动程序
开始时产生SCN,记录在控制文件中
完全检查点之后,用控制文件记录的SCN把数据文件头的SCN字段刷新一遍
(新的检查点间隔开始时,在控制文件记录检查点信息,完全检查点时触发数据库写进程,之后用控制文件记录的检查点信息刷新每一个数据库文件头的SCN号字段值)
SMON 2-33
System Moniter Process 系统监控器进程
在实例启动时执行恢复
清理未使用的临时段
(在实例重启时,检查数据库的一致性,如果需要由SMON负责执行实例恢复。另外它也负责清理不需要的临时段)
PMON 2-34
Process Monitor Process 进程监视器进程
监视用户会话空闲时段
在用户进程失败时进行恢复进程,监视会话清除数据块缓冲区高速缓存和释放该用户进程占用的资源
(在服务器进程失败时执行进程的恢复。定期给监听器刷新数据库服务信息)
LREG 2-36
Listener Registration Process 侦听器注册进程
监听注册进程(LREG)定期刷新提供数据库服务信息给监听程序。
(向监听程序注册关于当前服务器运行的数据库实例和分派程序的相关信息)
MMON 17-8
Manageability monitor process 可管理的监视器进程
抓取SGA内存快照,生成AWR
(执行诸多与自动工作量资源档案(AWR)有关的任务)
MMNL
Manageability monitor lite process 可管理的监视器精简进程
配合MMON
(把SGA中活动会话历史记录(ASH)缓冲区的统计信息写入磁盘)

6. 请描述检查点机制的原理。Oracle 设计检查点机制的目的是什么? 2-32

检查点机制的原理:
Oracle内部的一个驱动机制。
Oracle按每三秒钟把数据库分成连续的间隔,每个三秒钟间隔用一个十进制的数字序列唯一表示,即称SCN(system change number),一个SCN就是一个检查点间隔,唯一代表了数据库内的一个三秒钟时间段。
在SCN间隔更替时,检查点进程(CKPT)产生新的检查点信息SCN,并在第一时间把新的SCN在控制文件记录下来,然后CKPT一直等待三秒钟结束这一时间点的到来,即称完全检查点,在完全检查点时,CKPT会触发数据库写进程(DBWn),通知DBWn将当前检查点队列中已标记为提交状态的数据块从缓存高速缓冲区读出并写入到数据文件中,DBWn在执行前会首先触发一次日志写,确保写入数据文件的提交过的数据块所对应的的重做条目都已持久化在联机重做日志文件中。
在DBWn把检查点队列记录的所有已提交的数据块全部成功写入数据文件后,CKPT会用控制文件头记录SCN把数据库全部的数据文件头的SCN字段值刷新一遍,刷新完成后,每个数据文件头的的SCN字段值和控制文件保持一致(一致性数据库的标志)。
在Oracle内部,检查点机制在实例启动后就持续不间断地向前推进。

目的:执行实例恢复 redo
(实例故障时自动执行实例恢复)

7. 组成 Oracle 数据库存储结构的文件类型有几种,请给出各自的功能说明。 2-38 2-39

构成Oracle数据库的文件如下:
控制文件:
数据库物理结构信息
数据文件:
表行数据信息,索引等
联机重做日志文件:
持久化内存缓冲区重做条目
(持久化重做日志缓冲区中的重做条目)

数据库操作期间将使用以下附加文件:
参数文件:
实例启动所必需初始化参数值
口令文件:
允许用户使用SYSDBA等角色(管理账号)远程连接到实例并执行管理任务
备份文件:
脱机拷贝 压缩归档
(是对数据文件等重要组件的脱机保存,用于还原目的)
归档的重做日志文件:
包含数据更改(重做)的持续历史记录由实例生成。使用这些文件和数据库的备份,您可以恢复丢失的数据文件。
(是在日志组发生切换时,将记录满的联机重做日志文件复制到指定位置保存)
跟踪文件:
针对每个后台进程状态改变和错误信息
(针对每个服务器和后台进程检测到的内部错误进行单独记录)(数据库故障诊断)
预警日志文件:
按照时间顺序记录整个数据库状态改变和错误信息(数据库故障诊断)

8. Oracle 数据库逻辑结构有哪几部分组成,分别说明各自的作用。 2-40 2-41

Oracle—物理结构、逻辑结构、内存结构
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

数据库(Database):
由不同表空间组成

表空间(Tablespace): 2-43
(用于对相关逻辑结构或数据文件进行分组以简化管理)

物理和逻辑进行关联的地方

  • 数据库最大的逻辑存储单元
  • 每个表至少由一个数据文件组成
  • 表空间是段的逻辑容器
  • 表空间的大小等于组成该表空间的数据文件大小之和

段(Segment): 2-42
对已分配好的区和有效数据进行空间管理

  • 由一组区(Extents)组成
  • 段用于存储数据库的对象(例如表和索引)、重做数据(Undo Data)和临时数据(Temporary Data) 每个需要存储的对象都仅由一个段组成

段的类型:

  • 数据段:存储用户的数据,每个表都有一个对应的回滚段,其名称和数据表的名字相同
  • 索引段:用来存储系统和用户的索引信息
  • 回滚段:存储用户数据修改前的值,回退段与事务是一对多的关系
  • 临时段:用于ORDER BY语句的排序以及汇总

区(Extents):
由块组成,进行空间分配的单元

  • 磁盘空间分配的最小单位
  • 磁盘按区划分,每次至少分配一个区 区存储于段中,它由连续的数据块组成

块(Block):
数据库操作的最小单位

  • 数据最小数据组成单位与管理单位
  • 数据文件磁盘存储空间单位
  • 数据库I/O的最小单位
    在这里插入图片描述

9. Oracle 数据库逻辑和物理结构是如何关联的? 2-40

Oracle—物理结构、逻辑结构、内存结构
逻辑结构的表空间和物理结构的数据文件相连
在这里插入图片描述

10. 请说明预配置数据库中 system 和 sysaux 表空间的作用。 2-44

在这里插入图片描述

SYSTEM 保存数据字典
(存储支持数据库核心功能的表,例如数据字典表。始终处于联机状态)
SYSAUX 辅助SYSTEM,AWR
(辅助SYSTEM,存储附加的数据库组件。可以脱机以执行表空间恢复) ADR
都不能设为只读

11. 请把下面内容翻译成中文:

The Database Writer process (DBWn) writes the contents of buffers to data files.
The DBWn processes are responsible for writing modified (dirty) buffers in the database buffer cache to disk.
Although one Database Writer process (DBW0) is adequate for most systems,
you can configure additional processes to improve write performance if your system modifies data heavily.
The additional processes are named DBW1 through DBW9, DBWa through DBWz, and BW36-BW99.
These additional DBWn processes are not useful on uniprocessor systems.
When a buffer in the database buffer cache is modified,
it is marked dirty and is added to the head of the checkpoint queue that is kept in system change number (SCN) order.
This order therefore matches the order of redo that is written to the redo logs for these changed buffers.
When the number of available buffers in the buffer cache falls below an internal threshold
(to the extent that server processes find it difficult to obtain available buffers),
DBWn writes non-frequently used buffers to the data files from the tail of the LRU list so that processes can replace buffers when they need them.
DBWn also writes from the tail of the checkpoint queue to keep the checkpoint advancing.
数据库编写器进程(DBWn)将缓冲区的内容写入数据文件。
DBWn过程是负责将数据库缓冲区缓存中修改过的(脏的)缓冲区写入磁盘。
虽然只有一个数据库Writer进程(DBW0)对于大多数系统来说已经足够了,
您可以配置其他进程来改进如果系统大量修改数据,则写性能。
其他进程命名为DBW1到DBW1DBW9、DBWa到DBWz和BW36-BW99。
这些附加的DBWn过程对单处理器系统。
当数据库缓冲区缓存中的缓冲区被修改时,
它将被标记为dirty并被添加到按系统更改号(SCN)顺序保存的检查点队列。
因此,此顺序与顺序相匹配写入这些已更改缓冲区的重做日志。
当可用缓冲区的数量缓冲区缓存低于内部阈值
(在某种程度上,服务器进程发现很难获取可用的缓冲区),
DBWn从LRU的尾部将不常用的缓冲区写入数据文件列出,
以便进程可以在需要时替换缓冲区。
DBWn还从检查点队列以保持检查点前进。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
The inspiration for the material contained in this book comes from my experiences developing Oracle software, and from working with fellow Oracle developers to help them build reliable and robust applications based on the Oracle database. The book is basically a reflection of what I do every day and of the issues I see people encountering each and every day. I covered what I felt was most relevant, namely the Oracle database and its architecture. I could have written a similarly titled book explaining how to develop an application using a specific language and architecture—for example, one using JavaServer Pages that speaks to Enterprise JavaBeans, which in turn uses JDBC to communicate with Oracle. However, at the end of the day, you really do need to understand the topics covered in this book in order to build such an application successfully. This book deals with what I believe needs to be universally known to develop successfully with Oracle, whether you are a Visual Basic programmer using ODBC, a Java programmer using EJBs and JDBC, or a Perl programmer using DBI Perl. This book does not promote any specific application architecture; it does not compare three tier to client/server. Rather, it covers what the database can do and what you must understand about the way it works. Since the database is at the heart of any application architecture, the book should have a broad audience. As the title suggests, Expert Oracle Database Architecture concentrates on the database architecture and how the database itself works. I cover the Oracle database architecture in depth: the files, memory structures, and processes that comprise an Oracle database and instance. I then move on to discuss important database topics such as locking, concurrency controls, how transactions work, and redo and undo, and why it is important for you to know about these things. Lastly, I examine the physical structures in the database such as tables, indexes, and datatypes, covering techniques for making optimal use of them.

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值