国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > Oracle > 正文

利用Oracle數(shù)據(jù)泵完成數(shù)據(jù)導入和導出

2024-08-29 13:38:23
字體:
供稿:網(wǎng)友

  在Oracle 10g中, eXP 和 imp 被重新設計為Oracle Data Pump(雖然Oracle 仍然裝載了exp 和imp,并完全地支持它們)。假如你以前使用過exp 和 imp,那么Data Pump 的命令行程序的語法對你來說就不生疏了。
  
  Data Pump 是運行在數(shù)據(jù)庫內(nèi)部的, 而不是像一個獨立的客戶端應用程序一樣存在。這就意味著這部分的工作在一定程度上獨立于發(fā)起執(zhí)行導入或者導出任務的進程 。 在一臺機器上 (例如一個定期任務) 可以開始執(zhí)行導出的任務,而另一臺機器上 (例如 DBA 的 手提電腦) 可以對任務的運行狀態(tài)進行監(jiān)控。 也正因為任務是運行在數(shù)據(jù)庫內(nèi)部的,所以假如你要將數(shù)據(jù)導出到一個文件中,那么你首先要做的事情就是為輸出路徑建立一個數(shù)據(jù)庫的DirectorY 對象,然后給將要進行數(shù)據(jù)導入和導出的用戶授權(quán)訪問,命令如下:
  
  create or replace directory dumpdir as 'c:/';
  
  grant read,write on directory dumpdir to scott;
  
  一旦該路經(jīng)被授權(quán)后,就可以通過以下的命令參數(shù)導出用戶的對象,這些命令與 exp 和 imp 中的命令非常相似:
  
  expdp scott/tiger directory=dumpdir dumpfile=scott.dmp
  
  當導出工作開始執(zhí)行以后,可以通過按下[Ctrl]C (或者是客戶端中具有相同功能的按鍵) 來“中止”導出任務。這樣就不會再有數(shù)據(jù)發(fā)送到你的客戶端了,但是該任務在數(shù)據(jù)庫中仍然還在運行。你的客戶端會進入交互模式(出現(xiàn)Export>提示符)。 在提示符后輸入status就可以查看到當前有哪些任務正在運行。假如在客戶端輸入expdp attach=<任務名>,你就可以連接到一個正在運行的任務上。
  
  Data Pump 并不是一定要寫入到文件中。現(xiàn)在可以通過選項設置就可以將數(shù)據(jù)庫對象通過SQL*Net直接導到一個遠程數(shù)據(jù)庫中。你所要做的就僅僅是指定remote 選項,然后加上與遠程數(shù)據(jù)庫連接的連接字符串。 這就有點類似于對數(shù)據(jù)庫的一次性復制過程。
  
  Data Pump 執(zhí)行起來要比原來的exp 和 imp 客戶端命令快得多。Data Pump 運行得更快是因為它有一個新特性——“parallel”選項。選定這個選項后,Data Pump 將會以四個不同的線程同時壓送數(shù)據(jù)。下面舉個例子,我先執(zhí)行下面的任務,然后按 [Ctrl]C,接著察看后臺任務的狀態(tài):
  
  expdp scott/tiger directory=dumpdir dumpfile=scott2.dmp parallel=4
  job_name=scott2
  
  Export: Release 10.1.0.2.0 - PRodUCtion on Friday, 31 December, 2004 14:54
  
  Copyright (c) 2003, Oracle. All rights reserved.
  
  Connected to: Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 -
  Production
  With the Partitioning, OLAP and Data Mining options
  FlashBACK automatically enabled to preserve database integrity.
  Starting "SCOTT"."SCOTT2": scott/******** directory=dumpdir
  dumpfile=scott2.dmp parallel=4 job_name=scott2
  Estimate in progress using BLOCKS method...
  
  Export> status
  
  Job: SCOTT2
  Operation: EXPORT
  Mode: SCHEMA
  State: EXECUTING
  Bytes Processed: 0
  Current Parallelism: 4
  Job Error Count: 0
  Dump File: C:/SCOTT2.DMP
  bytes written: 4,096
  
  Worker 1 Status:
  State: EXECUTING
  
  Worker 2 Status:
  State: WORK WAITING
  
  Worker 3 Status:
  State: WORK WAITING
  
  Worker 4 Status:
  State: WORK WAITING
  
  其實不僅僅只有Data Pump 是在數(shù)據(jù)庫內(nèi)部運行的,事實上大部分的命令行性質(zhì)的命令都是在數(shù)據(jù)庫內(nèi)部運行的,只不過是通過一個PL/SQL API—— DBMS_DATAPUMP顯示出來。
例如,可以通過以下的PL/SQL代碼來實現(xiàn)通過PL/SQL 包啟動導出任務:
  
  declare
  handle number;
  begin
  handle := dbms_datapump.open('EXPORT','SCHEMA');
  dbms_datapump.add_file(handle,'SCOTT3.DMP','DUMPDIR');
  dbms_datapump.metadata_filter(handle,'SCHEMA_EXPR','= ''SCOTT''');
  dbms_datapump.set_parallel(handle,4);
  dbms_datapump.start_job(handle);
  dbms_datapump.detach(handle);
  end; /
  
  仔細研究 Data Pump ,你可以了解到 Data Pump 其他更多的新特性。例如,Data Pump 可以對數(shù)據(jù)文件重命名,可以將對象移動到不同的表空間中,還可以通過使用通配符結(jié)構(gòu)或者是語句來查找圖表對象或是圖表。Data Pump 還可以用作外部表的接口 (例如,可以將一個表與存儲在一個數(shù)據(jù)泵導出文件中的數(shù)據(jù)關聯(lián)起來,這就像Oracle 9i 以及更高版本中的Oracle Loader 接口一樣)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 吐鲁番市| 英德市| 乐清市| 文成县| 达孜县| 高清| 驻马店市| 禄劝| 锦州市| 莱州市| 神农架林区| 马鞍山市| 宾川县| 三亚市| 通山县| 鸡东县| 龙门县| 嘉兴市| 桑植县| 梁河县| 久治县| 九江市| 陆河县| 卢氏县| 岳西县| 京山县| 永城市| 灌南县| 射阳县| 高雄市| 启东市| 通榆县| 鹤峰县| 云梦县| 正蓝旗| 南和县| 常熟市| 砀山县| 靖江市| 武汉市| 盐城市|