管理表空间和数据文件——维护表空间——改变表空间的读写状态和改变表空间名称
默认情况下表空间是处于可读写状态,用户不仅可以查询表空间上的对象数据,而且可以在表空间上执行dml 和ddl 操作。如果表空间只用于存放静态数据,那么为了便于管理和备份恢复,应该将其转变为只读状态:另外如果搬移表空间到其他数据库,那么在搬移前也需要将表空间转变为只读状态。
1.是表空间只读
当表空间转变为只读状态之后,其scn值和内容不会发生任何变化,并且用户不能在该表空间的对象上执行dml 和ddl 操作(drop 例外的)。
例子:将表空间tbs_4k转变为只读并在表空间执行dml 和ddl 操作:
alter tablespace tbs_4k read only; insert into t1 values(1);
第 1 行出现错误:
ORA-00372: 此时无法修改文件 12
ORA-01110: 数据文件 12: 'D:\ORCL\TBS_4K.DBF'
drop table t1;
表已删除。
2.使表空间可读写
当搬移表空间时,鼻血首先将表空间转变为read only 状态,让后才能褒义相应的表空间。在完成了表空间搬移之后,必须将其转变为可读写状态。
例子:
alter tablespace tbs_4k read write; create table t2(cola int) tablespace tbs_4k; insert into t2 values(1);
3.改变表空间的名称
当搬移表空间到其他数据库时,在目标数据库中不能存在同名表空间。如果存在同名表空间,那么在搬移之前应该改变源数据库或目标数据的表空间名,使用alter tablespace 的rename 选项可以改变表空间名。
注意;不能修改system和sysaux 表空间的名称:当表空间或数据文件处于offline状态时,该表空间的名称将不能修改。
例子:
alter tablespace tbs_4k rename to tb_4k;
posted on 2013-05-22 19:44 LinuxPanda 阅读(433) 评论(0) 编辑 收藏 举报