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