ITPub博客

首页 > 数据库 > 数据库开发技术 > 收缩表空间

收缩表空间

原创 数据库开发技术 作者:gaoyj1973 时间:2007-06-28 15:16:00 0 删除 编辑

1.首先导出表空间
C:Documents and Settingsgyj>exp userid='/ as sysdba' tablespaces =users file=gao.dmp;

2.接着drop tablespace,但是发现不能drop默认表空间,
Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.1.0
Connected as SYS

SQL> drop tablespace users including contents;

drop tablespace users including contents

ORA-12919: 不能删除默认永久表空间

SQL> alter tablespace users offline;

Tablespace altered

SQL> alter database datafile 'D:ORACLEPRODUCT10.2.0ORADATAWANGDBUSERS01.DBF' resize 200m;

alter database datafile 'D:ORACLEPRODUCT10.2.0ORADATAWANGDBUSERS01.DBF' resize 200m

ORA-00376: 此时无法读取文件 4
ORA-01110: 数据文件 4: 'D:ORACLEPRODUCT10.2.0ORADATAWANGDBUSERS01.DBF'

SQL> alter tablespace users online;

Tablespace altered

3.不能drop 就做resize,发现还是不能
SQL> alter database datafile 'D:ORACLEPRODUCT10.2.0ORADATAWANGDBUSERS01.DBF' resize 200m;

alter database datafile 'D:ORACLEPRODUCT10.2.0ORADATAWANGDBUSERS01.DBF' resize 200m

ORA-03297: 文件包含在请求的 RESIZE 值以外使用的数据

SQL> alter database datafile 'D:ORACLEPRODUCT10.2.0ORADATAWANGDBUSERS01.DBF' resize 1024m;

alter database datafile 'D:ORACLEPRODUCT10.2.0ORADATAWANGDBUSERS01.DBF' resize 1024m

ORA-03297: 文件包含在请求的 RESIZE 值以外使用的数据

SQL> alter database datafile 'D:ORACLEPRODUCT10.2.0ORADATAWANGDBUSERS01.DBF' resize 2048m;

alter database datafile 'D:ORACLEPRODUCT10.2.0ORADATAWANGDBUSERS01.DBF' resize 2048m

ORA-03297: 文件包含在请求的 RESIZE 值以外使用的数据

SQL> alter database datafile 'D:ORACLEPRODUCT10.2.0ORADATAWANGDBUSERS01.DBF' resize 3072m;

alter database datafile 'D:ORACLEPRODUCT10.2.0ORADATAWANGDBUSERS01.DBF' resize 3072m

ORA-03297: 文件包含在请求的 RESIZE 值以外使用的数据

SQL> alter database datafile 'D:ORACLEPRODUCT10.2.0ORADATAWANGDBUSERS01.DBF' resize 3072m;

alter database datafile 'D:ORACLEPRODUCT10.2.0ORADATAWANGDBUSERS01.DBF' resize 3072m

ORA-03297: 文件包含在请求的 RESIZE 值以外使用的数据

4.创建一个表空间,并且将它设置为数据库的默认表空间
SQL> create tablespace test datafile 'D:ORACLEPRODUCT10.2.0ORADATAWANGDB est01.DBF' size 200m;

Tablespace created

SQL> alter database default tablespace test;

Database altered

5.接着drop tablespace 发现有LOB的表
SQL> drop tablespace users including contents;

drop tablespace users including contents

ORA-22868: 具有 LOB 的表包含有位于不同表空间的段

6.结果这时后可以resize了,怪怪的,虽然问题解决了,但是搞不明白为什么现在可以resize 了
SQL> alter database datafile 'D:ORACLEPRODUCT10.2.0ORADATAWANGDBUSERS01.DBF' resize 200m;

Database altered

--为什么前面不能resize,但是后面就可以了,谁能告诉我?

[@more@]

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/267897/viewspace-921816/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2012-08-30

  • 博文量
    40
  • 访问量
    369691