表空间和数据文件

发布时间:2016-12-11 6:27:32 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"表空间和数据文件",主要涉及到表空间和数据文件方面的内容,对于表空间和数据文件感兴趣的同学可以参考一下。

从逻辑上读,数据存储在段中;从物理上讲,数据存储在数据文件中。表空间实体是二者的抽象,一个表空间可能包含多个段,并由多个数据文件组成。段和数据文件没有直接关系。数据文件可以作为文件系统中的文件存在,从10G版本开始,也可以作为自动存储管理(ASM)设备上的文件而存在。 5.1.1 ORACLE 数据存储模型 将逻辑存储与物理存储分开是关系数据库范例的必要部分。关系数据库表明:编辑人员只处理逻辑结构,而让数据库去管理物理结构的映射。这意味着,可以重新组织物理存储,也可以将整个数据库移动到完全不同的硬件和操作系统上,而应用程序将意识不到任何更改。 表空间实体消除了段与数据文件之间的多对多关系。一个表空间可以包含多个段,而且可以由多个数据文件组成。这意味着,一个段可以分布在多个数据文件中,而任一数据文件可以包含多个段的全部或一部分。 下面总结了这些段类型,按DBA关注的程序排序 TABLE   这些是包含数据行的堆结构的表。 INDEX  索引是键值的有序列表,相应的指针ROWID指向每行的物理位置。 TYPE2UNDO  这些是撤销段,存储数据的更改前版本,为了提供完整性,这些是必需的。 ROLLBACK  总有一个回滚段保护用于创建数据库的事务 TABLE PARTITION可以将表分成多个分区。如果这样的话,分区将成为一个个的段,而表本身完全不是段:仅以分区总和的形式存在。 INDEX PARTITION 默认方式下,一个索引在一个段中,但是也可以对索引进行分区。如果对表进行分区,通常也会对这些表上的索引进行分区。 LOBSEGMENT,LOBINDEX,LOB PARTITION  CLUSTER  NESTED TABLE  5.1.3 文件存储技术 数据文件可以保存在四类设备上:本地文件系统,群集文件系统,原始设备和ASM磁盘组。 本地文件系统上的文件 群集文件系统上的文件 原始设备上的文件 ASM设备上的文件 5.2 创建和管理表空间 表空间是模式数据的仓库,包括数据字典(是SYS模式)。所有数据库都必须有SYSTEM表空间和SYSAUX表空间,在实际中,还有临时表空间和撤销表空间。在创建数据库时,通常已经创建了这4个表空间。此后,DBA可能为用户数据创建更多表空间,为撤销和临时数据创建更多表空间。 可以使用Enerprise Manager Database Control 创建表空间 也可以用SQL创建: create smallfile tablespace "NEWTS" datafile 'd:\app\oracle\oratada\orcl11g\newts01.dbf ' size 100M autoextend on next 10m maxsize 200m logging extent management local segment space management auto default nocompress 5.2.2 更改表空间 创建后对表空间的常见更改如下: 重命名 使其联机或脱机 标记为读写或只读 重调大小 更改警报阈值 1 重命名表空间及其数据文件 语法如下 alter tablespace tablespaceoldname  rename to tablespacenewname 2 使表空间联机或脱机 联机表空间或数据文件可供使用。而脱机表空间或数据文件以数据字典中的定义形式存在,控制文件无法使用。可能出现这样的情况。表空间处于联机状态,而其中一个或多个数据文件处于脱机状态。这种情况通常应该避免。使表空间脱机的语法如下: alter tablespace tablespacename offline |  normal  |  immediate  |  temporary | 3 将表空间标记为只读 alter tablespace tablespacename [ read only |  read write ] 在将表空间标记为只读后,将不能使用DML语句来更改其中的任何对象,但是,可以删除它们。 使表空间只读对备份和还原有好处。ORACLE 了解到表空间内容不能更改,因此不需要重复备份它们。 4 重新调整表空间的大小 要重调表空间的大小,可以向其添加数据文件,也可以调整现有数据文件的大小。如果在创建文件时使用AUTOEXTENT语法。则可以根据需要自动向上重调数据文件的大小。否则,必须使用ALTER DATABASE 命令手动更改: ALTER DATABASE DATAFILE  filename resize a[M|G|T] 如:alter database datafile '/oradata/user02.dbf' resize 10M; 只有文件系统上的空间足够大,向上的重调大小才能成功;只有文件中的空间尚未由分配给段的区间使用时,才能向下重调大小。 要向表空间添加另一个50MB大小的数据文件,主使用下列语法: alter tablespace storedata add datafile 'C:\oracle\oradata\orcl11g\storedata_03.dbf ' size 50M; 可以添加自动扩展子句,或在后面使用下列命令自动自动扩展; alter database datafile ' C:\oracle\oradata\orcl11g\storedata_03.dbf ' autoextend on next 50m maxsize 2g; 这使得文件大小翻番,一次性增加50MB 5 更改警报阈值 实例的MMON进程实时地监视每个表空间的满度。如果表空间的满度超过一定限度,MMON将发生警报。默认方式下,如果表空间的满度超过80%,将发生警报:如果满度超过97%,将发出严重警报。可按多种方式来查看警报,但最简单的方法莫过于查看database control 的数据库主页。 5.2.3删除表空间 要删除表空间,请使用DROP TABLESPACE 命令,语法如下: DROP TABLESPACE tablespacename  [ INCLUDING CONTENTS AND DATAFILES] ; 如果未指定INCLUDING CONTENTS 关键字,但表空间中包含任何对象,那么删除操作将失败。使用这些关键字指示ORACLE 首先删除对象,然后删除表空间。即便如此,在一些环境下同样失败,如果表空间包含的表与另一个表空间的表存在外键关系,而且此表是交表,则删除将失败。 如果未指定AND DATAFILES 关键字,则将删除表空间及其内容,但数据库文件仍保存在磁盘上。ORACLE将不了解它们位于何处,必须使用操作系统命令删除它们。 5.2.4 OMF 有了ORACLE管理的文件(ORACLE-MANAGED FILES,OMF),DBA将不必了解有关文件系统的任何知识。将以完全自动的方式完成数据库文件的创建。要启用OMF,请设置一部分或下列实例参数 DB_CREATE_FILE_DEST DB_CREATE_ONLINE_LOG_DEST_1 DB_CREATE_ONLINE_LOG_DEST_2 DB_CREATE_ONLINE_LOG_DEST_3 DB_CREATE_ONLINE_LOG_DEST_4 DB_CREATE_ONLINE_LOG_DEST_5 DB_RECOVERY_FILE_DEST DB_CREATE_FILE_DEST 参数指定所有文件的默认位置。DB_CREATE_ONLINE_LOG_DEST_n参数指定联机重做日志文件的默认位置。DB_RECOVERY_FILE_DEST调协归档重做日志文件和备份文件的默认位置。

上一篇:LeetCode OJ --问题与解答 Evaluate Reverse Polish Notation
下一篇:Flash As3.0 游戏开发小结

相关文章

相关评论