3.Oracle導庫

目錄

一、導入:imp,導出:exp

二、導入:impdp,導出:expdp


Oracle導入導出數據庫可以使用兩種命令

一、導入:imp,導出:exp

1.創建表空間

create tablespace ekp1

datafile 'D:\app\orcl\ekp.dbf'

size 8G

autoextent on

next 100M

maxsize unlimited

extent management local autoallocate

segment space management auto

 

2.增加表空間

alter tablespace ekp1 datafile 'D:\app\orcl\ekp1.dbf' size 8G;

alter tablespace ekp1 datafile 'D:\app\orcl\ekp2.dbf' size 8G;

 

3.創建用戶並指定表空間

create user  tengpengfei identified by 123 default tablespace ekp1

 

4.給用戶權限

grant dba to tengpengfei

 

5.導入/導出數據庫,導入/導出數據庫有兩種命令imp/exp,impdp/expdp

導入導出只能使用對應的命令

IMP

imp 用戶名/密碼@數據庫實例名    --創建實例

file=D:\20190811.dmp                 --待導入的dmp文件

log=D:\20190811.log                   --導入時生成的日誌文件

[ fromuser=導出數據的用戶名]      --導出dmp文件的用戶(根據用戶名導入數據時配置)

[ touser=導入數據的用戶名]          --導入dmp文件的用戶(根據用戶名導入數據時配置)

[full=y]                                          --導入dmp文件中的全部內容

ignore=y                                       --導入時如果沒有表,創建表導入數據,有表,忽略表導入數據

注意:full和fromuser,touser不能同時使用

 

EXP

exp 用戶名/密碼@數據庫實例        --創建實例

file=D:\20190811.dmp                 --待導出的dmp文件

log=D:\20190811.log                   --導出時生成的日誌文件

[owner=(用戶名)]                           --導出哪個用戶下的表和數據

[tables=(test1,test2)]                     --導出test1表和test2表

[query=\" where filed like'%0'\"]  --導出指定條件結果

[full=y]

 

二、導入:impdp,導出:expdp

這個命令可以導入到指定的表空間,或者指定用戶,而imp/exp命令,導出時是什麼用戶/表空間,導入時不能修改。

 

源數據:

表空間ekp

用戶ekp12

 

目標數據

表空間ekp1

用戶tengpengfei

 

前三步和上面是一致的

4.創建邏輯目錄: create directory  dump_dir  as 'd:\';

5.給導出用戶賦予讀寫權限: grant read,write on directory dump_dir to tengpengfei;

6.導入\導出

 

IMPDP

impdp 用戶名/密碼@數據庫實例

directory=dump_dir

dumpfile=20190811.dmp

remap_schema=ekp12:tengpengfei

remap_tablespace=ekp:ekp1

logfile=20190811.log

 

EXPDP

expdp 用戶名/密碼@數據庫實例

schemas=ekp12

directory=dump_dir

dumpfile=20190811.dmp

logfile=20910811.log

 

注意:dump_dir是邏輯目錄,使用以下命令創建,查看,刪除

create directory dump_dir as 'd:\test';

select * from dba_directories;

drop directory  dump_dir;

 

 

注意:在導入時,可能會卡死,當我們想刪除用戶再次創建用戶,再次重新執行以上命令出現異常

①:ora-01940:無法刪除當前已連接用戶,我的原因是強行終止導入導致用戶tengpengfei被鎖住了,可以使用

  • 查看用戶對應的session:select username,sid,serial# from v$session where username='tengpengfei';

  • 刪除session信息: alter system kill session'對應sid,對應serial#';

再次刪除用戶即可完成。

②ora-28000:賬戶已被鎖定

  • 解鎖賬戶:alter user tengpengfei account unlock;

 

 

其他的一些命令:

  • 刪除表空間:drop tablespace ekp1 including contents and datafiles;

  • 刪除用戶以及用戶下的數據:drop user tengpengfei cascade

  • 查看錶數據硬盤上所在位置:select * from dba_data_files

  • 查看指定用戶下的數據量:select sum(s.bytes)/1024/1024 "size(MB)" from dba_segments s where s.owner='tengpengfei'

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章