Oracle表空间的操作语句

来源:互联网 发布:照片做成视频的软件 编辑:程序博客网 时间:2024/04/27 15:01

建立表空间
CREATE TABLESPACE devdata
DATAFILE '/oracle/oradata/db/devdata.dbf' SIZE 500M
UNIFORM SIZE 128k;             #指定区尺寸为128k,如不指定,区尺寸默认为64k

删除表空间
DROP TABLESPACE devdata INCLUDING CONTENTS AND DATAFILES;

修改表空间大小
alter database datafile '/path/devdata.dbf' resize 100M              

移动表至另一表空间
alter table move tablespace room1;

一、建立表空间
CREATE TABLESPACE devdata
DATAFILE '/oracle/oradata/db/devdata.dbf' SIZE 500M
UNIFORM SIZE 128k;             #指定区尺寸为128k,如不指定,区尺寸默认为64k

二、建立UNDO表空间
CREATE UNDO TABLESPACE UNDOTBS02
DATAFILE '/oracle/oradata/db/UNDOTBS02.dbf' SIZE 50M

#注意:在OPEN状态下某些时刻只能用一个UNDO表空间,如果要用新建的表空间,必须切换到该表空间:

ALTER SYSTEM SET undo_tablespace=UNDOTBS02 scope=both;

三、建立临时表空间
CREATE TEMPORARY TABLESPACE temp_data
TEMPFILE '/oracle/oradata/db/TEMP_DATA.dbf' SIZE 50M

四、改变表空间状态

1.使表空间脱机
ALTER TABLESPACE devdata OFFLINE;
如果是意外删除了数据文件,则必须带有RECOVER选项
ALTER TABLESPACE devdata OFFLINE FOR RECOVER;

2.使表空间联机
ALTER TABLESPACE devdata ONLINE;

3.使数据文件脱机
ALTER DATABASE DATAFILE 3 OFFLINE;

4.使数据文件联机
ALTER DATABASE DATAFILE 3 ONLINE;

5.使表空间只读
ALTER TABLESPACE devdata READ ONLY;

6.使表空间可读写
ALTER TABLESPACE devdata READ WRITE;

五、删除表空间
DROP TABLESPACE devdata INCLUDING CONTENTS AND DATAFILES;

六、扩展表空间

首先改变数据库的字符

export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"

查看表空间的名字和所属文件
select
  b.file_name 物理文件名,
  b.tablespace_name 表空间,
  b.bytes/1024/1024 大小M,
  (b.bytes-sum(nvl(a.bytes,0)))/1024/1024 已使用M,
  substr((b.bytes-sum(nvl(a.bytes,0)))/(b.bytes)*100,1,5) 利用率
  from dba_free_space a,dba_data_files b
  where a.file_id=b.file_id
  group by b.tablespace_name,b.file_name,b.bytes
  order by b.tablespace_name;

1.增加数据文件
  ALTER TABLESPACE devdata
  ADD DATAFILE '/oracle/oradata/db/devdata2.dbf' SIZE 1000M;

2.手动增加数据文件尺寸
  ALTER DATABASE DATAFILE '/oracle/oradata/db/devdata.dbf'
  RESIZE 4000M;

3.设定数据文件自动扩展
  ALTER DATABASE DATAFILE '/oracle/oradata/db/devdata.dbf'
  AUTOEXTEND ON NEXT 100M
  MAXSIZE 10000M;

4.设定后查看表空间信息
  select
  a.a1 表空间名称,
  c.c2 类型,
  c.c3 区管理,
  b.b2/1024/1024 表空间大小M,
  (b.b2-a.a2)/1024/1024 已使用M,
  substr((b.b2-a.a2)/b.b2*100,1,5) 利用率
  from
  (select tablespace_name a1, sum(nvl(bytes,0)) a2 from
  dba_free_space group by tablespace_name) a,
  (select tablespace_name b1,sum(bytes) b2 from
  dba_data_files group by tablespace_name) b,
  (select tablespace_name c1,contents c2,extent_management c3 from dba_tablespaces) c
  where a.a1=b.b1 and c.c1=b.b1;

原创粉丝点击