oracle|表空间管理

来源:互联网 发布:淘宝匿名买家提取器 编辑:程序博客网 时间:2024/06/11 23:47

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

Oracle数据库逻辑结构组成部分:数据库是由表空间组成,而表空间又是由构成,段是由区构成,而区是又oracle数据库的块组成这样的一种结构,这样可以提高数据库的管理效率,如下图。个人理解,很想国家划分省、市、县、区等。

表空间的作用:

1、控制数据库占用磁盘空间;

2、DBA可以将不同的数据类型部署到不同的表空间这样有利于提高I/O性能,同时利于备份和恢复等管理操作;例如:可以用一个表空间来存放索引、、

创建表空间

创建表空间我们可以用create tablespace命令完成,但是创建表空间一般都是由DBA来完成,如果某个用户一定要创建表空间则需要有create tablespace系统权限;

例子:create tablespace tpName datafile 'E:\tpName.dbf' size 20m uniform size 128k;

上面的例子是创建一个表空间,表空间名是tpName;

datafile:是指定你表空间的数据文件名和路劲;

size:指定数据文件的大小;

uniform size:是指区的大小,按照每个区128k分配;

使用表空间:

使用空间很简单,只需要在创建索引存储过程...后面加上tablespace tpName;

改变表空间的状态:

使表空间脱机:alter tablespace tpName offline;

  使表空间联机alter tablespace tpName online;

  只读表空间alter tablespace tpName read only;只能进行查询,其它三样操作不能执行

  可读可写表空间alter tablespace tpName read write;

扩充表空间:

1、新增加数据文件:

alter tablespace tpName add datafile 'E:\tpName1.dbf' size 20m;

  2、增加原有的数据文件

alter database datafile 'E:\tpName.dbf' resize 100m;

  3、设置数据文件自动增长:

    alter database datafile 'E:\tpName.dbf' autoextend on next 10m maxsize 500m;

    autoextend on next:是指每次增长大小为10M;

移动数据文件

如果您的数据文件所在磁盘损坏,该数据文件不能在使用,所以我们要将这些文件移植到其它磁盘上面去:

1、确定数据文件所在表空间:

select tablespace_name from dba_data_files where file_name='E:\TPNAME.DBF';

是查询dba_data_files视图中的tablespace_name字段,file_name是您的数据文件路劲,要大写;

2、让表空间处于脱机状态,为了保证数据文件的一致性,将表空间状态改为offline状态:

alter tablespace TPNAME offline;

3、使用命令移动数据文件到指定位置:

host move 'E:\TPNAME.DBF' 'F:\TPNAME.DBF';

如果这样不行可以手动复制数据文件到指定位置;

4、在执行了物理上的文件移动,还要执行alter tablespace命令对数据文件进行逻辑上修改,就是表空间位置指向;

alter tablespace TPNAME rename datafile 'E:\TPNAME.DBF' to 'F:\TPNAME.DBF';

5、使表空间联机;

alter tablespace TPNAME online;

删除表空间:

          drop tablespace TPNAME including contents and datafiles;

          说明:including contents表示删除表空间时,删除表空间的所有数据对象;

      而datafiles是表示连数据文件也一起删除;

基本的表空间操作就写了这么多、、