oracle表空间操作详解

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

1.oracle中逻辑结构包括表空间,段,区和块

2.create tablespace data01 datafile 'd:\test\data01.dbf'
size 20m uniform size 128k;

3.建在其他的表空间
create table mypart
(
deptno number(4),
XXXX   XXX
)
tablespace data01;

4. 该表表空间的状态
(1)使表空间脱机
     alter tablespace 表空间名 offline;
(2)使表空间联接
alter tablespace 表空间名 online;
(3)只读表空间
alter tablespace 表空间名 read only
(4)可读可写表空间
alter tablespace 表空间名 read write

查询某表空间下的所有表名
select * from all_tables where tablespace_name='表空间名'
查询某个表在那个表空间中
select tablespace_name,table_name from user_tables where
table_name='EMP';
删除表空间
DROP TABLESPACE data01 INCLUDING CONTENTS AND DATAFILES;

扩展表空间
1.增加数据文件
ALTER TABLESPACE game
ADD DATAFILE '/oracle/oradata/db/GAME02.dbf' SIZE 1000M;
2.手动增加数据文件尺寸
ALTER DATABASE DATAFILE '/oracle/oradata/db/GAME.dbf'
  RESIZE 4000M;
3.设定数据文件自动扩展
ALTER DATABASE DATAFILE '/oracle/oradata/db/GAME.dbf
AUTOEXTEND ON NEXT 100M  MAXSIZE 10000M;

设定后查看表空间信息
   SELECT A.TABLESPACE_NAME,A.BYTES TOTAL,B.BYTES USED, C.BYTES FREE,
   (B.BYTES*100)/A.BYTES "% USED",(C.BYTES*100)/A.BYTES "% FREE"
   FROM SYS.SM$TS_AVAIL A,SYS.SM$TS_USED B,SYS.SM$TS_FREE C
   WHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME AND A.TABLESPACE_NAME=C.TABLESPACE_NAME;

移动数据文件
   1.确定数据文件所在的表空间
     select tablespace_name from dba_data_files where
file_name='d:/sp001';
   2.使表空间脱机
     sql>alter tablespace sp001 offline,
   3.使用命令移动数据文件到指定目标位置
     sql>host move d:/sp001.dbf c:/sp001.dbf
   4.移动数据文件
   sql>alter tablespace sp001 rename datafile
   'd:/sp001.dbf' to 'c:/sp001.dbf';
   5.使表空间练级
   sql>alter tablespace sp001 online
 
其他表空间
    除了最常用的数据表空间外
   (1)索引表空间
   (2)undo表空间
   (3)临时表空间
   (4)非标准块表空间

你可能感兴趣的:(数据结构,oracle,sql,C++,c)