oracle学习笔记(2)-基本术语
oracle基本术语
先上图。
相当粗糙的一个图,可能有些地方不够精细,大致结构基本是对的。
逻辑结构上从大到小的依次为文件(file)->表空间(tablespace)->段(segment)->区(extent)->块(block)。
先说一个单独的,也是用户经常用到的,叫数据字典。
数据字典
数据字典是数据库的重要组成部分,可以看作是一组视图,存放了oracle表、表空间、用户等所有相关信息,用户可以通过sql语句访问这些视图。
附上常用的dba视图:
视图名称 |
描述 |
dba_data_files |
关于数据库文件的信息 |
dba_db_links |
数据库中的所有数据库链路 |
dba_extents |
数据库中包括所有分区 |
dba_free_space |
所有表空间中自由分区 |
dba_indexes |
数据库中所有索引的描述 |
dba_ind_columns |
在所有表及聚族上压缩索引的列 |
dba_objects |
数据库中所有的对象 |
dba_rollback_segs |
回滚段的描述 |
dba_segments |
为所有数据库段分配的存储空间 |
dba_sequences |
数据库中所有顺序书的描述 |
dba_synonyms |
数据库中所有同义词 |
dba_tables |
数据库中所有表的描述 |
dba_tablespaces |
数据库中所有表空间的描述 |
dba_tab_columns |
所有表描述、视图以及聚族的列 |
dba_tab_grants |
数据库中对象所授的权限 |
dba_tab_privs |
数据库中对象所授的权限 |
dba_ts_quotas |
所有用户表空间限额 |
dba_users |
关于数据库的所有用户信息 |
dba_views |
数据库中所有视图 |
数据文件
数据文件是存放oracle数据库数据的物理文件,一个表空间有一个或多个数据文件,创建表空间的时候,需要指定数据文件名称及存放路径,可以设定数据文件的大小及自增大小。
oracle数据库有内存存储区,相当于一个缓冲区,可以读取或写入数据,减少读写数据文件的次数,提高效率,减少IO。当更新表数据的时候,会先写入到内存存储区里,由后台进程DBWR决定何时写入到数据文件。
控制文件
控制文件是oracle中一个二进制文件,记录着整个oracle数据库的物理结构,如数据库名称、建立日期、日志相关信息、数据文件相关信息、备份相关信息等。
创建数据库的时候,控制文件随之建立,并且在整个数据库使用过程中一直保持可读写状态,当数据库的物理组成发生更改时,控制文件也会更新。
一旦控制文件发生损坏,数据库便不能正常访问,而且数据的恢复也需要控制文件,因此控制文件的维护及备份非常重要。
日志文件
日志文件也叫重做日志文件(redo log file),记录了数据库的所有修改信息,包括数据结构及数据内容,因此,日志文件是数据库安全及数据恢复的保证。
日志文件在数据库出现故障时使用,一个数据库至少有两个日志文件组,每个日志文件组中有一个或多个日志成员。日志的模式,有归档日志(ARCHIVELOG)和非归档日志(NOARCHIVELOG)两种。
访问数据字典V$LOG,可以确定当前数据库系统使用的重做日志文件组;
访问数据字典V$LOGFILE,可以确定使用的日志成员;
访问数据字典V$DATABASE,可以确定运行在何种日志模式下;
访问数据字典V$LOG_HISTORY,查看历史日志信息。
每当对数据库进行一次修改时,日志文件里就会新增一条重做记录(重做条目),这条重做记录里包含了多个变更向量,记录了所有修改过的数据块,当进行数据恢复时,oracle会读取所有变更向量,还原相关数据。
表空间(tablespace)
表空间是一个逻辑容器,是oracle数据库最大的逻辑结构,可以想象成文件夹,将不同用户或不同功能的对象分隔开来。
数据库建立的时候,会包含SYSTEM,SYSAUX,TEMP三个默认的表空间,一个或多个临时表空间,一个撤销表空间和多个应用程序专用表空间。
在新建表空间的时候,需要指定表空间的类型。
表空间类型:
- 永久表空间
- 永久表空间是存放永久性数据。除了撤销表空间外,相较于临时表空间,其他的都属于永久表空间。
- 系统表空间
- 系统表空间是随数据库建立的,包括SYSTEM和SYSAUX,存放数据字典等。
- 临时表空间
- 临时表空间用于存放查询过程中进行排序、分组、计算等数据,用完之后立即释放。
- 撤销表空间
- oracle9i之后,提供了撤销表空间,之前是用回滚段进行管理的;
- 有自动撤销管理SMU(System Managed Undo)和手工撤销管理RBU(Rollback Segment Undo)两种方式,SMU采用撤销表空间管理,RBU采用回滚段管理;
- 数据库只能采用一种管理方式,oracle11g默认使用的是SMU管理方式,需要在数据库中创建一个撤销表空间;
- 更改参数UNDO_MANAGEMENT来切换管理方式,值为AUTO时为SMU,值为MANUAL为RBU。
- 大文件表空间和小文件表空间
- 大文件表空间是从oracle10g开始,专门为超大型数据库设计的,避免有上千个数据文件,导致更新数据文件头效率过低;
- 默认创建的表空间均为小文件表空间。
表空间状态,可以分为读写(Read-Write)、只读(Read-Only)和脱机(Offline)状态,通过ALTER tablespace tablespace_name read only来改变表空间状态。
段(segment)
段用于存储表空间中某一种特定的具有独立存储结构的对象的所有数据,包含一种指定类型的逻辑存储结构。
oracle以数据区为单位为段分配空间,当一个段满的时候,再分配另一个数据区,段物理上可以不连续,可以跨数据文件。
根据特性和用途不同,段可分为几种:
- 数据段
- 数据段用于存放表数据,建表后便建立一个数据段,与表同名,有多少个表就有多少个数据段。
- 索引段
- 索引段用于存放索引,创建索引后便建立一个索引段,与索引同名,有多少个索引就有多少个索引段。
- 临时段
- 临时段用于存放排序、分组、计算等产生的临时数据,随用随建,用完即删。
- 回滚段
- 回滚段用于存放修改之前的数据,在进行回滚时,利用回滚段恢复之前的数据。
区(extent)
区是oracle最小的存储分配单位,由物理上连续的块构成。多个区组成段。
数据块(block)
数据块是最小的数据管理单位,也是执行输入输出的最小单位,为操作系统块的整数倍。(操作系统块是操作系统执行输入输出的最小单位)
数据块可以存放各种类型的单据,但是所有数据块的结构是一样的,都是由几部分组成:
块头部:包含一般的属性信息,如块的物理地址,块所属的段的类型等。
表目录:如果存储的是表数据,则存储该表的相关信息。
行目录:存储的有效的行信息。
空闲空间:块中尚未使用的空间。
行空间:已经使用的块空间,包含了实际的数据。
oracle学习笔记(2)-基本术语的更多相关文章
- Oracle学习笔记三 SQL命令
SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)
- oracle学习笔记第一天
oracle学习笔记第一天 --oracle学习的第一天 --一.几个基础的关键字 1.select select (挑选) 挑选出显示的--列--(可以多列,用“,”隔开,*表示所有列),为一条 ...
- Oracle学习笔记——点滴汇总
Oracle学习笔记——点滴汇总 http://www.botangdb.com/ Oracle GI = Grid Infrastructure = ASM + Cluster
- Oracle学习笔记之四sp1,Oracle 11g的常用函数
从Oracle学习笔记之四,SQL语言入门中摘出来的,独立成一章节 3.1 字符类函数 ASCII(c)和CHR(i) 分别用于返回一个字符的ASCII码和返回给定ASCII值所对应的字符. C ...
- Oracle学习笔记之四,SQL语言入门
1. SQL语言概述 1.1 SQL语言特点 集合性,SQL可以的高层的数据结构上进行工作,工作时不是单条地处理记录,而对数据进行成组的处理. 统一性,操作任务主要包括:查询数据:插入.修改和删除数据 ...
- Oracle学习笔记—数据字典和常用命令(转载)
转载自: oracle常用数据字典和SQL语句总结 Oracle常用命令大全(很有用,做笔记) 一.Oracle数据字典 数据字典是Oracle存放有关数据库信息的地方,其用途是用来描述数据的.比如一 ...
- oracle学习笔记(一)用户管理
--oracle学习第一天 --连接 @后面连接数据库实例,具体连接到那个数据库 conn scott/tiger@MYORA1; --修改密码 passw; --显示用户 show user; -- ...
- 吴裕雄--天生自然 oracle学习笔记:oracle理论学习详解及各种简单操作例子
1. 数据库的发展过程 层次模型 -->网状模型 -->关系模型 -->对象关系模型 2. 关于数据库的概念 DB:数据库(存储信息的仓库) DBMS:数据库管理系统(用于管理数据库 ...
- 【Oracle学习笔记-2】Oracle基础术语解析
来自为知笔记(Wiz) 附件列表 Oracle概念解析.png 表空间.png 大小关系.png 段segment.png 块block.png 区entent.png 数据库基本概念.png
随机推荐
- PXC5.7集群部署
PXC三节点安装: node1:10.157.26.132 node2:10.157.26.133 node3:10.157.26.134 配置服务器ssh登录无密码验证 ssh-keygen实现 ...
- 简易版DES加密和解密详解
在DES密码里,是如何进行加密和解密的呢?这里采用DES的简易版来进行说明. 二进制数据的变换 由于不仅仅是DES密码,在其它的现代密码中也应用了二进制数据,所以无论是文章还是数字,都需要将明文变换为 ...
- 使用CSS和JQuery实现表格单元格内容超出时部分隐藏,隐藏部分以...显示
1.使用CSS实现,给此单元格添加一个Class: width:130px; display:block; overflow:hidden; word-break:keep-all; white-sp ...
- lightOJ 1017 Brush (III) DP
题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1017 搞了一个下午才弄出来,,,,, 还是线性DP做的不够啊 看过数据量就知道 ...
- Java学习笔记——浅谈数据结构与Java集合框架(第二篇、Queue、Set)
江南好,何处异京华. 香散翠帘多在水,绿残红叶胜于花.无事避风沙. --<纳兰词> 诗词再好,大图不能忘 上大图: 先说说栈和队列: 栈就好比手枪的弹匣,你往里面压入子弹,最先压入的子弹就 ...
- HTML head头部标签总结
HTML head 头部分的标签.元素有很多,涉及到浏览器对网页的渲染,SEO 等等,而各个浏览器内核以及各个国内浏览器厂商都有些自己的标签元素,这就造成了很多差异性.移动互联网时代,head 头部结 ...
- Linux下非root用户安装软件的一般流程:
1. 获取源代码,一般是wget方式,ubuntu可以使用apt-get source来获取源代码. 2. 解压源代码,一般使用tar -zxvf xxx.tar.gz即可 3. 切换到解压后的目录, ...
- OBS实现直播解决方案【html实现直播】
项目的需要,要整一个视频直播,但又不想在其他平台那种直播室盗链展示,那我就直接用播放器来实现rtmp流媒体服务器推流吧!没废话,走起 1.你要有一个媒体服务器,暂时用[盘古云],这个还好,算是不错的平 ...
- Mac电脑如何搭建php环境,并且开发php.
这篇文章主要介绍了Mac下搭建php开发环境教程,Mac OS X 内置了Apache 和 PHP,这样使用起来非常方便.本文以Mac OS X 10.12.4为例,需要的朋友可以参考下! Mac O ...
- (中级篇 NettyNIO编解码开发)第八章-Google Protobuf 编解码-1
Google的Protobuf在业界非常流行,很多商业项目选择Protobuf作为编解码框架,这里一起回顾一下Protobuf 的优点.(1)在谷歌内部长期使用,产品成熟度高:(2)跨语言,支持 ...