windows命令創建Oracle新用戶並授權導入dmp文件


 

1.打開數據庫驅動

sqlplus/nolog (此處切記不能有分號)

2.以管理員權限登錄

conn / as sysdba;

3.創建新用戶

create user TELEMT identified by TELEMT;

4.給用戶授權

grant resource,connect,dba to TELEMT;

5.創建數據表空間

create tablespace TELEMT datafile ‘D:\app\oradata\TELEMT.dbf’ size 5120M autoextend on next 100M;

6.賦予用戶表空間

alter user TELEMT default tablespace TELEMT;

7.將數據導入到oracle

在導入之前將dmp文件放入oracle安裝目錄下的 \app\ADMIN\admin\orcl\dpdump文件夾中

或者在我的電腦里面,建立文件夾f:\tempdump,把TELEMT.DMP拷貝進該文件夾。例如:

CREATE OR REPLACE DIRECTORY tempdump AS 'f:/tempdump/';
GRANT READ, WRITE ON DIRECTORY tempdump TO TELEMT;

 

8.打開另一個cmd窗口,使用impdp導入數據庫

impdp TELEMT/TELEMT@ORCL full=Y  directory=tempdump dumpfile=frameworkexpdp.dmp

有時會報ORA-31640: unable to open dump file 問題解決

設置cluster=N,再次進行導入

impdp TELEMT/TELEMT@ORCL full=Y  directory=tempdump dumpfile=frameworkexpdp.dmp cluster=N

發現日志沒有導入視圖的信息,不知道視圖導入沒有,當時忘了查看一下了,然后補充執行下面

impdp TELEMT/TELEMT directory=tempdump dumpfile=TELEMT.dmp remap_schema=原用戶名:當前數據庫用戶名remap_tablespace=原表空間:現在數據庫表空間 TABLE_EXISTS_ACTION = SKIP

 

(imp telant_test/telant_test file=telant_test_201800810_data.dmp log=C:\Users\yaoyong\Desktop\telemt190701.log grants=no full=y;)

想到會不會重復導入相同的表查了查,當使用IMPDP完成數據庫導入時,如遇到表已存在時,Oracle提供給我們如下四種處理方式:

  • SKIP:跳過已經存在的表,繼續導入下一個對象,如果CONTENT設置了DATA_ONLY參數,則不能使用SKIP
  • APPEND:不會影響已存在的數據,在原有數據表的基礎上繼續增加數據
  • REPLACE:先刪除掉表,然后創建表,最后完成數據插入
  • TRUNCATE:刪除已存在的行,然后插入所有的數據

補充了參數TABLE_EXISTS_ACTION = SKIP

 

最后發現沒有再報錯誤日志,一開始導入失敗時

原命名空間和現在不一樣,部分表導入失敗,只能刪除用戶

刪除用戶及用戶下的表drop user user_name cascade;

和命名空間,重新創建用戶和和DMP文件一樣的命名空間就可以重新導入數據庫,

暫時導入成功,發現問題再補充

impdp TELEMT/TELEMT@ORCL full=Y  directory=tempdump dumpfile=frameworkexpdp.dmp cluster=N TABLE_EXISTS_ACTION = SKIP

 在linux系統導入導出

su - oracle

expdp test1/test1@127.0.0.1:1521/orcl dumpfile=test1.dmp schemas=test1

impdp test2/test2@localhost:1521/orcl DUMPFILE=test.dmp REMAP_SCHEMA=test1:test2

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM