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 ...
随机推荐
- CodeChef - AMLEX-Poetic word
题目链接 Dhinwaji is an acclaimed poet and likes to play with words and letters. He has bought some sti ...
- jQuery 选择城市,显示对应的即时时区时间
因客户需要,我们CRM系统中,jQuery 弄个时区插件 如图: HTML: <div id="cityDate"> <i class="P_arrow ...
- 使用 Parallel LINQ 进行数据分页
a) 第一种[耗时11~18s],这种查询方式并不是很优化,但是目前也没有想到更好的方式,除了创建一张中间表,是不是可以使用[全文索引]? SELECT * FROM ( SELECT ROW_ ...
- Linux 创建 时间命名 文件
创建以 时间 命名文件:: touch /logs/`date +%Y-%m-%d_%d_%H:%M`.log touch "$(date +%Y-%m-%d_%H:%M:%S.TXT)
- Linux - 文件操作
touch file # 创建空白文件 rm -rf 目录名 # 不提示删除非空目录(-r:递归删除 -f强制) dos2unix # windows文本转linux文本 unix2dos # lin ...
- Python数据分析学习目录
python数据分析学习目录 Anaconda的安装和更新 矩阵NumPy pandas数据表 matplotlib-2D绘图库学习目录
- CF1009E [Intercity Travelling]
这道题先考虑一种暴力n方做法 设\(f_i\)表示到\(i\)点所有情况的困难度之和(\(f_0=0\)),\(pre_i=\sum_{j=1}^{i} a_j\) 考虑从点\(j\)中途不经过休息站 ...
- 计算正多边形的面积 Gym - 101840G
http://codeforces.com/gym/101840/attachments 题目大意:输入n,r,k .n代表往外扩张几次,r代表圆的内接圆半径,k代表多边形的边长.问你每次扩张多边形和 ...
- android studio 清空缓存插件
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2016/0308/4036.html 一个提高开发效率的ADB插件:ADB IDEA 泡在 ...
- CentOS7配置网络
#进入目录 cd /etc/sysconfig/network-scripts/ #编辑ifcfg-XXX vi ifcfg-eno167777 #把onboot=no 改为yes #重启 shutd ...