oracle的表空间,数据文件,控制文件

1,oracle的表空间

      表空间是数据库的逻辑组成部分。从物理上讲,数据库数据存放在数据文件中;从逻辑上讲,数据库则是存放在表空间中,表空间由一个或多个数据文件组成。

1.2数据库介绍;

 

 

oracle中逻辑结构包括表空间、段、区和块。 
说明一下数据库由表空间构成,而表空间又是由段构成,而段又是由区构成,而区又是由oracle块构成的这样的一种结构,可以提高数据库的效率。 

 

 

看下图



 

1.2表空间的作用;提高i/o的性能,控制数据库占用的磁盘

 

1.3表空间的建立; create tablespace;建立表空间的权限一般是dba

 

1.4 system表空间;每个Oracle数据库都包含一个名为 SYSTEM 的表空间(tablespace),她在数据库创建时由Oracle自动创建。只要数据库处于开启(open)状态,SYSTEM 表空间就一定是联机(online)的。

 

  SYSAUX 表空间;SYSAUX 表空间(tablespace)还被用来集中存储所有不应放在 SYSTEM 表空间的数据库元数据。不论是依据模版建立的数据库(seed database),还是用户定义的数据库(user-defined database),使用 SYSAUX 表空间可以减少默认创建的表空间数量,sysaux还是system的一个辅助空间

 

1.5 改变表空间的状态 
     当建立表空间时,表空间处于联机的(online)状态,此时该表空间是可以访问的,并且该表空间是可以读写的,即可以

查询该表空间的数据,而且还可以在表空间执行各种语句。但是进行系统维护时需要进行改变表空间的状态;由dba来操作;

1. 使表空间脱机 
alter tablespace 表空间名 offline; 
2. 使表空间联机 
alter tablespace 表空间名 online; 
3. 只读表空间 
当建立表空间时,表空间可以读写,如果不希望在该表空间上执行update,delete,insert操作,那么可以将表空间修改为只读 
alter tablespace 表空间名 read only; 
(修改为可写是 alter tablespace 表空间名 read write;) 

 

 

 

1.6 表空间的修改;

1. 知道表空间名,显示该表空间包括的所有表 
select * from all_tables where tablespace_name=’表空间名’;
 
2. 知道表名,查看该表属于那个表空间 
select tablespace_name, table_name from user_tables where table_name=’emp’; 

 

 

<!--EndFragment-->

 

1.7 删除表空间 ;
一般情况下,由特权用户或是dba来操作,如果是其它用户操作,那么要求用户具有drop tablespace系统权限。 
drop tablespace ‘表空间’ including contents and datafiles; 
说明:including contents表示删除表空间时,删除该空间的所有数据库对象,而datafiles表示将数据库文件也删除

<!--EndFragment-->

 

 

 

 

2数据文件;

   

      Oracle数据库中每个表空间(tablespace)都是由一个或多个物理数据文件(datafile)构成的。一个数据文件只能由一个数据库的一个表空间使用

 

 

  2.1 表空间的扩展;增加数据文件,增加数据文件的大小,设置数据文件自动增长


 

<!--EndFragment-->

1. 增加数据文件 
SQL> alter tablespace sp01 add datafile ‘d:\test\sp01.dbf’ size 20m; 
2. 增加数据文件的大小 
SQL> alter tablespace 表空间名 ‘d:\test\sp01.dbf’ resize 20m; 
这里需要注意的是数据文件的大小不要超过500m。 
3. 设置文件的自动增长。 
SQL> alter tablespace 表空间名 ‘d:\test\sp01.dbf’ autoextend on next 10m maxsize 500m; 

3,控制文件;

   数据库控制文件(control file)是一个二进制文件,供数据库启动及正常工作时使用。在数据库运行过程中,控制文件会频繁地被Oracle修改,因此数据库处于开启(open)状态时控制文件必须可写。如果控制文件因故不能访问,数据库 也将无法正常工作。

    每个数据库有一个控制文件

   3.1控制文件的内容;

          控制文件(control file)中包含了其所属数据库的信息,实例(instance)在启动,及正常工作期间都需要存取这些信息。控制文件的内容只能由Oracle修改,数据库管理员或用户都不应编辑控制文件。

   3.2控制文件包含以下信息;

    

   数据库名(database name)

  • 数据库创建时的时间戳(timestamp)
  • 属于此数据库的数据文件(datafile)及重做日志文件(redo log file)的名称与存储位置
  • 表空间(tablespace)信息
  • 脱机(offline)的数据文件
  • 日志历史信息
  • 归档日志(archived log)信息
  • 备份集(backup set)与备份块(backup piece)信息
  • 数据文件与重做日志的备份信息
  • 数据文件复制信息
  • 当前的日志序列号(log sequence number)
  • 检查点(checkpoint)信息

 

 

猜你喜欢

转载自baihe747.iteye.com/blog/2123035