日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

ORACLE數據庫數據泵的導入導出

作者:lichuanjai 更新時間: 2022-09-25 編程語言

一,數據泵的導入導出

數據泵的簡介

數據泵中牽扯到一個邏輯概念:路徑名稱(DIRECTORY),它在物理上對應一個實際路徑,當使用數據泵時,路徑名稱用于指明導出文件所在路徑。
--先要準備
--1.創建一個路徑指向一個主機上存在的文件夾的路徑
? ? CREATE OR REPLACE DIRECTORY DIR_1 AS 'D:\dir1';? ? ? ? ? ? ? ?--D:\dir1為實際路徑
? ? SELECT * FROM DBA_DIRECTORIES;? ? ? ? ? ? ? ? ? ? ? ?--查看所有路徑
--2.將存放路徑的讀寫權限賦給某用戶(以管理員身份賦權)
? ? GRANT READ,WRITE ON DIRECTORY DIR_1 TO SCOTT;
--3.最好再將DBA權限給該用戶,或exp_full_database和imp_full_database權限
? ? GRANT DBA TO SCOTT;
--開始導出數據(導出表:emp表)
--命令 ?expdp user_name/pwd directory=dump_dir dumpfile=dump.dmp logfile=dump.log tables=tb_name1[,tb_name2]

--開始導出數據(expdp)
EXPDP SCOTT/scott DIRECTORY=DIR_1 DUMPFILE=EMP.DMP LOGFILE=EMP.LOG TABLES=EMP

--EXPDP ?參數介紹
directory --導出路徑,該名稱指向字典DBA_DIRECTORIES中該名稱對應的路徑
dumpfile --導出文件的名稱,后綴為.dmp
logfile --記錄導出過程日志,后綴為.log

tables|schemas|tablespaces|full --分別表示導出表、模式(用戶)、表空間、全庫
content={all|data_only|metadata_only} --分別表示導出數據及定義、僅導出數據、僅導出定義
query=[tb_name:] query_condition --導出表時使用,指定where子句以進行篩選,不能與content連用

將此命令放在命令行窗口運行(cmd打開命令行窗口)

導出成功了,我們可以去對應路徑查看一下我們導出的數據

?

我們可以發現,導出了兩個文件,EMP.DMP和EMP.LOG

我們先來看一下EMP.DMP文件

是一堆亂碼,但沒關系,因為就是我們導出的表的數據,一會導入還需要這個文件作為導入數據

再來看看日志表EMP.LOG

里面就是你剛剛在命令行窗口執行時報出來的信息;這就數據導出成功了。接下來我們導入數據;

--開始導入數據(導入剛剛導出的表的數據)(impdp)
--命令 ?impdp user_name/pwd directory=dump_dir dumpfile=dump.dmp logfile=dump.log tables=tb_name1[,tb_name2]
DROP TABLE EMP;? ? ? ? ? ? ? ? ? ? ? ? ? ? ?--為了方便驗證,我們將emp表刪除
SELECT * FROM EMP;? ? ? ? ? ? ? ? ? ? ? ? --查一下emp表,看看還存不存在

以上就是查不到emp表了

--導入數據(在命令行執行)
IMPDP SCOTT/scott DIRECTORY=DIR_1 DUMPFILE=EMP.DMP LOGFILE=EMP.LOG TABLES=EMP TABLE_EXISTS_ACTION=REPLACE

以上就是導入成功了

可以再查一下emp表,看有沒有這個表

SELECT * FROM EMP;

?

?這就是導入成功了。

--IMPDP-參數介紹:
directory --導出路徑,該名稱指向字典DBA_DIRECTORIES中該名稱對應的路徑
dumpfile --導出文件的名稱,后綴為.dmp
logfile --記錄導出過程日志,后綴為.log
tables|schemas|tablespaces|full --分別表示導出表、模式(用戶)、表空間、全庫
remap_schema=from_schema:to_schema --改變用戶所屬 ? 從哪個用戶來,要到哪個用戶去
IMPDP SCOTT/scott DIRECTORY=DIR_87 DUMPFILE=EMP.DMP LOGFILE=EMP.LOG TABLES=EMP,DEPT REMAP_SCHEMA=SCOTT:LICHUANJIA --從scott來,到LICHUANJIA去
remap_tablespace=from_tbs:to_tbs --改變表空間
table_exists_action={skip|append|replace|truncate} --表存在時的處理:跳過、補充、替換、清空
SKIP:當表存在時,什么操作都不做,直接跳過
APPEND:當表存在時,在現有數據的基礎之上補充數據
REPLACE:當表存在時,替換表結構和數據,相當于刪除表后又重建插數據
TRUNCATE:當表存在時,清空表,再插入數據
工作中用的比較多的是 append/truncate

擴展:

導出:(導出用戶,表空間,數據庫)

用戶:
expdp user_name/pwd directory=dump_dir dumpfile=dump.dmp logfile=dump.log schemas=user_name1[,user_name2]?
EXPDP SCOTT/scott DIRECTORY=DIR_87 DUMPFILE=LI.DMP LOGFILE=LI.LOG SCHEMAS=LICHUANJIA ? --導出用戶
表空間:
expdp user_name/pwd directory=dump_dir dumpfile=dump.dmp logfile=dump.log tablespaces=tbs_name1[,tbs_name2] ?-- 不用
數據庫:
expdp user_name/pwd directory=dump_dir dumpfile=dump.dmp logfile=dump.log full=y

?導入:(導入用戶,表空間,數據庫)

用戶:
impdp user_name/pwd directory=dump_dir dumpfile=dump.dmp logfile=dump.log schemas=user_name1[,user_name2]?
IMPDP SCOTT/scott DIRECTORY=DIR_87 DUMPFILE=LI.DMP LOGFILE=LI.LOG SCHEMAS=LICHUANJIA ? --導入用戶
表空間:
impdp user_name/pwd directory=dump_dir dumpfile=dump.dmp logfile=dump.log tablespaces=tbs_name1[,tbs_name2]?
數據庫:
impdp user_name/pwd directory=dump_dir dumpfile=dump.dmp logfile=dump.log full=y

注:感興趣的可以都試試。

?

?

?

原文鏈接:https://blog.csdn.net/lxslf/article/details/126990768

欄目分類
最近更新