问题描述:
如果某个表空间有多个用户,那么我们在迁移的时候如果按用户导出导入的话,那将是一个麻烦费事的活,这个时候我们可以通过transport_tablespace参数进行表空间迁移,达到一次性迁移整个表空间的目的。下面通过一个实验来讲解整个实施过程及相关注意事项。
实验步骤:
1、创建表空间:
SQL> create tablespace test datafile '+DATA' size 10m autoextend on next 1m maxsize 20m;
2、创建用户:
SQL> create user test identified by test default tablespace test temporary tablespace temp quota 10m on test;
3、授予权限:
SQL> grant connect,resource to test;
4、在test用户下建表:
SQL> conn test/test
SQL> create table test(i number) tablespace test;
SQL> begin
2 for i in 1..10000 loop
3 insert into test values (i);
4 end loop;
5 commit;
6 end ;
7 /
PL/SQL procedure successfully completed
5、把test表空间设置为只读:
SQL> conn / as sysdba
SQL> alter tablespace test read only;
SQL> col name for a40
SQL> set linesize 200
SQL> select name,file#,checkpoint_change#,status,enabled from v$datafile where enabled like '%ONLY%';
NAME FILE# CHECKPOINT_CHANGE# STATUS ENABLED
---------------------------------------- ---------- ------------------ -