Oracle学习笔记--第2章 oracle 数据库体系结构
第2章 oracle 数据库体系结构
目录:
—————————————
—————————————
2.1---------------------------------------------------- 物理存储结构----------------------------------------------------------------
Oracle数据库在物理上由3中类型的文件组成:数据文件(.dbf), 控制文件(.ctl), 重做日志文件(.log);
2.1.1数据文件:存储数据库数据的文件。包括表的记录和索引等,若被频繁访问,则存储在内存缓冲区。
特点:一个表空间由一个或多个数据文件组成。
一个数据文件只对应一个数据库,一个数据库包括多个数据文件。
数据文件可设置自动扩展参数,实现自动扩展的功能。
数据文件的数据字典:dba_data-file 和 v$datafile(记录数据文件动态信息)
dba_data-file主要字段如下:
* file_name:数据文件名称,路径。
* file_id: 数据文件在数据库中的id号
* tablespace_name:数据文件表空间名
* bytes:数据文件大小
* blocks:所占块数
* status: 数据文件状态
* autoextensible: 是否可扩展
v$datafile主要字段如下:
* file#:存放数据文件编号
* status:数据文件状态
* checkpoint#:数据文件同步号,随系统的运行自动修改,以维持所有数据文件的同步。
* bytes: 数据文件大小
* block:数据文件所占数据块数
* name:数据文件名称,路径。
提示:数据字典字段的查看方法 describe/desc + 数据字典:如 desc v$datafile;
例子1-dba_data-file:
以system用户登录进oracle之后:
SQL> column file_name format A50;
SQL> column tablespace_name format A50;
SQL> select file_name,tablespace_name,autoextensible from dba_data_file where tablespace_name ='SYSTEM';
(注意:"tablespace_name ='SYSTEM' "中,SYSTEM 这个用户名要大写)
例子2-v$datafile:
SQL> column name format A50;
SQL> select file#,name,checkpoint_change# from v$datafile;
2.1.2控制文件:很小的二进制文件,用于描述和维护数据库的物理结构,存放有数据库文件盒控制文件的信息,很重要。
一旦控制文件受损,数据库可能无法正常运行
SQL> column name format A50;
SQL> select name from v$controlfile;
运行效果跟前面类似,这里不列举效果图。
Oracle一般默认创建3个相同的控制文件,来保证数据库可及时调用其他备用控制文件继续工作。
2.1.3重做日志文件:记录数据库中所有修改信息的文件,简称“日志文件”
其中,修改信息,包括数据的修改和数据库结构的修改。而查询 ,不会记录到日志文件中。
日志文件是数据库系统最最重要的文件之一,它可以保证数据库的安全,是进行数据库备份和恢复的重要手段
一旦日志文件受损,数据库可能无法正常运行
工作方式:数据库出现修改信息时,修改后的信息首先存储到内存的 日志缓冲区 中,对应的日志信息则存储在日志缓冲区,一定数量时,由Oracle后台进程LGWR将日志写到日志文件中。
提交修改信息后,数据文件只保留修改后的数据,而日志文件中,既保留修改后,也保留修改前的数据,以备数据恢复。so,日志文件这么重要,自然有多份。
实际应用中,允许对日志文件进行镜像,日志文件与镜像文件构成一个 日志文件组,一个组中的日志文件最好放在不同磁盘。镜像最多5个。
当所有日志文件组空间填满后,系统重新切换到第一个日志文件组,切换时,组中已有的日志信息是否覆盖,取决于十几块的运行模式。(归档/非归档模式,如果是归档,则先写到归档日志文件中,再被新内容覆盖;如果非归档模式,则直接覆盖)
2.1.4其他文件:参数文件,备份文件,归档重做日志文件,警告、跟踪日志文件。
参数文件:记录oracle数据库基本参数,包括文本参数文件(Parameter File, PFILE),服务器参数文件(Server Parameter File, SPFILE)
备份文件:文件受损失,可借助备份文件进行修复。还原过程,就是备份文件替换该文件的过程。
归档重做日志文件:用于对写满的日志文件进行复制并保存,由归档进程ARCn实现,该进程负责将写满的重做日志文件复制到归档日志目标中。
警告、跟踪日志文件:当一个进程发现了一个内部错误,将错误信息存到它的跟踪文件中。警告文件则是一种特殊的跟踪文件,它包含错误事件的说明,随之产生的跟踪文件则记录该错误的详细信息。
2.2---------------------------------------------------- 逻辑存储结构----------------------------------------------------------------
从逻辑结构上,oracle包括:表空间--段--区--数据块。
2.2.1表空间(Tablespace)
表空间是Oracle中最大的逻辑存储结构,它与物理上的一个或多个数据文件相对应,每个Oracle数据库都至少拥有一个表空间,表空间的大小等于构成该表空间的所有数据文件大小的总和。表空间用于存储用户在数据库中创建的所有内容。
在安装Oracle时,Oracle数据库系统一般会自动创建一系列表空间(如system)。可以通过数据字典dba_tablespaces查看表空间的信息
例子3-通过数据字典dba_tablespace查看当前数据库的所有表空间名称:
SQL> select tablespace_name from dba_tablespaces;
以上结果,显示6个表空间。
表空间 | 说明 |
sysaux |
辅助系统表空间。用于减少系统表空间的负荷,提高系统的作业效率。该表空间由Oracle系统内部自动维护,一般不用于存储用户数据 |
system |
系统表空间,用于存储系统的数据字典、系统的管理信息和用户数据表等 |
temp | 临时表空间。用于存储临时的数据,例如存储排序时产生的临时数据。一般情况下,数据库中的所有用户都使用temp作为默认的临时表空间。临时表空间本身不是临时存在的,而是永久存在的,只是保存在临时表空间中的段是临时的。临时表空间的存在,可以减少临时段与存储在其他表空间中的永久段之间的磁盘I/O争用 |
undotbs1 |
撤消表空间。用于在自动撤消管理方式下存储撤消信息。在撤消表空间中,除了回退段以外,不能建立任何其他类型的段。所以,用户不可以在撤消表空间中创建任何数据库对象 |
users |
用户表空间。用于存储永久性用户对象和私有信息 |
2.2.2段(Segment)
段是一组盘区,组成了被oracle视为一个单位的数据库对象,如表或索引。so,段,是数据库终端用户将处理的最小存储单位。段满,oracle分配另一数据区,段的数据区在磁盘上可不连续。
段,分为:数据段.索引段.临时段.回退段
2.2.3区(Extent)
2.2.4数据块(Block)

2.3---------------------------------------------------- Oracle进程----------------------------------------------------------------
2.3.1 DBWn进程
2.3.2 LGWR进程
2.3.2 CKPT进程
2.3.4 SMON进程
2.3.5 PMON进程
2.3.6 ARCn进程
2.3.7 RECO进程

SQL> show parameter sga_max_size;
如果没有指定sga_max_size参数,而是指定了sga_target,oracle会自动调整SGA区域的内存大小,使总量等于sga_target的值。
SQL> show parameter db_cache_size;
SQL> show parameter log_buffer;
SQL> show parameter shared_pool_size;
SQL> show parameter large_pool_size;
SQL> show parameter java_pool_size;
2.5---------------------------------------------------- 数据字典 ----------------------------------------------------------------
表空间 | 说明 |
User视图 |
USER视图的名称以user_为前缀,用来记录用户对象的信息。例如user_tables视图,它记录用户的表信息 |
ALL视图 |
ALL视图的名称以all_为前缀,用来记录用户对象的信息以及被授权访问的对象信息。例如all_synonyms视图,它记录用户可以存取的所有同义词信息 |
DBA视图 |
DBA视图的名称以dba_为前缀,用来记录数据库实例的所有对象的信息。例如dba_tables视图,通过它可以访问所有用户的表信息 |
V$视图 |
V$视图的名称以v$为前缀,用来记录与数据库活动相关的性能统计动态信息。例如v$datafile视图,它记录有关数据文件的统计信息 |
GV$视图 |
GV$视图的名称以gv$为前缀,用来记录分布式环境下所有实例的动态信息。例如gv$lock视图,它记录出现锁的数据库实例的信息 |
字典名称 |
说 明 |
dba_tables |
所有用户的所有表的信息 |
dba_tab_columns |
所有用户的表的字段信息 |
dba_views |
所有用户的所有视图信息 |
dba_synonyms |
所有用户的同义词信息 |
dba_sequences |
所有用户的序列信息 |
dba_constraints |
所有用户的表的约束信息 |
dba_indexes |
所有用户的表的索引简要信息 |
dba_ind_columns |
所有用户的索引的字段信息 |
dba_triggers |
所有用户的触发器信息 |
dba_sources |
所有用户的存储过程信息 |
dba_segments |
所有用户的段的使用空间信息 |
dba_extents |
所有用户的段的扩展信息 |
dba_objects |
所有用户对象的基本信息 |
cat |
当前用户可以访问的所有基表 |
tab |
当前用户创建的所有基表、视图和同义词等 |
dict |
构成数据字典的所有表的信息 |
数据库组件 |
数据字典中的表或视图 |
说 明 |
数据库 |
v$datafile |
记录系统的运行情况 |
表空间 |
dba_tablespaces |
记录系统表空间的基本信息 |
dba_free_space |
记录系统表空间的空闲空间的信息 |
|
控制文件 |
v$controlfile |
记录系统控制文件的基本信息 |
v$controlfile_record_section |
记录系统控制文件中记录文档段的信息 |
|
v$parameter |
记录系统各参数的基本信息 |
|
数据文件 |
dba_data_files |
记录系统数据文件以及表空间的基本信息 |
v$filestat |
记录来自控制文件的数据文件信息 |
|
v$datafile_header |
记录数据文件头部分的基本信息 |
|
段 |
dba_segments |
记录段的基本信息 |
数据区 |
dba_extents |
记录数据区的基本信息 |
日志 |
v$thread |
记录日志线程的基本信息 |
v$log |
记录日志文件的基本信息 |
|
v$logfile |
记录日志文件的概要信息 |
|
归档 |
v$archived_log |
记录归档日志文件的基本信息 |
v$archive_dest |
记录归档日志文件的路径信息 |
|
数据库实例 |
v$instance |
记录实例的基本信息 |
v$system_parameter |
记录实例当前有效的参数信息 |
|
内存结构 |
v$sga |
记录SGA区的大小信息 |
v$sgastat |
记录SGA的使用统计信息 |
|
v$db_object_cache |
记录对象缓存的大小信息 |
|
v$sql |
记录SQL语句的详细信息 |
|
v$sqltext |
记录SQL语句的语句信息 |
|
v$sqlarea |
记录SQL区的SQL基本信息 |
|
后台进程 |
v$bgprocess |
显示后台进程信息 |
v$session |
显示当前会话信息 |
视图名称 |
说 明 |
v$fixed_table |
显示当前发行的固定对象的说明 |
v$instance |
显示当前实例的信息 |
v$latch |
显示锁存器的统计数据 |
v$librarycache |
显示有关库缓存性能的统计数据 |
v$rollstat |
显示联机的回滚段的名字 |
v$rowcache |
显示活动数据字典的统计 |
v$sga |
显示有关系统全局区的总结信息 |
v$sgastat |
显示有关系统全局区的详细信息 |
v$sort_usage |
显示临时段的大小及会话 |
v$sqlarea |
显示SQL区的SQL信息 |
v$sqltext |
显示在SGA中属于共享游标的SQL语句内容 |
v$stsstat |
显示基本的实例统计数据 |
v$system_event |
显示一个事件的总计等待时间 |
v$waitstat |
显示块竞争统计数据 |
Oracle学习笔记--第2章 oracle 数据库体系结构的更多相关文章
- java JDK8 学习笔记——第16章 整合数据库
第十六章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API中的接口会有数据库厂商操作,称为JDBC驱动程 ...
- Oracle学习笔记之四sp1,Oracle 11g的常用函数
从Oracle学习笔记之四,SQL语言入门中摘出来的,独立成一章节 3.1 字符类函数 ASCII(c)和CHR(i) 分别用于返回一个字符的ASCII码和返回给定ASCII值所对应的字符. C ...
- Oracle涂抹oracle学习笔记第9章RMAN说,我能恢复
RMAN中的恢复对应两个操作:数据库修复(restore)和数据库恢复(recover) 数据库修复(restore):是指利用备份集的数据文件来替换已经损坏的数据库文件或者将其恢复到一个新的位置.R ...
- Oracle学习笔记之二,Oracle 11g体系结构
Oracle 11g体系结构概述 实例(Instance),是指一组Oracle后台进程以及在服务器中分配的共享内存区域: 数据库(Database),是由基于磁盘的数据文件.控制文件.日志文件.参数 ...
- Oracle涂抹oracle学习笔记第8章RMAN说,我能备份
本次测试服务器为172.16.25.33 使用rman连接本地数据库 rman target / 在rman中执行启动与关闭的命令与sqlplus相同 在rman中执行sql语句 sql ‘需要执行的 ...
- Oracle涂抹oracle学习笔记第10章Data Guard说,我就是备份
DG 是备份恢复工具,但是更加严格的意义它是灾难恢复 Data Guard是一个集合,由一个Primary数据库及一个或者多个Standby数据库组成,分两类逻辑Standby和物理Standby 1 ...
- oracle学习笔记(十四) 数据库对象 索引 视图 序列 同义词
数据库对象 用户模式:指数据库用户所创建和存储数据对象的统称.在访问其它用户模式的数据库对象时需加上用户模式. 如:scott.emp, scott.dept等. 数据库对象包括:表.视图.索引.序列 ...
- oracle学习笔记(十四) 数据库对象 索引 视图 序列 同义词
数据库对象 用户模式:指数据库用户所创建和存储数据对象的统称.在访问其它用户模式的数据库对象时需加上用户模式. 如:scott.emp, scott.dept等. 数据库对象包括:表.视图.索引.序列 ...
- Oracle学习笔记--第3章 使用sql*plus工具
使用sql*plus工具 1.sqlplus连接方式示例 sqlplus system/123[as sysdba]; 2.查看表结构命令;desc[ribe] e.g. desc scot ...
随机推荐
- iiiLab提供的视频解析接口如何使用?转发个简单的使用教程
iiiLab除了提供免费的在线视频解析下载工具,还提供了视频解析接口供有需要的个人和公司调用. iiiLab目前已支持解析下载今日头条.西瓜视频.内涵段子.微博.秒拍.小咖秀.晃咖.火山.快手.抖音. ...
- 原生js的ajax请求
传统方法的缺点: 传统的web交互是用户触发一个http请求服务器,然后服务器收到之后,在做出响应到用户,并且返回一个新的页面,,每当服务器处理客户端提交的请求时,客户都只能空闲等待,并且哪怕只是一次 ...
- Java NIO 机制分析(一) Java IO的演进
一.引言 Java1.4之前的早期版本,Java对I/O的支持并不完善,开发人员再开发高性能I/O程序的时候,会面临一些巨大的挑战和困难,主要有以下一些问题: (1)没有数据缓冲区,I/O性能存在问题 ...
- JMS学习(八)-ActiveMQ Consumer 使用 push 还是 pull 获取消息
ActiveMQ是一个消息中间件,对于消费者而言有两种方式从消息中间件获取消息: ①Push方式:由消息中间件主动地将消息推送给消费者:②Pull方式:由消费者主动向消息中间件拉取消息.看一段官网对P ...
- 尚硅谷spring_boot课堂笔记
尚硅谷spring_boot课堂笔记
- C# 时间戳与时间相互转化
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace 时间戳d ...
- W3C规范
连接:https://www.w3cschool.cn/xuexiw3c/xuexiw3c-standards.html W3C 代码标准规范 由 路飞 创建, 最后一次修改 2017-01-03 W ...
- extern的作用
#include <stdio.h>extern int a;static int a;extern int b;int b;static int c;extern int c;
- 课程4:黑马程序员_spring2.5视频教程--视频列表
\黑马程序员_spring2.5视频教程\01Struts相关基础理论介绍.mp4; \黑马程序员_spring2.5视频教程\02搭建struts开发环境.mp4; \黑马程序员_spring2.5 ...
- WPS 表格筛选两列相同数据-完美-2017年11月1日更新
应用: 1.选出A列中的数据是否在B列中出现过: 2.筛选出某一批序号在一个表格里面的位置(整批找出) 3.其实还有其他很多应用,难描述出来... ... A列中有几百的名字,本人想帅选出B列中的名字 ...