1. 程式人生 > >ORACLE使用EXP匯出dmp檔案注意事項

ORACLE使用EXP匯出dmp檔案注意事項

Oracle 中用 imp 和 exp 命令匯入匯出資料庫(附問題及解決辦法)

用 imp 和 exp 命令匯入匯出資料庫

注: 在splplus環境下執行時,在命令前加 ! 號,這樣 SQL> !exp … 和 SQL> !imp …

基本語法和例項:
1. EXP
有三種主要的方式(完全、使用者、表)
1.1 完全
EXP SYSTEM/MANAGER BUFFER=64000 FILE=C:\FULL.DMP FULL=Y
如果要執行完全匯出,必須具有特殊的許可權
1.2 使用者模式
EXP SONIC/SONIC BUFFER=64000 FILE=C:\SONIC.DMP OWNER=SONIC
這樣使用者SONIC的所有物件被輸出到檔案中。
1.3 表模式
EXP SONIC/SONIC BUFFER=64000 FILE=C:\SONIC.DMP OWNER=SONIC TABLES=(SONIC)
這樣使用者SONIC的表SONIC就被匯出
2. IMP
具有三種模式(完全、使用者、表)
1.1 完全:
IMP SYSTEM/MANAGER BUFFER=64000 FILE=C:\FULL.DMP FULL=Y
1.2 使用者模式:
IMP SONIC/SONIC BUFFER=64000 FILE=C:\SONIC.DMP FROMUSER=SONIC TOUSER=SONIC
這樣使用者SONIC的所有物件被匯入到檔案中。必須指定FROMUSER、TOUSER引數,這樣才能匯入資料。
1.3 表模式:
EXP SONIC/SONIC BUFFER=64000 FILE=C:\SONIC.DMP OWNER=SONIC TABLES=(SONIC)
這樣使用者SONIC的表SONIC就被匯入。

ORACLE資料庫有兩類備份方法。第一類為物理備份,該方法實現資料庫的完整恢復,但資料庫必須執行在歸擋模式下(業務資料庫在非歸擋模式下執行),且需要極大的外部儲存裝置,例如磁帶庫;第二類備份方式為邏輯備份,業務資料庫採用此種方式,此方法不需要資料庫執行在歸擋模式下,不但備份簡單,而且可以不需要外部儲存裝置。
  
  資料庫邏輯備份方法
  
  ORACLE資料庫的邏輯備份分為三種模式:表備份、使用者備份和完全備份。
  
  表模式
  
  備份某個使用者模式下指定的物件(表)。業務資料庫通常採用這種備份方式。
  
  若備份到本地檔案,使用如下命令:
  
  exp icdmain/icd rows=y indexes=n compress=n buffer=65536
  feedback=100000 volsize=0
  file=exp_icdmain_csd_yyyymmdd.dmp
  log=exp_icdmain_csd_yyyymmdd.log
  tables=icdmain.commoninformation,icdmain.serviceinfo,icdmain.dealinfo
  
  若直接備份到磁帶裝置,使用如下命令:
  exp icdmain/icd rows=y indexes=n compress=n buffer=65536
  feedback=100000 volsize=0
  file=/dev/rmt0
  log=exp_icdmain_csd_yyyymmdd.log
  tables=icdmain.commoninformation,icdmain.serviceinfo,icdmain.dealinfo
  
  注:在磁碟空間允許的情況下,應先備份到本地伺服器,然後再拷貝到磁帶。出於速度方面的考慮,儘量不要直接備份到磁帶裝置。
  
  使用者模式
  
  備份某個使用者模式下的所有物件。業務資料庫通常採用這種備份方式。
  若備份到本地檔案,使用如下命令:
  exp icdmain/icd owner=icdmain rows=y indexes=n compress=n buffer=65536
  feedback=100000 volsize=0
  file=exp_icdmain_yyyymmdd.dmp
  log=exp_icdmain_yyyymmdd.log
  若直接備份到磁帶裝置,使用如下命令:
  exp icdmain/icd owner=icdmain rows=y indexes=n compress=n buffer=65536
  feedback=100000 volsize=0
  file=/dev/rmt0
  log=exp_icdmain_yyyymmdd.log
  注:如果磁碟有空間,建議備份到磁碟,然後再拷貝到磁帶。如果資料庫資料量較小,可採用這種辦法備份。

  以下為詳細的匯入匯出例項。

    先說明一下格式中容易迷惑的地方:

    exp userName/[email protected] ...
    imp userName/[email protected] ...

    dbName:資料庫名
    userName:使用者名稱,該使用者擁有操作dbName資料庫的許可權。
    userPassword:是userName使用者連結dbName資料庫的密碼。



    下面是例項:

  一、資料匯出

  1. 將資料庫TEST完全匯出,使用者名稱system 密碼manager 匯出到D:\daochu.dmp中
  exp system/

[email protected] file=d:\daochu.dmp full=y

  2. 將資料庫中system使用者與sys使用者的表匯出
  exp system/[email protected] file=d:\daochu.dmp owner=(system,sys)

  3. 將資料庫中的表table1 、table2匯出
  exp system/[email protected] file=d:\daochu.dmp tables=(table1,table2)

  4. 將資料庫中的表table1中的欄位filed1以”00”打頭的資料匯出
  exp system/[email protected] file=d:\daochu.dmp tables=(table1) query=\” where filed1 like ‘00%’\”

  上面是常用的匯出,對於壓縮我不太在意,用winzip把dmp檔案可以很好的壓縮。

  不過在上面命令後面 加上 compress=y 就可以了

  二、資料的匯入

  1. 將D:\daochu.dmp 中的資料匯入 TEST資料庫中。
  imp system/[email protected] file=D:\daochu.dmp

  上面可能有點問題,因為有的表已經存在,然後它就報錯,對該表就不進行匯入。
  在後面加上 ignore=y 就可以了。

  2. 將d:\daochu.dmp中的表table1 匯入
  imp system/[email protected] file=D:\daochu.dmp tables=(table1)

  基本上上面的匯入匯出夠用了。不少情況我是將表徹底刪除,然後匯入。

 【注意兩點】

      1. 如果出現 ORA-12541: TNS:no listener 錯誤,說明需要開啟監聽。

          監聽命令

          啟動監聽:lsnrctl start 
          檢視監聽:lsnrctl status 
          停止監聽:lsnrctl stop 

     2. 如果出現 ORA-12514: TNS:listener does not currently know of service requested in connect descriptor 錯誤,說明當前使用者沒有許可權匯入/匯出這個資料庫。先確定已經開啟資料庫,然後回到SYS使用者後再試。

  資料庫時可以連上的。可以用tnsping TEST 來獲得資料庫TEST能否連上。

==============================================================

用exp和imp命令匯入匯出資料庫時碰到的問題及解決辦法

(原創)

oracle 11G在用EXP匯出時,空表不能匯出,出現“EXP-00003”錯誤,再用IMP匯入時就會出現“IMP-00003”和“ORA-00942: 表或檢視不存在”等錯誤。

在Oracle 11g r2中,發現傳統的exp居然不能匯出空的表,然後查詢一下,發現需要如下的步驟去搞,筆記之。
Oracle 11g 新增了一個引數“deferred_segment_creation”,含義是段延遲建立,預設是true。具體是什麼意思呢?
如果這個引數設定為true,你新建了一個表T1,並且沒有向其中插入資料,那麼這個表不會立即分配extent,也就是不佔資料空間,只有當你insert資料後才分配空間。這樣可以節省少量的空間。

那麼如何匯出空表呢?

【解決辦法】

  1. insert一行,再rollback就產生segment了。
      該方法是在在空表中插入資料,再刪除,則產生segment。匯出時則可匯出空表。

  2. 設定“deferred_segment_creation”引數為FALSE後,無論是空表還是非空表,都分配segment。
    在sqlplus中,執行如下命令:
    2.1 檢視
    SQL>show parameter deferred_segment_creation;
    2.2 修改
    SQL>alter system set deferred_segment_creation=false;
    該引數值預設是TRUE,當改為FALSE時,無論是空表還是非空表,都分配segment。
      需注意的是:該值設定後對以前的空表不產生作用,仍不能匯出,只能對後面新增的表產生作用。如需匯出之前的空表,只能用第一種方法。
    注意並且要重新啟動資料庫,讓引數生效。

  3. 使用ALLOCATE EXTENT
    3.1 使用ALLOCATE EXTENT可以為資料庫物件分配Extent。其語法如下:

    ALLOCATE EXTENT { SIZE integer [K | M] | DATAFILE ‘filename’ | INSTANCE integer }

    可以針對資料表、索引、物化檢視等手工分配Extent。
    ALLOCATE EXTENT使用樣例:
    ALLOCATE EXTENT
    ALLOCATE EXTENT(SIZE integer [K | M])
    ALLOCATE EXTENT(DATAFILE ‘filename’)
    ALLOCATE EXTENT(INSTANCE integer)
    ALLOCATE EXTENT(SIZE integer [K | M] DATAFILE ‘filename’)
    ALLOCATE EXTENT(SIZE integer [K | M] INSTANCE integer)
    針對資料表操作的完整語法如下:

    ALTER TABLE [schema.]table_name ALLOCATE EXTENT [({ SIZE integer [K | M] | DATAFILE ‘filename’ | INSTANCE integer})]

schema為資料庫物件的集合,為了區分各個集合,我們需要給這個集合起個名字,這些名字就是我們在企業管理器的方案下看到的許多類似使用者名稱的節點,這些類似使用者名稱的節點其實就是一個schema,schema裡面包含了各種物件如tables, views, sequences, stored procedures, synonyms, indexes, clusters, and database links。
一個使用者一般對應一個schema,該使用者的schema名等於使用者名稱,並作為該使用者預設schema。這也就是我們在企業管理器的方案下看到schema名都為資料庫使用者名稱的原因。
最簡單的理解:以你計算機的使用者為例,如果你的計算機有3個使用者,那麼每個使用者登入系統看到的(使用的)功能是可以不相同的搜尋!
所以需要構建如下樣子簡單的SQL命令:

alter table aTabelName allocate extent;

3.2 構建對空表分配空間的SQL命令,
查詢當前使用者下的所有空表,命令如下:
SQL> select table_name from user_tables where NUM_ROWS=0;

根據上述查詢,可以構建針對空表分配空間的命令語句,如下:
SQL> Select ‘alter table ‘||table_name||’ allocate extent;’ from user_tables where num_rows=0;

‘ALTERTABLE’||TABLE_NAME||’ALLOCATEEXTENT;’

alter table BPIS_TREAT_PLAN_LIST allocate extent;
alter table CIS_ASSESS_REP allocate extent;
alter table CIS_GROUP allocate extent;
alter table CIS_INFO_QUEUE allocate extent;
alter table CIS_INSPECTION_ASSESS_LIST allocate extent;
alter table CIS_INSPECTION_RESULT allocate extent;
alter table CIS_ITEM allocate extent;
alter table CIS_ITEM_CHANNEL allocate extent;
alter table CIS_ITEM_COMBINATION allocate extent;
alter table CIS_ITEM_COMBINATION_ITEM allocate extent;

批量輸出了上述生成的SQL語句,然後執行。
一條一條執行也不現實,可以通過匯出指令碼執行,如下:

SQL> set heading off
SQL> set echo off
SQL> set feedback off
SQL> set termout on
SQL> spool …/…/a.sql
SQL> Select ‘alter table ‘||table_name||’ allocate extent;’ from user_tables where num_rows=0;
SQL> spool off

此時更新這些空表的每條SQL語句已經寫到a.sql檔案中了,然後執行這個sql檔案更新資料庫即可。

【附註】
Select ‘alter table ‘||table_name||’ allocate extent;’ from user_tables where num_rows=0;
也可以換成:
Select ‘alter table ‘||table_name||’ allocate extent;’ from user_tables where segment_created= ‘NO’;

(轉帖)

朋友在匯入11GR2發現瞭如下的錯誤日誌:

MP-00017: 由於 ORACLE 錯誤 942, 以下語句失敗:
“ALTER TABLE “BD_CALBODY” ADD CONSTRAINT “F_BD_CALBODY1” FOREIGN KEY (“PK_AD”
“DRESS”) REFERENCES “BD_ADDRESS” (“PK_ADDRESS”) ENABLE NOVALIDATE”
IMP-00003: 遇到 ORACLE 錯誤 942
ORA-00942: 表或檢視不存在
IMP-00017: 由於 ORACLE 錯誤 942, 以下語句失敗:
“ALTER TABLE “BD_STORDOC” ADD CONSTRAINT “F_BD_STORDOC1” FOREIGN KEY (“PK_AD”
“DRESS”) REFERENCES “BD_ADDRESS” (“PK_ADDRESS”) ENABLE NOVALIDATE”
IMP-00003: 遇到 ORACLE 錯誤 942
ORA-00942: 表或檢視不存在
IMP-00017: 由於 ORACLE 錯誤 942, 以下語句失敗:
“ALTER TABLE “BD_BOM_B” ADD CONSTRAINT “FK_BDBOMB_BOMID” FOREIGN KEY (“PK_BO”
“MID”) REFERENCES “BD_BOM” (“PK_BOMID”) ENABLE NOVALIDATE”
IMP-00003: 遇到 ORACLE 錯誤 942
ORA-00942: 表或檢視不存在
IMP-00017: 由於 ORACLE 錯誤 942, 以下語句失敗:
“ALTER TABLE “BD_BOM_ZP” ADD CONSTRAINT “FK_BDBOMZP_BOMID” FOREIGN KEY (“PK_”
“BOM_BID”) REFERENCES “BD_BOM_B” (“PK_BOM_BID”) ENABLE NOVALIDATE”
IMP-00003: 遇到 ORACLE 錯誤 942
ORA-00942: 表或檢視不存在
IMP-00017: 由於 ORACLE 錯誤 942, 以下語句失敗:
“ALTER TABLE “BD_BOM_TD” ADD CONSTRAINT “FK_BOM_ZXTD” FOREIGN KEY (“PK_BOM_B”
“ID”) REFERENCES “BD_BOM_B” (“PK_BOM_BID”) ENABLE NOVALIDATE”
IMP-00003: 遇到 ORACLE 錯誤 942
ORA-00942: 表或檢視不存在。

發現以上問題開始以為是物件不對的問題或者是表刪除的問題,但經過在網上查詢發現不是上述問題是11GR2資料庫版本的問題:11GR2中有個新特性,當表無資料時,不分配segment,以節省空間,可是在用EXPORT匯出時,空表也不能匯出,這就導致遷移時候丟失了一些表,儲存過程也失效了。

本以為EXP能有相應的控制開關,可以切換是否匯出空表,看了下幫助,沒有太大的改變。有些奇怪,難道11GR2不更新EXP的功能。

解決方法:

一、insert一行,再rollback就產生segment了。
  該方法是在在空表中插入資料,再刪除,則產生segment。匯出時則可匯出空表。

二、設定deferred_segment_creation引數該引數值預設是TRUE,當改為FALSE時,無論是空表還是非空表,都分配segment。修改語句:

alter system set deferred_segment_creation=false scope=both;

  需注意的是:該值設定後對以前匯入的空表不產生作用,仍不能匯出,只能對後面新增的表產生作用。如需匯出之前的空表,只能用第一種方法。

三 、用以下這句查詢空表並分配空間
  select ‘alter table ‘||table_name||’ allocate extent;’ from user_tables where num_rows=0;

  把SQL查詢的結果匯出,然後執行匯出的語句,強行為表分配空間修改segment值,然後再匯出即可匯出空表了。

簡單寫下資料泵的(實踐)用法:
備份tszgyl/tszgyl

expdp userid=tszgyl/tszgyl directory=tszgyl dumpfile=tszgyl20100311.dmp job_name=tszgyl20100311 logfile=tszgyl20100311.log parallel=4 schemas=tszgyl

備份tsybdd/tsybdd

expdp userid=tsybdd/tsybdd directory=tsybdd dumpfile=tsybdd20100311.dmp job_name=tsybdd20100311 logfile=tsybdd20100311.log parallel=4 schemas=tsybdd

備份center_czjm/test

expdp userid=center_czjm/test directory=center_czjm dumpfile=center_czjm20100311.dmp job_name=center_czjm20100311 logfile=center_czjm20100311.log parallel=4 schemas=center_czjm

具體解釋如下:
  
核心提示:Oracle Database 10g引入了最新的資料泵(Data Dump)技術,使DBA或開發人員可以將資料庫元資料(物件定義)和資料快速移動到另一個oracle資料庫中。

Oracle Database 10g引入了最新的資料泵(Data Dump)技術,使DBA或開發人員可以將資料庫元資料(物件定義)和資料快速移動到另一個oracle資料庫中。

資料泵匯出匯入(EXPDP和IMPDP)的作用

1、實現邏輯備份和邏輯恢復。

2、在資料庫使用者之間移動物件。

3、在資料庫之間移動物件

4、實現表空間搬移。 資料泵匯出匯入與傳統匯出匯入的區別:

在10g之前,傳統的匯出和匯入分別使用EXP工具和IMP工具,從10g開始,不僅保留了原有的EXP和IMP工具,還提供了資料泵匯出匯入工具EXPDP和IMPDP.使用EXPDP和IMPDP時應該注意的事項;

EXP和IMP是客戶段工具程式,它們既可以在客戶端使用,也可以在伺服器段使用。

EXPDP和IMPDP是服務端的工具程式,他們只能在ORACLE服務端使用,不能在客戶端使用

IMP只適用於EXP匯出檔案,不適用於EXPDP匯出檔案;IMPDP只適用於EXPDP匯出檔案,而不適用於EXP匯出檔案。

資料泵匯出包括匯出表,匯出方案,匯出表空間,匯出資料庫4種方式。

EXPDP命令列選項

1. ATTACH

該選項用於在客戶會話與已存在匯出作用之間建立關聯。語法如下

ATTACH=[schema_name.]job_name

Schema_name用於指定方案名,job_name用於指定匯出作業名。注意,如果使用ATTACH選項,在命令列除了連線字串和ATTACH選項外,不能指定任何其他選項,示例如下:

Expdp scott/tiger ATTACH=scott.export_job

2. CONTENT

該選項用於指定要匯出的內容。預設值為ALL

CONTENT={ALL | DATA_ONLY | METADATA_ONLY}

當設定CONTENT為ALL 時,將匯出物件定義及其所有資料。為DATA_ONLY時,只匯出物件資料,為METADATA_ONLY時,只匯出物件定義

Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dump

CONTENT=METADATA_ONLY

3. DIRECTORY

指定轉儲檔案和日誌檔案所在的目錄

DIRECTORY=directory_object

Directory_object用於指定目錄物件名稱。需要注意,目錄物件是使用CREATE DIRECTORY語句建立的物件,而不是OS 目錄

Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dump

建立目錄:

CREATE DIRECTORY dump as ‘d:dump’;

查詢建立了那些子目錄:

SELECT * FROM dba_directories;

4. DUMPFILE

用於指定轉儲檔案的名稱,預設名稱為expdat.dmp

DUMPFILE=[directory_object:]file_name [,…]

Directory_object用於指定目錄物件名,file_name用於指定轉儲檔名。需要注意,如果不指定directory_object,匯出工具會自動使用DIRECTORY選項指定的目錄物件

Expdp scott/tiger DIRECTORY=dump1 DUMPFILE=dump2:a.dmp

5. ESTIMATE

指定估算被匯出表所佔用磁碟空間分方法。預設值是BLOCKS

EXTIMATE={BLOCKS | STATISTICS}

設定為BLOCKS時,oracle會按照目標物件所佔用的資料塊個數乘以資料塊尺寸估算物件佔用的空間,設定為STATISTICS時,根據最近統計值估算物件佔用空間

Expdp scott/tiger TABLES=emp ESTIMATE=STATISTICS

DIRECTORY=dump DUMPFILE=a.dump

6. EXTIMATE_ONLY

指定是否只估算匯出作業所佔用的磁碟空間,預設值為N

EXTIMATE_ONLY={Y | N}

設定為Y時,匯出作用只估算物件所佔用的磁碟空間,而不會執行匯出作業,為N時,不僅估算物件所佔用的磁碟空間,還會執行匯出操作。

Expdp scott/tiger ESTIMATE_ONLY=y NOLOGFILE=y

7. EXCLUDE

該選項用於指定執行操作時釋放要排除物件型別或相關物件

EXCLUDE=object_type[:name_clause] [,…]

Object_type用於指定要排除的物件型別,name_clause用於指定要排除的具體物件。EXCLUDE和INCLUDE不能同時使用

Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dup EXCLUDE=VIEW

8. FILESIZE

指定匯出檔案的最大尺寸,預設為0,(表示檔案尺寸沒有限制)

9. FLASHBACK_SCN

指定匯出特定SCN時刻的表資料

FLASHBACK_SCN=scn_value

Scn_value用於標識SCN值。FLASHBACK_SCN和FLASHBACK_TIME不能同時使用

Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp

FLASHBACK_SCN=358523

10. FLASHBACK_TIME

指定匯出特定時間點的表資料

FLASHBACK_TIME=”TO_TIMESTAMP(time_value)”

Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp FLASHBACK_TIME=

“TO_TIMESTAMP(’25-08-2004 14:35:00’,’DD-MM-YYYY HH24:MI:SS’)”

11. FULL

指定資料庫模式匯出,預設為N

FULL={Y | N}

為Y時,標識執行資料庫匯出。

12. HELP

指定是否顯示EXPDP命令列選項的幫助資訊,預設為N

當設定為Y時,會顯示匯出選項的幫助資訊。

Expdp help=y

13. INCLUDE

指定匯出時要包含的物件型別及相關物件

INCLUDE = object_type[:name_clause] [,… ]

14. JOB_NAME

指定要匯出作用的名稱,預設為SYS_XXX

JOB_NAME=jobname_string

15. LOGFILE

指定匯出日誌檔案檔案的名稱,預設名稱為export.log

LOGFILE=[directory_object:]file_name

Directory_object用於指定目錄物件名稱,file_name用於指定匯出日誌檔名。如果不指定directory_object.匯出作用會自動使用DIRECTORY的相應選項值。

Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp logfile=a.log

16. NETWORK_LINK

指定資料庫鏈名,如果要將遠端資料庫物件匯出到本地例程的轉儲檔案中,必須設定該選項。

17. NOLOGFILE

該選項用於指定禁止生成匯出日誌檔案,預設值為N.

18. PARALLEL

指定執行匯出操作的並行程序個數,預設值為1

19. PARFILE

指定匯出引數檔案的名稱

PARFILE=[directory_path] file_name

20. QUERY

用於指定過濾匯出資料的where條件

QUERY=[schema.] [table_name:] query_clause

Schema用於指定方案名,table_name用於指定表名,query_clause用於指定條件限制子句。QUERY選項不能與CONNECT=METADATA_ONLY,EXTIMATE_ONLY,TRANSPORT_TABLESPACES等選項同時使用。

Expdp scott/tiger directory=dump dumpfiel=a.dmp

Tables=emp query=’WHERE deptno=20’

21. SCHEMAS

該方案用於指定執行方案模式匯出,預設為當前使用者方案。

22. STATUS

指定顯示匯出作用程序的詳細狀態,預設值為0

23. TABLES

指定表模式匯出

TABLES=[schema_name.]table_name[:partition_name][,…]

Schema_name用於指定方案名,table_name用於指定匯出的表名,partition_name用於指定要匯出的分割槽名。

24. TABLESPACES

指定要匯出表空間列表

25. TRANSPORT_FULL_CHECK

該選項用於指定被搬移表空間和未搬移表空間關聯關係的檢查方式,預設為N.

當設定為Y時,匯出作用會檢查表空間直接的完整關聯關係,如果表空間所在表空間或其索引所在的表空間只有一個表空間被搬移,將顯示錯誤資訊。當設定為N時,匯出作用只檢查單端依賴,如果搬移索引所在表空間,但未搬移表所在表空間,將顯示出錯資訊,如果搬移表所在表空間,未搬移索引所在表空間,則不會顯示錯誤資訊。

26. TRANSPORT_TABLESPACES

指定執行表空間模式匯出

27. VERSION

指定被匯出物件的資料庫版本,預設值為COMPATIBLE.

VERSION={COMPATIBLE | LATEST | version_string}

為COMPATIBLE時,會根據初始化引數COMPATIBLE生成物件元資料;為LATEST時,會根據資料庫的實際版本生成物件元資料。version_string用於指定資料庫版本字串。呼叫EXPDP

使用EXPDP工具時,其轉儲檔案只能被存放在DIRECTORY物件對應的OS目錄中,而不能直接指定轉儲檔案所在的OS目錄。因此,使用EXPDP工具時,必須首先建立DIRECTORY物件。並且需要為資料庫使用者授予使用DIRECTORY物件許可權。

CREATE DIRECTORY dump dir AS ‘D:DUMP’;

GRANT READ, WIRTE ON DIRECTORY dump_dir TO scott;

1、匯出表

Expdp scott/tiger DIRECTORY=dump_dir DUMPFILE=tab.dmp TABLES=dept,emp

2、匯出方案

Expdp scott/tiger DIRECTORY=dump_dir DUMPFILE=schema.dmp

SCHEMAS=system,scott

3、匯出表空間

Expdp system/manager DIRECTORY=dump_dir DUMPFILE=tablespace.dmp

TABLESPACES=user01,user02

4、匯出資料庫

Expdp system/manager DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=Y

相關推薦

ORACLE使用EXP匯出dmp檔案注意事項

Oracle 中用 imp 和 exp 命令匯入匯出資料庫(附問題及解決辦法) 用 imp 和 exp 命令匯入匯出資料庫 注: 在splplus環境下執行時,在命令前加 ! 號,這樣 SQL> !exp … 和 SQL> !imp

匯出可執行jar檔案注意事項

如果專案引入了 第三方jar包,library  handing 下面的選項不要選:copy required libraries into a sub-folder next to the generated JAR, 會將第三方jar包複製到XX_lib檔案下。xx為匯

在XNA中使用panda外掛匯出的.X檔案注意事項

經過這樣的處理就大功告成了,你可能會迷惑,命名XNA是右手座標系,為什麼要選擇左手座標系匯出呢?其實道理很簡單,為了相容性,.X不是微軟為了XNA而設計的,他出現的比XNA早的多,都可以當XNA的爺爺了,.X本來是針對D3D開發的,而D3D預設的是左手座標系,因此.X檔案也採用左手座標系,這時你可能又要問,那

mybatis寫mapper檔案注意事項

xml中某些特殊符號作為內容資訊時需要做轉義,否則會對檔案的合法性和使用造成影響 Html程式碼   &lt; <    &gt;&n

命令列匯入、匯出dmp檔案

匯入:imp es/[email protected]:1521/orcl file='C:\Users\cmc\Desktop\es.dmp' log='C:\Users\cmc\Desktop\20181128.log' full=y;匯出:exp es/[email protecte

將模板檔案保持原目錄,呼叫標籤__TMPL__/portal/ images、模板檔案注意事項

  1、放置模板檔案 __TMPL__/portal/ images  :批量替換路徑 __ROOT__ 網站根目錄  這樣就可以原模板目錄結構不變,呼叫非常方便,快速實現模板製作 模板注意事項:模板檔案必須配合一個json檔案,不然預設在後臺選擇時

Asp.net WebAPI 使用流下載檔案注意事項

public HttpResponseMessage Post(string version, string environment, string filetype) { var path = @"C:\Temp\test.exe"; HttpResponseMessage r

Oracle如何匯出dmp檔案

一:擁有oracle使用者和密碼 匯出dmp檔案 進入目錄:/home/oracle/20181021 執行命令: exp 匯入資料庫使用者名稱/密碼 file=匯出的dmp檔案 log=日誌名稱 owner=匯出的資料庫名 截圖如下: exp aibs/ai

ThinkPHP5 + PHPExcel 批量匯入匯出(部分注意事項

在網上下載PHPExcel資源包,置於vender資料夾之下,也可以點選我的網盤分享:https://pan.baidu.com/s/1v2_oMMSvwTcebG9F3YQJqQ 先說兩個注意事項: 1、部分php7環境的朋友可能在匯出的時候不能執行:$objWriter->sa

oracle 匯入匯出dmp檔案

匯出 dmp 檔案 資料庫使用者:shsystem 密碼:ok 匯出檔案路徑:d:\daochu.dmp exp shsystem/[email protected] file="d:\daochu.dmp" full=y 匯入dmp檔案 sysdb

oracle使用PLSQL匯出dmp檔案一閃而過的解決辦法

PLSQL匯出dmp檔案閃退原因就是環境變數。 如果在“系統變數”列表框下面的“變數”列中找不到“ORACLE_HOME”和“ORACLE_SID”這兩個變數,則需要下面操作,否則無需一下操作。 在“系統變數”中點選“新建”按鈕,在“變數名”中輸入“ORACLE_HOM

vs除錯dump檔案注意事項

dump檔案, pdb檔案,exe檔案要確保是一套,我就是因為那這舊版本的dump檔案在新的exe上除錯,老是報錯也不知道為什麼,坑了一下午。 dump檔案,pdb檔案,exe檔案要確保在一個目錄下,

jquery的非同步提交表單(非同步上傳檔案)及jquery.form.js上傳檔案注意事項

方法一:jquery的ajax方式,通過FormaData獲取表單資料 (1)這種方式只需要jquery-1.7.js外掛; (2)通過`jquery中的FormaData類: 自動搜尋表單資訊(表單內沒有name屬性的input不會被搜尋到),IE<=9

Oracle匯出dmp檔案,Oracle11g匯出dmp有空表

Oracle11g匯出dmp有空表 今天在用plsql匯出dmp的時候命令列輸出有些表顯示沒有匯出成功,查了下這些表發現都是空表,也就是說plsql在匯出這些表的時候空表是不匯出的。經過查詢,以下為解決方案: 1 首先使用下面的sql語句查詢一下當前使用者下

oracle11g匯入oracle10g dmp檔案匯出dmp檔案

完成將一個oracle10g的dmp 檔案匯入oracle11g中。很簡單的一個工作,但是由於初次接觸oracle 屬於摸著石頭過河,所以也費了一些周折。首先這個事情有三種可行的辦法。第一是新建一個數據庫;第二是在預設資料庫下新建一個表空間;第三是在預設資料庫、預設的表空間

oracle 遠端匯入匯出dmp檔案

--進入sqlplus,先建立一個目錄用來dump資料庫 create directory dump_test as 'F:\xuyi\dump' ; --檢視一下是否存在該目錄 select * from dba_directories; --授權給操作使用者這個d

Linux C ftruncate 函式清空檔案注意事項(要使用 lseek 重置偏移量)

DESCRIPTION        The truncate() and ftruncate() functions cause the regular file named by path or referenced by fd to be truncated to a size of precisely

oracle匯入匯出dmp檔案

向oracle中匯入匯出dmp檔案,首先開啟cmd。 然後在命令列下輸入以下命令回車。 匯出dmp檔案: exp 使用者名稱/密碼@資料庫名 full=y file=路徑名(如:d:\dmp\daochu.dmp)。 如果要匯入dmp檔案 1.將dmp檔案匯入到當前連線im

上傳檔案注意事項

上傳檔案注意事項 客戶端 使用form形式multiform-data形式上傳檔案 服務端接收處理方式 1.頁面傳入HttpServletRequest request 2.判斷request instanceof MultipartHttpServletRequest

Oracle匯出DMP檔案的兩種方法

1:G:\Oracle\product\10.1.0\Client_1\NETWORK\ADMIN目錄下有個tnsname.ora檔案,內容如下:CMSTAR =  (DESCRIPTION =    (ADDRESS_LIST =      (ADDRESS = (PROTOCOL = TCP)(HOS