您的位置:首页 > 其它

学习表空间的一些总结

2014-04-08 09:20 211 查看
表空间分类:系统表空间、辅助表空间、临时表空间、undo表空间、用户表空间

多表空间存储好处:

使用多个表空间有以下好处:

•不同类型的数据存入到不同的表空间中,可以更灵活地管理数据库。

•将还原段、临时段、应用程序数据段和应用程序索引段分开存储到不同表空间中。

•根据备份要求将数据分开存储。

•将动态数据和静态数据分别存储在不同的表空间中,以利于备份和恢复。

•通过分配给用户表空间上的配额,避免分某个用户占用表空间太多的存储空间。

查看表空间使用:

SELECT t1 表空间,

       z/1024/1024  总表空间,

       (z - s)/1024/1024  已用表空间,

       s/1024/1024 剩余表空间,

       ROUND((z - s) / z * 100, 2)||'%' "使用率%"

  From (Select tablespace_name t1, Sum(bytes) s From DBA_FREE_SPACE Group by tablespace_name),

        (Select tablespace_name t2, Sum(bytes) z From DBA_DATA_FILES Group by tablespace_name)

Where t1 = t2

order by 1;   

    

表空间与数据关系:一对多

 

SELECT TABLESPACE_NAME,online_status,autoextensible, FILE_ID, FILE_NAME, BYTES/1024/1024  "BYTES(M)" FROM DBA_DATA_FILES order by 1

   

     创建表空间:

     

     创建一个表空间:TBS_T02 指定数据文件  默认50M  开启自动扩展  自动扩展1M最大100M

    create tablespace TBS_T02 datafile '/opt/oracle/oradata/ora36/TBS_T02.dbf' size 50M autoextend on next 1M maxsize 100M ;

修改自动扩展:

打开:

 alter database datafile '/opt/oracle/oradata/ora36/TBS_T01.dbf' autoextend on next 1M maxsize UNLIMITED;

 ---- UNLIMITED将分配给数据文件的磁盘空间设为不受限

关闭:

alter database datafile '/opt/oracle/oradata/ora36/TBS_T01.dbf' autoextend off;

 

增加数据文件:

优点,装载大批量数据时,在数据写满数据文件之后需要先扩展数据文件,然后才能装载数据,因而会导致系统

性能的降低。因此,在执行批量数据装载操作之前,你应该首先确定数据文件是否能够容纳

足够数据。如果不足以容纳数据的话,应该首先扩展该数据文件,然后装载数据

alter database datafile '/opt/oracle/oradata/ora36/TBS_T03.dbf' resize 75M;

修改表空间大小:

其实也是修改数据文件大小:

 alter database datafile '/opt/oracle/oradata/ora36/test/TBS_T02.dbf' resize 100M;

 

更改表空间状态:

只读:

alter tablespace TBS_T02 read only;

读写:

alter tablespace TBS_T02 read write;

表空间联机:

以下几种情况下数据库管理员可以让表空间脱机:

•使数据库的一部分表空间不可用,但允许正常访问数据库的其余表空间

•执行脱机表空间备份(尽管表空间可以在联机使用时备份)

•在数据库打开时恢复表空间或数据文件

•在数据库打开时移动数据文件

联机:

 alter tablespace TBS_T02 online;

脱机:

 alter tablespace TBS_T02 offline normal;

--normal脱机前把SGA中的数据写入数据文件

数据文件脱机:

数据文件联机:

移动数据文件:

        ALTER TABLESPACE 命令重命名数据文件的步骤:

        •使表空间脱机。

        •使用操作系统命令移动或复制文件。

        •执行ALTER TABLESPACE RENAME DATAFILE 命令。

        •使表空间联机。

        •必要时使用操作系统命令删除原来的数据文件。

alter tablespace tBS_T02 offline normal ;

linux执行:cp TBS_T02.dbf  ./test/

alter tablespace TBS_T02 rename datafile '/opt/oracle/oradata/ora36/TBS_T02.dbf' to '/opt/oracle/oradata/ora36/test/TBS_T02.dbf';

alter tablespace TBS_T02 online;

删除表空间:

语法:

DROP TABLESPACE tablespace  [INCLUDING CONTENTS [AND DATAFILES] [CASCADE CONSTRAINTS]]

其中:

tablespace:指定要删除的表空间的名称

INCLUDING CONTENTS:删除表空间内的所有段

AND DATAFILES:删除关联的操作系统文件

CASCADE CONSTRAINTS:如果要删除的表空间之外的表引用了该表空间内表的主

键和唯一键,则删除这种引用完整性约束。

drop tablespace TBS_T02 including contents and datafiles cascade constraints;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息