数据库的物理结构和逻辑结构


 

    首先,你须要明白的一点是:数据库的物理结构是由数据库的操做系统文件所决定,每个Oracle数据库是由三种类型的文件组成:数据文件、日志文件和控制文件。数据库的文件为数据库信息提供真正的物理存储。     每个Oracle数据库有一个或多个物理的数据文件(data file)。一个数据库的数据文件包含所有数据库数据。逻辑数据库结构(如表、索引等)的数据物理地存储在数据库的数据文件中。数据文件一般为*.dbf格式,例如:userCIMS.dbf。数据文件有下列特征:①、一个数据文件仅与一个数据库联系;②、一旦创建,数据文件只增不减;③、一个表空间(数据库存储的逻辑单位)由一个或多个数据文件组成。     其次,咱们再来叙述一下Oracle的逻辑结构:Oracle的逻辑结构包括表空间(tablespace),段(segment),数据块(data block)以及模式对象(schema object)。     Oracle数据库在逻辑上是由多个表空间组成的,表空间在物理上包含一个或多个数据文件。而数据文件大小是块大小的整数倍;表空间中存储的对象叫段,好比数据段,索引段和回退段。段由区组成,区是磁盘分配的最小单位。段的增大是经过增长区的个数来实现的。每一个区的大小是数据块大小的整数倍,区的大小能够不相同;数据块是数据库中的最小的I/O单位,同时也是内存数据缓冲区的单位,及数据文件存储空间单位。块的大小由参数DB_BLOCK_SIZE设置,其值应设置为操做系统块大小的整数倍。    ⑴、表空间(tablespace)    表空间是数据库中最大的逻辑单位,每个表空间由一个或多个数据文件组成,一个数据文件只能与一个表空间相联系。每个数据库都有一个SYSTEM表空间,该表空间是在数据库建立或数据库安装时自动建立的,用于存储系统的数据字典表,程序系统单元,过程函数,包和触发器等,也可用于存储用户数据表,索引对象。表空间具备在线(online)和离线(offline)属性,能够将除SYSTME之外的其余任何表空间置为离线。    ⑵、段(segment)    数据库的段能够分为四类:数据段、索引段、回退段和临时段。    ⑶、区    区是磁盘空间分配的最小单位。磁盘按区划分,每次至少分配一个区。区存储与段中,它由连续的数据块组成。    ⑷、数据块    数据块是数据库中最小的数据组织单位与管理单位,是数据文件磁盘存储空间单位,也是数据库I/O的最小单位,数据块大小由DB_BLOCK_SIZE参数决定,不一样的Oracle版本DB_BLOCK_SIZE的默认值是不一样的。    ⑸、模式对象    模式对象是一种应用,包括:表、聚簇、视图、索引序列生成器、同义词、哈希、程序单元、数据库链等。     最后,在来讲一下Oracle的用户、表空间和数据文件的关系:    一个用户可使用一个或多个表空间,一个表空间也能够供多个用户使用。用户和表空间没有隶属关系,表空间是一个用来管理数据存储的逻辑概念,表空间只是和数据文件发生关系,数据文件是物理的,一个表空间能够包含多个数据文件,而一个数据文件只能隶属一个表空间。     数据库

总结一下:解释数据库、表空间、数据文件、表、数据的最好办法就是想象一个装满东西的柜子。数据库其实就是柜子,柜中的抽屉是表空间,抽屉中的文件夹是数据文件,文件夹中的纸是表,写在纸上的信息就是数据。安全

 

 

oracle物理结构和逻辑结构物理结构查看oracle数据库的物理文件路径必定要用命令查看,除非该数据库是你亲自安装,并作过全部的安全配置,不然很是有可能你的前任对数据库进行了更改,而在一不当心酿成大错。
    查看控制文件DESC v$controlfile查看控制文件的状态和名称(显示路径)SELECT status,name FROM v$controlfile;
    查看数据文件DESC v$datafile好比查看数据文件的文件号和状态SELECT file#,status,name FROM v$datafile;
    看日志文件DESC v$logfile查看日志文件路径信息SELECT member FROM v$logfile;
    Oracle的文件系统:控制文件(.CTL),数据文件(.DBF),日志文件(.LOG)
    这三种文件系统通常在如下路径能够找到:(默认安装路径)/u01/app/oracle/oradata/oracleSID
    除此三种文件还有一种参数文件,参数文件不是数据库系统中的有效组成部分,在启动数据库时,参数文件不直接参与工做,只是控制文件是由参数文件寻找的。参数文件位置:/u01/app/oracle/product/10.2.0/db_1/dbs/spfileorac leSID.ora控制文件的内容会显示在参数文件中。参数文件的做用起到寻找控制文件的做用。
    Oracle中有两种日志文件,一种为联机日志文件(重作日志文件),一种为归档日志文件。REDO01.LOG和REDO02.LOG,REDO03.LOG是典型的联机日志文件,特色是顺序写文件,写满后写下一个,写满第三个循环写第一个,而且覆盖掉不作备份。归档日志文件,在热备份的时候要选择的一种归档方式。
    由控制文件控制数据文件和日志文件。数据库启动时启动对应实例后,首先启动控制文件,在由控制文件打开数据文件。现象是:数据库装载:Database Mount,而后打开数据库:Database Open。其实就是先打开控制文件,在打开数据文件。
    物理结构下,这些路径是能够随意迁移的,能够存放在任何存储下,包括裸设备。
    逻辑结构数据库的逻辑结构相对于物理结构要复杂不少。学逻辑结构,非一日之功,我仅学到相关的大概。之后有时间继续深刻学习。数据库存储空间由一个或多个表空间构成。(如system、sysaux.)一、表空间(tablespace)组织数据库空间的逻辑结构,其对物理结构是数据文件,一个表空间物理上由一个或多个数据文件组成,逻辑上由一个或多个数据段组成。二、数据段(segment)逻辑对象所占用空间,如表段,索引段,回滚段等,段存在于表空间中,并对应必定的存储空间。数据段又划分为一个或多个区间。三、区(extent)区间是用于为数据一次性预留的一个逻辑上连续的一组disk空间(默认8块),每一个区间占用必定数量的数据块。区不能跨数据文件。四、块(block)数据库最小的存储单位(默认8k),是全部逻辑结构的基本分配单元。以上时逻辑结构的基本结构
    1.表空间概述表空间功能·组织数据段空间,控制存储空间的分配·经过使单个表空间在线或离线,控制数据的可用性·经过表空间划分实现跨越设备分配数据存储,以提升性能·经过指定用户使用指定表空间实现对用户的限制·执行部分数据的后备和恢复操做表空间特色·数据中的最大逻辑单位·一个数据库逻辑上至少由一个系统表空间构成·一个表空间物理上至少由一个数据文件构成·一个表空间至少包括一个段(控制信息)·表空间的大小等于全部从属于它的数据文件大小的总和查询表空间使用情况SQL select*from dba_tablespaces;查询数据库中全部表空间信息SQL select*from dba_data_files;查询表空间所含数据文件信息,不含临时表空间SQL select*from dba_temp_files;专查临时表空间所含数据文件SQL select tablespace_name,sum(bytes)from dba_data_files group by tablespace_name;查询表空间大小SQL select tablespace_name,sum(bytes)from dba_free_space group by tablespace_name;查询表空间空闲空间大小
    建立表空间SQL create tablespace test datafile’/u01/a.dat’size 5m;更改表空间SQL alter tablespace test add datafile’/u01/b.dat’size 6m;查询表空间SQL select tablespace_name,sum(bytes)from dba_data_files group by tablespace_name;表空间改名SQL alter tablespace test rename to fff;表空间脱机SQL alter tablespace test offline;表空间联机SQL alter tablespace test online;设置表空间只读SQL alter tablespace test read only;设置表空间可读写SQL alter tablespace test read write;扩展表空间SQL alter tablespace test add datafile’/u01/c.dat’size 500M;增长数据文件个数以扩充表空间(数据文件大约5~20个)SQL alter database datafile’/u01/a.dat’resize 80M;扩充数据文件大小扩充表空间SQL alter database datafile’/u01/a.dat’autoextend on maxsize 100M;设置自动扩充参数以自动扩充表空间删除表空间SQL drop tablespace test including contents and datafiles;删除表空间和数据文件
    表空间分类表空间主要分为系统表空间(system、sysaux),数据表空间(user),回滚表空间(undotbs),临时表空间(temp)。一、系统表空间每一个数据库都必须具有一个system表空间,该表空间是在数据库建立或数据库安装时自动建立的,名称不能更改,任什么时候候均必须保持online状态,用于存储系统的数据字典表,程序系统单元,过程函数,包和触发器等,也可用于存储用户数据表,索引对象。为避免系统表空间产生磁场碎片以及争用系统资源的问题,应单首创建至少一个独立的表空间用来单独抽出用户数据。sysaux表空间也随数据库的建立而建立,是system表空间的辅助表空间,主要存储存放支持oracle系统活动的多种工具如logminer等,sysaux下降了system表空间的负荷。二、数据和索引表空间由用户在数据创建完毕自行建立,是数据库空间的最主要组成部分,数据表空间应该创建多个,创建不一样用户及性质的数据库对象时应指定其存放在指定的数据表空间中,索引表空间也应创建多个,并分类将不一样对象的索引按大小及访问频度分别指定存放到指定的数据表空间中。一般状况下,数据和索引表空间应创建适当多个,太少则单个表空间过大,数据不安全且回复费时,过小则难管理。数据库建立时默认建立users表空间,包含一个数据文件user01.dbf,新建用户的未指定存储表空间时默认使用该表空间。三、回滚表空间undo数据又称回滚(rollback)数据,用户确保数据的一致性,当执行DML操做时,事务操做前的数据被称undo记录,undo表空间用于保存undo记录。undo表空间用户保存undo记录,是数据库空间的最关键的组成部分,其对数据库的运行影响很大。数据库建立时默认创建一个回滚段表空间undotbs1,包含一个数据文件undotbs01.dbs。SQL show parameter undo;
    四、临时表空间临时表空间(temp tablespace)主要用于存储oracle数据库运行期间所产生的历史数据,及用于进行排序。数据库关闭后,临时表空间中全部数据将所有被清除,故临时表空间外地其余全部表空间都属于永久性表空间数据库建立时默认创建一临时表空间temp。包含一数据文件temp01.dbf,对于大型操做频繁的环境,应创建多个临时表空间,并分别归属不一样临时表空间,以免多用户及多任务竞争该临时表空间查看系统默认临时表空间及对应数据文件SQL select tablespace_name from dba_tablespaces;SQL select*from dba_temp_files;oracle

相关文章
相关标签/搜索