開發過程中,有時需要將生產數據整體導出並重新導入開發環境,下面我把我刪除數據庫中用戶並重新導入.dmp數據文件的全過程做了整理,爲需要的同學提供參考,有不對的地方還請指教。
一。用xshell登陸oracle 用戶
二。登陸sqlplus:
sqlplus /nolog;
connect / as sysdba;
三。用約束方式重新啓動數據庫:
shutdown abort;
startup restrict;
注:如果不用約束方式啓動數據庫,則會有連接訪問此數據庫,下面步驟執行用戶刪除時會報錯
四。刪除用戶
drop user username cascade;
注:若沒執行上面第三步驟,仍會有用戶連接,刪除用戶時報錯:ORA-0194:cannot drop a user that is currently connected。
上面錯誤是試過kill用戶進程,再刪除用戶,仍然報錯,所以用約束模式啓動數據庫比較保險
五。創建用戶
create user username identified by password;//創建用戶並設置密碼
六。給用戶賦予權限
grant create session to sun; //授予sun用戶創建session的權限,即登陸權限
grant unlimited tablespace to sun; //授予sun用戶使用表空間的權限
grant create table to sun; //授予創建表的權限
grant drop any table to sun; //授予刪除表的權限
grant insert any table to sun; //插入表的權限
grant update any table to sun; //修改表的權限
grant dba to username; //授予用戶dba權限
注:若不授予用戶dba權限,則數據導入時會報錯:IMP-00013:only a DBA can import a file exported by another DBA
因爲只有 DBA 才能導入由其他 DBA 導出的文件
七。用戶解鎖
alter user username account unlock;
八。服務重起
shutdown abort;
startup;
九。exit退出sqlplus
十。開啓監聽端口
lsnrctl start;
十一。導入數據
imp username/password@ORCL file=/home/oracle/***.dmp log=/home/oracle/***.log full=y;
備註
密碼過期修改:alter user username identified by password;