天天看點

通過EXP和IMP移動表空間

預設情況下,導入試圖在與導出相同的表空間中建立對象。如果使用者不具有那個表空間的權限,或者那個表空間不存在時,Oracle在使用者帳戶的預設表空間中建立資料庫對象。這些特性可以用于使用導出與導入在表空間之間移動資料庫對象。要為USER_A将TABLESPACE_A的所有對象移動到TABLESPACE_B,應遵循以下步驟:  

1為USER_A導出TABLESPACE_A中的所有對象。  

2執行REVOKE   UNLIMITED   TABLESPACE   ON   TABLESPACE_A   FROM   USER_A;以收回任何授予使用者帳戶的無限制表空間權限。  

3執行ALTER   USER   USER_A   QUOTA   0   ON   TABLESPACE_A;以使USER_A帳戶不能在TABLESPACE_A上建立任何對象。  4删除TABLESPACE_A中USER_A擁有的所有對象。  

5執行ALTER USER USER_A DEFAULT TABLESPACE TABLESPACE_B;以使TABLESPACE_B成為USER_A使用者帳戶的預設表空間。

  Oracle試圖将對象導入TABLESPACE_A,因為這些對象是從TABLESPACE_A導出的。

  注意使用者不具有TABLESPACE_A上的配額。然後将檢視使用者的預設表空間。在Oracle可以将資料導入TABLESPACE_B之前,必須給予USER_A使用者該表空間上足夠大的配額,如下步驟所示。  

6執行ALTER USER USER_A QUOTA UNLIMITED ON TABLESPACE_B;  

7 導入被導出的資料庫對象。預設情況下,導入工具試圖将它們導入到TABLESPACE_A中,然而,因為使用者不具有這個表空間的配額,是以所有的對象将被建立在USER_A的預設表空間TABLESPACE_B中。

下一篇: ORA-01691