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