管理表空间和数据文件——维护表空间——改变表空间的可用性


当建立表空间时,表空间处于online状态,此时该表空间及其数据文件可以访问;当表空间或数据文件处于offline状态时,表空间或其数据文件将不可访问。当维护表空间时,经常需要改变表空间的可用性。一般情况下,改变表空间可用性是有特权用户或dba来完成的;如果以其他用户身份改变表空间可用性,则要求用户必须具有manage tablespace 系统权限。

1.使表空间脱机

为了移动特定表空间的所有数据文件到其他位置,需要将表空间转变为脱机状态。以确保其数据文件的一致性。

注意:system表空间和sysaux表空间不能被脱机。

例子:

alter tablespace tbs_4k offline;

当表空间处于offline状态时,该表空间将不能被访问。如果访问脱机表空间,那么会显示错误信息。

create table t1(cola int ) tablespace tbs_4k;

ORA-01542: 表空间 'TBS_4K' 脱机, 无法在其中分配空间

2.是表空间联机

处于offline状态的表空间不能被访问。在完成了表空间的维护后,应该将其转变为online状态。

例子:

alter tablespace tbs_4k online;
create table t1(cola int ) tablespace tbs_4k;

3.是数据文件脱机

当出项磁盘损坏导致数据文件丢失时,如果要打开数据库,那么控制文件将无法定位需要打开的数据文件,并且会显示如下错误。

 ora_01157:无法标识/锁定数据文件 3 - 请参阅dbwr跟踪数据文件:

ora——01110:数据文件 3 :'d:\orcl\user01.dbf'

为了使得数据库可以快速投入使用,应该脱机损坏的数据文件,打开数据库,让后恢复该数据文件。当脱机数据文件时,即可以指定数据文件名,也可以指定数据文件编号。

注意:noarchivelog 模式下脱机数据文件必须使用offline drop 选项。

例子:

alter database datafile 5 offline drop;

4.使数据文件联机

当恢复了数据文件后,为了使的数据文件可以重新使用,需要将其转变为online 状态。当联机数据文件时,即可以指定数据文件名,也可以指定数据文件编号。

注意:在联机数据文件之前可能需要执行恢复命令:

recover datafile 5
alter database datafile 5 online;

原文地址:https://www.cnblogs.com/zhaojiedi1992/p/oracle11g_sql_0047.html