oracle下正确删除表空间的方法

Oracle因为本身的多重验证机制所有在删除表空间时不像MySQL中删除database一样,可以通过外部的删除直接删除掉database文件夹就可以删除掉database,当然这两者是2种不同的东西,在此仅用于举例说明。在Oracle中表空间相当于系统中的硬盘,Oracle可以通过修改配置表空间来对Oracle下的数据进行存储,所以在Oracle下表空间是非常重要的,尤其是在表空间文件处理不当都会造成Oracle的不稳定,在此就说一说如何正确的删除Oracle的表空间。

删除表空间时,需要确定在没有数据使用时或者该表空间的数据确定不要时候才能继续,所以在任何删除之前,需要让表空间离线,如下:

SQL> alter tablespace tablespace_name offline;

在使表空间正确的离线后,才能对表空间进行正确的删除的操作,而删除表空间又分为几种情况,使用也很简单,如下:

--删除空的表空间,但是不包含物理文件
SQL> drop tablespace tablespace_name;
--删除非空表空间,但是不包含物理文件
SQL> drop tablespace tablespace_name including contents;
--删除空表空间,包含物理文件
SQL> drop tablespace tablespace_name including datafiles;
--删除非空表空间,包含物理文件
SQL> drop tablespace tablespace_name including contents and datafiles;
--如果其他表空间中的表有外键等约束关联到了本表空间中的表的字段,就要加上CASCADE CONSTRAINTS
SQL> drop tablespace tablespace_name including contents and datafiles CASCADE CONSTRAINTS;

要注意的是这些操作都需要使用DBA用户才能操作,而在需要删除表空间的物理文件时需要格外的注意,不然一旦删除表空间的物理文件,Oracle的数据是无法恢复的,Oracle的表空间物理文件的路径在创建表空间时就有定义,当然如果忘记了,可以查询Oracle的系统表来查询:

SQL> select file_name,tablespace_name from dba_data_files;

当然,还有更多的查询方式在以前有写过Oracle下的常用的系统表和系统视图,在此就不做过多的说明,需要的可以参看:http://jim123.blog.51cto.com/4763600/1947872

时间: 2024-12-28 14:55:08

oracle下正确删除表空间的方法的相关文章

oracle学习 六 删除表空间,数据文件的语句以及导入导出dmp文件的方法(持续更新中)

要想删除表空间就要先删除数据文件 例如这个例子 CREATE TABLESPACE STHSGIMGDB_SPACE11 DATAFILE 'D:\ORACLEDATABASE\JinHuaDataBase\STHSGIMGDB_SPACE11_01' SIZE 1M AUTOEXTEND ON NEXT 50M MAXSIZE UNLIMITED, 'D:\ORACLEDATABASE\JinHuaDataBase\STHSGIMGDB_SPACE11_02' SIZE 1M AUTOEXTE

oracle 11g 手动删除表空间文件导致数据库报错处理方法

简单说下原因:当时图方便没进数据库,直接在datafile目录下删除了表空间对应的数据文件 导致后来数据库报错,并且不能删除表空间 错误如下:ORA-01116:error in opening database ****ORA-01110:data file 54:'/home3/datafile/arrange/NewArrange.dbf'ORA-27041:unable to open fileLinux Error:2: No Such file or directoryAdditio

错误ORA-01110,在已删除数据文件情况下如何删除表空间

如果先行删除了数据文件,再删除表空间,drop tablespace 会出现如下错误: ORA-01116: error in opening database file 89 ORA-01110: data file 89: '/templv/osm/OSM_TABP_00.dbf' ORA-27041: unable to open file Linux Error: 2: No such file or directory Additional information: 3 解决方案: 首

oracle 删除表空间及数据文件方法

drop tablespace tablespace_name;--删除非空表空间,但是不包含物理文件drop tablespace tablespace_name including contents;--删除空表空间,包含物理文件drop tablespace tablespace_name including datafiles;--删除非空表空间,包含物理文件drop tablespace tablespace_name including contents and datafiles;

oracle中删除表空间提示ORA-00604和ORA-38301

今天需要在本机上腾出空间,发现oracle中有一个dbf文件占了约30G,这个数据文件对应的用户平时很少使用的,于是就想对它进行处理-删除表空间操作. 本机的数据库是32位的10.2.0.1.0,表空间为TEST_TB存在若干个表数据.刚开始时用dba角色的system用户,直接执行 drop tablespace test_tb including contents and datafiles; 提示: ORA-00604:递归SQL级别1出现错误 ORA-38301:无法对回收站中的对象执行

Linux下Oracle启动、建立表空间、用户、授权、数据库导入导出

1.1进入到sqlplus启动实例 [[email protected] ~]$ su - oracle                                 --“切换到oracle用户”[[email protected] ~]$ lsnrctl start                               --“打开监听”[[email protected] ~]$ sqlplus /nolog                                --“进入到

oracle创建表空间、创建用户、授权、夺权、删除用户、删除表空间

表空间定义 表空间是为了统一ORACLE物理和逻辑上的结构而专门建立的,从物理上来说,一个表空间是由具体的一个或多个磁盘上数据文件构成的(至少1对1,可以1对多),从逻辑上来说一个表空间是由具体的一个或多个用户模式下的表,索引等等里面的数据所构成的. 创建表空间:首先连接到拥有dba权限的用户下.例如system [sql] view plaincopy SQL> create tablespace baicheng datafile 'f:\baicheng.dbf' size 25M; Ta

Oracle菜鸟之如何创建和删除表空间

1.创建临时表空间 创建表空间时,dbf文件一般存放在datafile文件的存放目录下(一般是在实例名命名的文件夹下面) 可以通过 select * from v$datafile;查看所有数据文件的存放位置 create temporary tablespace 表空间名 tempfile '/data/oradata/CHUANSHU/datafile/tmp_文件名.dbf' size 50M autoextend on next 1M maxsize 1024M extent manag

Oracle菜鸟之怎样创建和删除表空间

1.创建暂时表空间 创建表空间时,dbf文件一般存放在datafile文件的存放文件夹下(通常是在实例名命名的文件夹以下) 能够通过 select * from v$datafile;查看全部数据文件的存放位置 create temporary tablespace 表空间名 tempfile '/data/oradata/CHUANSHU/datafile/tmp_文件名称.dbf' size 50M autoextend on next 1M maxsize 1024M extent man