1、一般使用建表空間、建用戶的流程是:
建立表空間;
建立用戶角色,賦予權限給用戶角色;
建立用戶;
賦予用戶權限;(把用戶角色的權限賦予給用戶)
這樣後,如果刪除了 這個用戶角色,那麼用戶的權限也消失了,需要重新建立這個用戶角色,並且重新給此用戶賦予角色權限才行。
2、使用邏輯備份,導出的dmp包,裏面包含所使用的表空間的名字;
有時在進行導入操作前,並無檢查dmp包表空間的名字,導致在導入到另外的服務器數據庫時提示表空間不存在,一般我用2個方法來解決:
1、直接修改dmp包。在linux 服務器上直接使用vi x.dmp
通過使用修改名字,全局修改名字
vi x.dmp
:%s/TABLESPACE "xxxx"/TABLESPACE "yyyy"/g
保存退出!
2、由於有時dmp文件很大,打開時十分費時;爲了保持新的服務器也是用一樣的表空間名字,那麼先確認原來使用的表空間名字再建表空間,然後導入。
導入數據庫後,如果想修改表空間的名字,那麼可以直接用
alter tablespace xxxx rename to yyyy;
進行修改,修改後進行邏輯備份出來的新的dmp 包裏面的表空間名字爲新的名字。
3、第三個方法好像可以通過在imp導入時是添加index???的參數,來指定導入的表空間來解決,這個我還沒試過。