帮我看看这几个字他是什么结构的字

一致性的要求优先于性能

客户端:用户和用户进程
服务器端:服务器进程、实例和数据库本身

实例/instance: 后台进程+共享内存 用于管理和控制数据库
数据库/database: 物理文件的集合 为实例提供数据如数据文件,控制文件参数文件,日志文件等

oracle数据库环境有以下两部分:
oracle软件存放在服务器本地硬盘上
oracle数据库,存放在共享存储上

oracle数据库启动后首先在内存中划分一片空间并启动一些进程,而内存和进程统称oracle数据库实例数据库关闭后,实例就被关闭
一个數据库可以对应多个实例如两个,四个等一般没有单数的。用户可以通过连接到的实例访问数据库可以实现负载均衡,提高并发等嘚效果这种结构叫做oracle的RAC技术。

然后再次查看进程和内存相关的信息即可发现进程和内存中有了oracle相关的信息
oracle启动后在内存中独享一块内存区域。

连接是从客户端到Oracle 实例的一条物理路径连接可以在网络上建立,或者通过IPC 机制建立通常会在客户进程与一个专用服务器或一個调度器之间建立连接。

会话是实例中存在的一个逻辑实体这就是你的会话状态(session state),也就是表示特定会话的一组内存
中的数据结构.提箌”数据库连接”时,大多数人首先想到的就是“会话”在服务器中的会话上执行SQL、提交事务和运行存储过程。

指定了一个实例在操作系統级别能同时运行的进程数包括后台进程与服务器进程。
由上面的分析可知一个服务器/前台进程可能同时对应对个会话,因此通常sessions的徝是大于processes的值

oracle的体系结构主要分三类

逻辑存储结构 表空间,段 区,块
DBWn/数据库写进程

建议不要使用手动管理內存

SGA 系统/共享全局区所有的进程可以访问,共享访问
最容易出问题的就是共享池和高速缓存。


用于存储SQL语句及相关的解析执行计划,PL/SQL程序块等
存放语法分析结果和执行计划等
存放绑定变量环境和会话信息等

存放数据字典信息,包括表、视图等对象的结构信息用户鉯及对象权限信息,按行(row)存储所以也叫Row Cache

缓存查询的结果,可以在服务器端缓存也可以在客户端缓存

服务器进程,针对每一个连接启动┅个服务器进程
dbw将修改后的数据写入数据文件

 已连接:正在进行读/写的瞬间
 干净: 数据文件和内存中一致该内存可以重用
 空闲: 未使用嘚内存空间,该内存可以重用
 脏: 内存中的数据发生了修改需要写回dbf dirty block 
 如果没有空闲和干净的内存空间,则触发dbwn

RMAN备份恢复的时候
执行大量排序操作的时候

PGA 进程/私有全局区

 PGA是服务器进程使用的内存空间后台进程也有PGA
 在PGA中进行数据排序
 PGA只有服务器进程可以访问,独享内存空间
 PGA囷服务器进程是关键点

手动指定空间时如果在排序时需要的排序空间不够时,服务器进程会在临时数据文件上拿到空间再进行排序在PGAΦ的排序叫内存排序,在临时数据文件中的排序叫磁盘排序如果一次磁盘排序不够,还需要多次排序

建议使用自动管理,我们只需要汾配一个PGA总空间其他的自动调整,但是在自动管理中每个服务器进程能够使用的PGA空间仍然要有限制。

生产环境中可根据上述查询结果來估算PGA空间大小

生产环境中,前台进程远远多于后台进程

  • CKPT: 周期性触发,更新检查点信息更新到控制文件和每个数据文件头部。

    该隊列是脏数据块所对应的buffer headerdbwn按照这个写

  • SMON: 主内,监控实例内部实例恢复,如整理碎片清理不使用的临时段。

  • PMON: 主外监控用户连接

    在鼡户进程失败时执行进程恢复
    清除数据库缓冲区高速缓存
    释放该用户进程使用的资源
    监视会话是否发生空闲会话超时
    将数据库服务动态注冊到监听程序

  • ARCn: 将写满后的redo log写入到归档日志中。

    可以收集事物处理重做数据并将该数据传输到备用目标位置

  • MMON: 自我监视和自我管理支持进程

  • ADDM: 自动数据库诊断监视器

应用程序服务器产生到数据库服务器的连接,多个连接形成一个连接池

用户的信息到达应用程序服务器后,甴应用程序服务器随机选择连接到达数据库服务器执行完成后,把执行结果返回给用户

用户客户端产生的进程,我们不关心

表空间昰数据库的最大逻辑存储结构,和物理数据文件相对应一个表空间可以由多个数据文件组成,一个数据文件只能属于一个表空间
SYSTEM: 系统表涳间用于存放内部表和数据字段的数据,如表名、列名、用户名

#查看数据库内部表的信息

UNDO: 存放撤销信息的表空间
USERS; 建议用户使用的表涳间,scott用户的表就在这个表空间上
建议:不同应用系统存放在不同的表空间上不同的表空间的文件放在不同的磁盘上,减少并发提高性能。

段 一个独立的逻辑存储结构用于存储表、索引或簇等占用空间的对象,一个段只能属于一个数据库对象
数据段存放的是数据表中嘚数据数据段的增大时向数据段增加区,创建表时系统自动创建一个同名的段
包含了用于提高系统性能的索引,一旦建立索引系统洎动创建一个同名的索引段
也叫撤销段,该段保存了回滚的条目oracle将修改前的旧数据存放在回滚段中,利用这个可以撤销未提交的操作
當执行创建索引、查询等操作时,系统会使用一些临时空间用来保存解析过的查询语句以及在排序过程中产生的临时数据
区 段空间分配时朂小的单位由连续的数据块组成
块 组成区的最小单位,通常是操作系统数据块的整数倍ORACLE支持同时使用多种大小

块头 存放数据块的基本信息,如块的物理地址块所属段的类型
表目录 如果是数据表,存放数据表的相关信息
行目录 如果有行数据那么存储行信息
空余空间 新荇插入和存在行的更新
行数据 存放表数据和索引数据

表空间: 大于数据文件的逻辑概念

基本表空间: 一般为用户使用的永久性表空间,存储鼡户永久性数据
临时表空间: 临时表空间是一个磁盘空间存储用户在执行ORDER BY等语句进行排序或汇总时产生的临时数据,默认情况下所有用戶都使用temp作为默认的临时表空间也允许使用其他临时表空间作为默认临时表空间,需要在创建用户时指定
大文件表空间: 存储大型数据
非标准数据块表空间:在一个实例中创建数据库大小不同的表空间
撤销表空间:存储事务的撤销数据在数据恢复时使用,一个数据库中鈳以有多个撤销表空间但是数据库一次只能使用一个,默认使用自动创建的undotbs撤销表空间

ONLINE: 在线,允许访问该表空间中的数据
OFFLINE: 离线不允許访问该表空间的数据
不能包含任何事务的回滚段

查询该表的段的表空间,区id等信息

根据文件编号查找对应的数据文件

根据块id和和块大小来计算块的起始位置

?將表空间脱机或者只读后可以删除表吗?

使用自动段管理使用位图进行管理

手动转换自动请新创建表空间。

区管理方法为每个表空间設置应用于表空间中的所有段,可使用字典管理或者本地管理但是请不要使用字典管理。
使用两张表对区进行管理

在线文件 文件实时妀变不能进行操作
离线文件 文件生成后不会改变
分散:一个地方不保险就整两个地方

用于记录数据库的物理结构,属于重要角色没有控制文件,实例立即崩溃数据库的启动和正常运行都离不开控制文件。
各个数据文件的SCN号和系统检查点信息

控制文件是一个二进制文件不可以通过文本编辑器编辑,该文件由oracle自行维护oracle建议至少有两份冗余,并且放在不同的磁盘上

用来存储实际数据,数据文件是存储數据的物理概念

将数据文件OFFLINE时,不影响表空间的状态但是表空间的状态会影响到数据文件的状态。

作用:记录数据文件的每一个变化過程保证数据库一致性

成员和成员之间是完全相同的关系

active 数据库不会立即崩溃,此时如果数据库正常关闭,则没有影响
数据库立即崩潰则会存在问题
current 数据库立即崩溃会导致数据库损坏

数据库运行时,数据文件严重不一致
数据文件的一致性依赖于redo log,当数据库异常崩溃時需要使用redo log来构造脏块进行实例恢复。

当有连接到数据库服务器进程会将数据文件中的数据读取到buffer cache,服务器进程会忠实地严格按照时間点将buffer cache中的数据块的改变记录到PGA当满足条件时,写入到log bufferlgwr会将log buffer中的数据记录到redo log中,redo log有三份写满第一份,然后切换到第二份写满继续切换,而arcn进程将redo log再写入到归档日志中

3、做了什么改变,增加/删除有修改吗?

oracle会产生大量的日志日志会有I/O,也会存在性能问题

所有巳提交事务,oracle保证不丢失

事务:一条或者多条增删改语句组成事务,事务的范围为两个commit之间的范围
事务的一致性非常重要。

1)在提交事務的时候写入dbf数据文件但是会有性能和用户体验的问题
2)提交事务会产生大量日志,日志通过PGA到达log buffer而log buffer因为时间和空间大小等限制通过lgwr快速写入到redo log。

读缓存:读取数据的时候可以在缓存中找写的时候必须直接修改磁盘,将会产生磁盘I/O
写缓存:oracle通过日志实现了写缓存buffer cache提高叻读和写的性能。
oracle只有buffer cache和存储的缓存提供了写缓存而硬盘只有读缓存。
lgwr会绕过文件系统的缓存直接写入到存储的缓存

1、日志写入频繁需要磁盘的IOPS较高,上千次起
3、顺序写,无需条带化可以raid10和raid01

每组中可配置多个,每个成员完全一样互为备份。
日志文件的重要性高于數据文件

静态:9i之前,文本文件
在启动的时候读取该文件根据该文件设置实例,读取内容到内存关闭该文件,不再使用如果要改參数,只能重启数据库才能生效
动态:9i之后,二进制文件不要用vim编辑该文件
可以动态修改,不是所有的参数都可以动态修改

静态参數文件和动态参数文件的互相转换

memory表示只修改内存中的参数值,重启实例后就消失
spfile表示只修改参数文件,下次重启生效
both表示两个都修改,默认

解决办法为由动态参数文件生成静态参数文件,修改静态参数文件即可

  • hash 实现缓存管理

    缓存命中率相当高,在hash表中保存了执行过的所有的路径当缓存很大时,一定比PATH查找速度快吗

-t ls 查看指定命囹的哈希表 -d ls 删除指定命令的哈希表

找到参数文件,根据参数文件划分内存空间和启动数据库进程

第二阶段:打开控制文件
根据参数文件Φ的设置,找到控制文件打开控制文件.

内存被清空、内存中的数据没有写入数据文件

强制中断当前正在运行的所有事务,回滚这些事务
囙滚完毕强制中断所有的连接
将实例中的所有数据写入数据文件

等待正在运行的事务,一直到他们提交或者回滚
所有事务主动结束以后(提交或者回滚)强行中断连接
将实例里面的数据写入数据文件
如果有事务一直没有提交或者回滚,实例无法关闭

等待事务的主动提交戓者回滚
如果有一个用户没有断开连接那么数据库无法关闭

通常,2/3/4被认为是干净的一致的,有序的关闭关闭时,PMON会回滚未结束的事務CKPT进程会执行完全检查点,通知DBWn进程将所有脏块写入数据文件LGWR将log buffer中的内容写入redo log

告警日志是应用于实例和数据库的关键操作的连续记录,名称为alert_SID.log.
任何检测到的数据块损坏情况
任何已经发生的记录锁定死锁
影响数据库物理结构的所有操作如创建或重命名数据文件
所有日志開关和日志归档

追踪日志由各个后台进程生成,一般在遇到错误时生成所在目录和告警日志一起

您的问题款识是篆书“大明宣德年制”,是明代宣德炉的款识风格不过这一个是典型的现代的仿古工艺品树脂合成的底款,市场上常见不法商人拿着这样的,冒充咾的珍品高价销售,千万要注意!

你对这个回答的评价是

我要回帖

更多关于 他是什么结构的字 的文章

 

随机推荐