天天看點

oracle 導入(imp)資料時的表空間(tablespace users)問題

<a href="http://blog.csdn.net/gaohaiyang/article/details/7067051">原文連結</a>

imp/exp 使用者 表空間 users tablespace

使用exp把使用者pwgh的資料導出後,再使用imp把資料導入另外一個資料庫時。

發現一個問題,由于資料的導出使用者pwgh的一些表建在表空間users裡,

而我想把這些資料全部導入到另外一個資料庫的某個表空間裡,例如表空間pwgh_fs_tablespace。

雖然在建立使用者的時候指定該使用者的預設表空間(pwgh_fs_tablespace),但是還是有些表導入表空間users裡。

查了一下發現使用如下步驟就可以把資料全部導入表空間pwgh_fs_tablespace裡。

1. 使用DBA使用者收回使用者pwgh_fs的unlimited tablespace權限。

——-收回使用者在表空間上配額大小無限制的權限

revoke unlimited tablespace from pwgh_fs;

2. 取消使用者pwgh_fs在表空間users上的配額。

—-給使用者配置設定某個表空間的可用大小限額

alter user pwgh_fs quota 0 on users;

——為了防止使用者在表空間pwgh_fs_tablespace上的配額不足,使用如下sql讓使用者在該表空間上不限配額。

alter user pwgh_fs quota unlimited on PWGH_FS_TABLESPACE;

這樣再導入,就會把資料都導入表空間pwgh_fs_tablespace。

實際上就是讓使用者pwgh_fs可用的表空間隻有pwgh_fs_tablespace這一個表空間就行了。

使用到的exp和imp語句:

exp pwgh/pwgh_test@FSPWGH_CS file=”d:\oracle_temp\pwgh_fs_table20111103.dmp” owner=(pwgh)

imp pwgh_fs/pwgh_fs@pwgh file=”d:\oracle_temp\pwgh_fs_table20111103.dmp” full=y