(1)脱机表空间
在数据库打开状态下,可以改变表空间的可用性,也就是能够把表空间从联机状态转到脱机状态,也可以把它从脱机状态转为联机状态。在数据库运行过程中,常遇到一些情况需要脱机表空间,例如:
①重命名或者移动表空间的数据文件。
②执行脱机表空间备份。
③在升级或维护应用程序过程中临时关闭其对应的表空间。
脱机表空间只会使数据库的部分数据不可用,但不影响用户对数据库其余部分的访问。在一个数据库内,其SYSTEM表空间、临时表空间和还原表空间不能脱机。
ALTER TABLESPACE语句用于脱机表空间,其语法格式为
ALTER TABLESPACE表空间名OFFLINE
[NORMAL|TEMPORARY|IMMEDIATE];
该语句的3个选项说明如下。
①NORMAL:正常方式脱机,脱机前对表空间内的所有数据文件执行检查点,并检查所有数据文件成功写入后才能成功脱机。采用这种方法成功脱机后,表空间下次联机时不需要做介质恢复。该选项是默认设置。
②TEMPORARY:临时方式脱机。脱机前执行检查点,但不检查数据文件是否成功写入。采用这种方式脱机表空间时,如果所有数据文件成功写入,以后联机表空间时不需要做介质恢复,否则在联机表空间之前需要对写入失败而脱机的数据文件做介质恢复。
③IMMEDIATE:立即方式脱机。数据库不会在数据文件上执行检查点,更不检查数据文件。采用这种方式脱机的表空间在下次联机时需要对数据文件做介质恢复,所以,如果数据库运行在NOARCHIVELOG模式,就不能以这种方式脱机表空间。(www.daowen.com)
在脱机表空间时应尽量采用NORMAL方式,只有当NORMAL方式无法“干净”脱机时再以TEMPORARY方式脱机表空间。也只有当表空间无法以NORMAL和TEMPORARY方式脱机时,迫不得已才采用IMMEDIATE方式脱机。
例如,下面语句以NORMAL方式脱机表空间DEMOA。
(2)联机表空间
联机表空间所使用的SQL语句也是ALTER TABLESPACE,其语法格式为:
ALTER TABLESPACE表空间名ONLINE
例如,下面语句使上面脱机的表空间DEMOA重新联机。
SQL>ALTER TABLESPACE DEMOA ONLINE;
如果表空间“干净”脱机(也就是以NORMAL方式脱机),则在数据库打开状态下可以直接使其联机。否则需要对存在问题的数据文件先做介质恢复,之后才能联机表空间。
例如,下面语句采用IMMEDIATE方式再次脱机DEMOA表空间,由于在脱机时没有“干净”脱机,所以在其后如果不对该表空间的数据文件做介质恢复就无法使其联机。
这时应首先对该表空间的数据文件做介质恢复,之后才能联机表空间。由于在上面的错误消息中给出了需要做介质恢复的数据文件名称,及其绝对文件号,所以用户在下面的语句中可以直接使用该编号指定需要恢复的文件,以简化书写。
需要注意的是,在上面的RECOVER DATAFILE语句中,既可以使用数据文件编号,也可以使用数据文件名称指出需要恢复的数据文件。它与下面语句的效果完全一样:
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。