亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > Oracle > 正文

教你怎樣在Oracle數據庫中高速導出/導入

2024-08-29 13:53:22
字體:
來源:轉載
供稿:網友

迄今為止,導出/導入工具集仍是跨多個平臺轉移數據所需勞動強度最小的首選實用工具,盡管人們常常抱怨它速度太慢。導入只是將每條記錄從導出轉儲文件中讀出來,然后使用常見的 INSERT INTO 命令將其插入到目標表中,因此導入可能是個很慢的過程,這一點并不讓人感到吃驚。

進入 Oracle Data Pump,Oracle Database 10g 中的導出/導入工具包的更新更快的同類工具,它被設計來成倍地加速這個過程。

Data Pump 反映了整個導出/導入過程的徹底革新。它不是使用常見的 SQL 命令,而是應用專用 API 來以更快得多的速度加載和卸載數據。在我的測試中,我看到導出性能比在直接模式下提高了 10-15 倍,導入過程性能提高了 5 倍。此外,與使用導出實用工具不同,它還能夠只取出特定類型的對象(如過程)。

Data Pump 導出

這個新的實用工具稱為 expdp,以和原來的導出 exp 區分開。在本例中,我們將用 Data Pump 來導出一個大表 CASES,大小約為 3GB。Data Pump 在服務器端使用文件處理來創建和讀取文件;因此,目錄作為位置使用。在這種情況下,我們將使用文件系統 /u02/dpdata1 來保存轉儲文件。


  
  create directory dpdata1 as '/u02/dpdata1';
  grant read, write on directory dpdata1 to ananda;
 
 

 
接下來,我們將導出數據:


  
  expdp ananda/abc123 tables=CASES directory=DPDATA1
  dumpfile=expCASES.dmp job_name=CASES_EXPORT
 
讓我們來分析該命令的各個部分。用戶 ID/口令組合、表和轉儲文件參數的意義是顯而易見的。與原來的導出不同,文件是在服務器(不是客戶端)上創建的。位置由目錄參數值 DPDATA1 指定,它指向之前創建的 /u02/dpdata1。這個進程還在目錄參數指定的位置上創建一個日志文件(同樣在服務器上)。默認地,這個進程使用一個名稱為 DPUMP_DIR 的目錄;因此可以創建它來代替 DPDATA1。

注意上面的參數 job_name,這是個特殊的參數,在原來的導出中沒有。所有的 Data Pump 工作都通過作業來完成。Data Pump 作業 — 與 DBMS 作業不同 — 只是服務器進程,它代表主進程處理數據。主進程(稱為主控制進程)通過高級隊列 (AQ) 來協調這項工作;它通過在運行期內創建的一個特殊的表(稱為主表)來實現這個目的。在我們的例子中,如果您在 expdp 運行時檢查用戶 ANANDA 的模式 ,您將注意到一個表 CASES_EXPORT 的存在(對應參數 job_name)。當 expdp 結束時,這個表被丟棄。

導出監控

當 Data Pump Export (DPE) 運行時,按 Control-C;它將阻止消息在屏幕上顯示,但不停止導出進程本身。相反,它將顯示 DPE 提示符(如下所示)。進程現在被認為處于“交互式”模式:

Export>

這種方法允許在這個 DPE 作業上輸入幾條命令。要查看概要,在提示符下使用 STATUS 命令:


  
  Export> status
  Job:CASES_EXPORT
  Operation:EXPORT            
  Mode:TABLE             
  State:EXECUTING           
  Degree: 1
  Job Error Count: 0
  Dump file:/u02/dpdata1/expCASES.dmp
  bytes written = 2048
  
  Worker 1 Status:
  State:EXECUTING           
  Object Schema:DWOWNER
  Object Name:CASES
  Object Type:TABLE_EXPORT/TBL_TABLE_DATA/TABLE/TABLE_DATA
  Completed Objects: 1
  Total Objects: 1
  Completed Rows: 4687818
 
 

 
記住,這只是狀態顯示。導出在后臺工作。要繼續在屏幕上查看消息,從 Export> 提示符下使用命令 CONTINUE_CLIENT。

并行操作

您可以通過 PARALLEL 參數為導出使用一個以上的線程來顯著地加速作業。每個線程創建一個單獨的轉儲文件,因此參數 dumpfile 應當擁有和并行度一樣多的項目。您可以指定通配符作為文件名,而不是顯式地輸入各個文件名,例如:


  
  expdp ananda/abc123 tables=CASES directory=DPDATA1
  dumpfile=expCASES_%U.dmp parallel=4 job_name=Cases_Export

 


注意 dumpfile 參數擁有一個通配符 %U,它指示文件將按需要創建,格式將為 expCASES_nn.dmp,其中 nn 從 01 開始,然后按需要向上增加。

在并行模式下,狀態屏幕將顯示四個工作進程。(在默認模式下,只有一個進程是可見的。)所有的工作進程同步取出數據,并在狀態屏幕上顯示它們的進度。

分離訪問數據文件和轉儲目錄文件系統的輸入/輸出通道是很重要的。否則,與維護 Data Pump 作業相關的開銷可能超過并行線程的效益,并因此而降低性能。并行方式只有在表的數量多于并行值并且表很大時才是有效的。

數據庫監控

您還可以從數據庫視圖獲得關于運行的 Data Pump 作業的更多信息。監控作業的主視圖是 DBA_DATAPUMP_JOBS,它將告訴您在作業上有多少個工作進程(列 DEGREE)在工作。另一個重要的視圖是 DBA_DATAPUMP_sessionS,當它與上述視圖和 V$SESSION 結合時將給出主前臺進程的會話 SID。


  
  select sid, serial#
  from v$session s, dba_datapump_sessions d
  where s.saddr = d.saddr;
 
 

 
這條指令顯示前臺進程的會話。更多有用的信息可以從警報日志中獲得。當進程啟動時,MCP 和工作進程在警報日志中顯示如下:


  
  kupPRdp:master process DM00 started with pid=23,
    OS id=20530 to execute -
  SYS.KUPM$MCP.MAIN('CASES_EXPORT', 'ANANDA');
  
  kupprdp:worker process DW01 started with worker
    id=1, pid=24, OS id=20532 to execute -
  SYS.KUPW$WORKER.MAIN('CASES_EXPORT', 'ANANDA');
  
  kupprdp:worker process DW03 started with worker
    id=2, pid=25, OS id=20534 to execute -
  SYS.KUPW$WORKER.MAIN('CASES_EXPORT', 'ANANDA');
 
 

 
它顯示為數據泵操作啟動的會話的 PID。您可以用以下查詢找到實際的 SID:


  
  select sid, program from v$session where paddr in
  (select addr from v$process where pid in (23,24,25));
 
 

 
PROGRAM 列將對應警報日志文件中的名稱顯示進程 DM (為主進程)或 DW (為工作進程)。如果一個工作進程使用了并行查詢,比如說 SID 23,您可以在視圖 V$PX_SESSION 中看到它,并把它找出來。它將為您顯示從 SID 23 代表的工作進程中運行的所有并行查詢會話:


  
  select sid from v$px_session where qcsid = 23;
 
 

 
從視圖 V$SESSION_LONGOPS 中可以獲得其它的有用信息來預測完成作業將花費的時間。


  
  select sid, serial#, sofar, totalwork
  from v$session_longops
  where opname = 'CASES_EXPORT'
  and sofar != totalwork;
 
 

 
列 totalwork 顯示總工作量,該列的 sofar 數量被加和到當前的時刻 — 因而您可以用它來估計還要花多長時間。

Data Pump 導入

不過,數據導入性能是 Data Pump 真正出色的地方。要導入先前導出的數據,我們將使用


  
  impdp ananda/abc123 directory=dpdata1
    dumpfile=expCASES.dmp job_name=cases_import

 


導入進程的默認行為是創建表和所有相關的對象,然后在表已存在時產生一個錯誤。如果您想把數據添加到一個現有的表中,您可以在上述命令行中使用 TABLE_EXISTS_ACTION=APPEND。

和使用 Data Pump 導入一樣,在進程中按 Control-C 將進入 Date Pump Import (DPI) 的交互模式;同樣,提示符是 Import>。

處理特定對象

您是否有過只需要從一個用戶導出特定的過程,以在一個不同的數據庫或用戶中重新創建這些過程的情況?與傳統的導出實用工具不同,Data Pump 允許您只導出特定類型的對象。例如,以下命令讓您只導出過程,而不導出其它任何東西 — 不導出表、視圖、甚至函數:


  
  expdp ananda/iclaim directory=DPDATA1
    dumpfile=expprocs.dmp include=PROCEDURE
 
 

 
要只導出一些特定的對象 — 比如說,函數 FUNC1 和過程 PROC1 — 您可以使用

 

 
  expdp ananda/iclaim directory=DPDATA1 dumpfile=expprocs.dmp
  include=PROCEDURE:/"=/'PROC1/'/",FUNCTION:/"=/'FUNC1/'/"
 

  
這個轉儲文件充當了源對象的一個備份。您甚至可以用它來創建 DDL 腳本,以供之后使用。一個稱為 SQLFILE 的特殊參數允許創建 DDL 腳本文件。

 

 
  impdp ananda/iclaim directory=DPDATA1
    dumpfile=expprocs.dmp sqlfile=procs.sql
 

  
該指令在 DPDATA1 指定的目錄中創建一個名稱為 procs.sql 的文件,并將對象的腳本包含在導出轉儲文件中。這種方法幫助您快速地在另一個模式中創建源對象。

利用參數 INCLUDE 允許您從轉儲文件中定義要包含或排除的對象。您可以使用子句 INCLUDE=TABLE:"LIKE 'TAB%'" 來僅導出那些名稱以 TAB 開頭的表。類似地,您可以使用結構 INCLUDE=TABLE:"NOT LIKE 'TAB%'" 來排除所有名稱以 TAB 開頭的表。作為另一種選擇,您可以使用 EXCLUDE 參數來排除特定的對象。

通過外部表,Data Pump 還可以用來傳輸表空間;它非常強大,能夠即時地重定義并行方式,將更多的表添加到一個現有的進程中等等。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲欧美另类自拍| 国产精品视频在线播放| 日韩一区二区三区国产| 欧美一级免费看| 亚洲第一区在线观看| 午夜精品在线观看| 亚洲第一男人av| 精品视频在线观看日韩| 亚洲欧洲一区二区三区在线观看| 国产日韩欧美中文在线播放| 久久五月天综合| 亚洲电影第1页| 激情久久av一区av二区av三区| 欧美孕妇毛茸茸xxxx| 亚洲欧洲成视频免费观看| 欧美激情精品久久久久久久变态| 91精品国产91久久久久久| 欧美在线一区二区三区四| 九九视频直播综合网| 91久久嫩草影院一区二区| 精品色蜜蜜精品视频在线观看| 国产亚洲欧美日韩一区二区| 青青草99啪国产免费| 国产成人啪精品视频免费网| 国产成人aa精品一区在线播放| 亚洲大胆人体av| 7777kkkk成人观看| 国产一区二区三区在线播放免费观看| 欧美日韩一区二区三区在线免费观看| 精品久久久久人成| 亚洲香蕉在线观看| 51视频国产精品一区二区| 91丝袜美腿美女视频网站| 国内精品免费午夜毛片| 久久中文字幕在线视频| 久久琪琪电影院| 欧美国产日韩精品| 97在线视频免费看| 狠狠爱在线视频一区| 亚洲精品久久久久| 91欧美精品午夜性色福利在线| 久热99视频在线观看| 精品国产电影一区| 国内精品400部情侣激情| 浅井舞香一区二区| 日韩av色综合| 不卡伊人av在线播放| 国产一区二区三区日韩欧美| 亚洲美腿欧美激情另类| 欧美激情免费视频| 色哟哟网站入口亚洲精品| 亚洲人成在线观看网站高清| 91av在线播放视频| 亚洲一区亚洲二区| 亚洲精品福利免费在线观看| 国产黑人绿帽在线第一区| 国产一区二区日韩精品欧美精品| 国产精品九九九| 欧美日韩另类字幕中文| 国产精品wwwwww| 亚洲a区在线视频| 欧美在线激情网| 97免费中文视频在线观看| 久久国产色av| 久久影院资源站| www.久久久久久.com| 亚洲欧美日韩爽爽影院| 欧美日韩在线视频观看| 992tv成人免费影院| 亚洲欧美中文日韩在线v日本| 91美女片黄在线观看游戏| 国产91精品久久久久| 成人久久久久久| 精品久久久国产精品999| 欧美日韩另类字幕中文| 91亚洲午夜在线| 亚洲国产成人精品电影| 国产精品福利网| 日韩有码在线播放| 色yeye香蕉凹凸一区二区av| 精品高清美女精品国产区| 久久精品中文字幕| 欧美成人午夜视频| 日韩有码视频在线| 国产最新精品视频| 日韩av一卡二卡| 中文字幕久久亚洲| 伊人一区二区三区久久精品| 国产精品久久一| 国产精品aaaa| 国产精品美女999| 欧美成人午夜剧场免费观看| 成人疯狂猛交xxx| 国产综合视频在线观看| 中文亚洲视频在线| 日韩在线资源网| 国产精品久久在线观看| 中文字幕免费精品一区| 国产视频丨精品|在线观看| 久久精品国产一区二区三区| 亚洲日本中文字幕| 操人视频在线观看欧美| 欧洲成人午夜免费大片| 久久视频中文字幕| 一本久久综合亚洲鲁鲁| 久久久久久久久久国产精品| 国产精品一区二区在线| 成人国产精品一区| 久久精品视频亚洲| 欧美日韩在线一区| 亚洲精品一区久久久久久| 欧美特黄级在线| 亚洲欧美综合区自拍另类| 欧美日韩中文字幕日韩欧美| 精品久久久免费| 欧美做受高潮电影o| 91精品国产电影| 日韩在线视频观看正片免费网站| 亚洲最新在线视频| 欧美成人免费全部观看天天性色| 午夜精品久久久99热福利| 亚洲а∨天堂久久精品9966| 国产精品亚洲第一区| 欧美精品videos| 国产精品久久久久久久久久久久| 国产精品久久久久7777婷婷| 国产精品福利观看| 亚洲欧美制服另类日韩| 69久久夜色精品国产69乱青草| 97精品在线视频| 国产精品久久久久久久av电影| 日韩欧美在线观看| 亚洲欧美一区二区精品久久久| 日韩在线观看免费高清完整版| 亚洲精品中文字幕av| 国产欧美韩国高清| 亚洲欧美日韩高清| 在线观看精品国产视频| 亚洲天堂影视av| 亚洲国产精品久久久久久| 国产精品美女免费视频| 欧美午夜视频在线观看| 国产aaa精品| 成人福利在线观看| 欧美日韩中文字幕在线| 欧美疯狂xxxx大交乱88av| 久久99精品久久久久久噜噜| 亚洲精品不卡在线| 57pao成人国产永久免费| 5252色成人免费视频| 欧美性猛交xxxx黑人猛交| 亚洲综合国产精品| 亚洲精品日韩激情在线电影| 美女性感视频久久久| 亚洲国产另类 国产精品国产免费| 成人网址在线观看| 亚洲成人a级网| 国产精品久久久久久av福利软件| 欧美亚洲视频在线观看| 伊人精品在线观看| 亚洲视频在线免费观看| 欧美成人午夜激情视频| 国产999视频| 亚洲欧美变态国产另类|