Oracle:linux環境下數據泵導入導出

導出服務器和導入服務器都需要有oracle用戶密碼(密碼爲空請忽略)

一、都需要用到的基礎命令

# 切換到oracle用戶,如果該用戶設置了密碼會提示輸入密碼
su - oracle
#切換到root用戶,會提示你輸入密碼
su root
#給文件夾賦權限,因爲有時候在進行導入導出時會遇到oracle用戶沒有對dmp文件的讀寫權限
chmod

chmod命令參考:chmod—菜鳥教程

二、導出dmp

第一步:首先執行如下sql,找到要導出文件所在的表空間名稱(導入時會用的到

SELECT a.tablespace_name "表空間名",
       total "表空間大小",
       free "表空間剩餘大小",
       (total - free) "表空間使用大小",
       total / (1024 * 1024 * 1024) "表空間大小(G)",
       free / (1024 * 1024 * 1024) "表空間剩餘大小(G)",
       (total - free) / (1024 * 1024 * 1024) "表空間使用大小(G)",
       round((total - free) / total, 4) * 100 "使用率 %"
  FROM (SELECT tablespace_name, SUM(bytes) free
          FROM dba_free_space
         GROUP BY tablespace_name) a,
       (SELECT tablespace_name, SUM(bytes) total
          FROM dba_data_files
         GROUP BY tablespace_name) b
 WHERE a.tablespace_name = b.tablespace_name;

第二步:查詢一些導出要用到參數:複製下圖參數(導入導出都會用到

第三步:導出命令

expdp 
 用戶名/密碼
 dumpfile=xxx.dmp
 logfile=xxx.log
 directory=DATA_PUMP_DIR
 exclude=TABLE:\"LIKE \'表名稱%\'\"
  • dumpfile:指定導出dmp文件名稱
  • logfile:指定導出時日誌文件名稱
  • directory:指定dmp文件的存儲目錄(取第二步查詢出來的值
  • exclude/include(非必須):導入選項,不包括/包括哪些表

至此導入成功

三、文件轉移

數據泵導入導出,由於大多數情況下是跨服務器的,在這裏介紹一個linux系統服務器間文件傳輸的命令

scp:

把當前一個文件copy到遠程服務器上:

scp /home/a.txt root@主機ip:文件要複製到的路徑

從遠程主機copy文件到當前主機:

scp 要拷貝的文件名 root@遠程主機ip:遠程主機上該文件的目錄 保存到本機的目錄

四、數據泵導入

執行導出操作的第一步和第二步,獲取導入需要的參數

導入命令

impdp
 用戶名/密碼
 remap_schema=導出用戶名:導入用戶名
 directory=DATA_PUMP_DIR(即導入dmp文件的存放目錄)
 remap_tablespace=導出表空間:導入表空間
 dumpfile=導入的文件名 
 logfile=導入日誌
 transform=OID:N(非必填,解決導入過程中創建對象報錯等)

等待導入結束

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