1. Oracle數據泵(Dump)導出、導入
Oracle數據泵導出和導入的操作步驟如下:
一、本地操作
創建並授權目錄對象:
導出數據:
導入數據:
二、不落地導入
配置連接信息:
使用remote_db_link導入遠程表:
以上步驟涵蓋了Oracle數據泵在本地操作和不落地導入的基本流程。在實際操作中,需要根據具體的需求和環境進行相應的調整。
2. 【Oracle篇】Oracle數據泵-impdp和expdp
在資料庫遷移的場景中,Oracle數據泵(impdp和expdp)成為了常用工具。下面詳細講解這兩部分操作。
導出: expdp
在導出操作中,首先定義變數是關鍵,例如`expdp sams/standing_book DIRECTORY=directory DUMPFILE=standing_book_test01.dmp`。這將導出表`sams.standing_book`至名為`standing_book_test01.dmp`的文件。注意,使用此方法生成的文件可能體積龐大,可增加`compression=all`參數進行壓縮。避免重復執行,如需重復,可添加`statistics=none`以覆蓋原文件。在RAC集群模式下,使用`cluster=N`指定當前機器進行導出。
優化導出效率,可使用`parallel=4`參數開啟4個進程,提高速度。確保與`mpfile=...%U.dmp`結合使用或有多個表同時導出。若指定`TABLES=table1,table2...`則能導出多張表。使用`INCLUDE`可指定導出特定對象,如`SEQUENCE,FUNCTION,PROCEDURE,VIEW,TABLE`等。對於導出特定表空間,`TABLESPACES=system`可實現。若需將整個資料庫導出,則使用`FULL=Y`。
參數通常直接寫入命令行,但也可在`xx.par`文件中實現,簡化操作並避免轉義符問題。`parfile`參數用於指定par文件,多個條件可用`,`隔開,其他參數也可在此添加。
導入: impdp
對於`impdp`操作,使用`schemas=sams`導入`expdp.dmp`文件中屬於`sams`用戶的對象。通過`remap_schema=sams,samswf`參數,將`fpri_butnm`表從`sams`用戶遷移到`samswf`用戶下,若目標表存在,則會覆蓋。導入時,可指定`tablespace=system`將數據導入至特定表空間。同樣,`impdp`支持`xx.par`文件形式,同時支持從`dmp`文件中直接查詢數據進行導入。
常用參數還包括:
1. `logfile`: 指定日誌文件路徑。
2. `filesize`: 設置單個文件的最大值,與`mpfile`參數配合使用。
3. `content`: 控制導出或導入內容的范圍,有三個級別:全部(ALL)、數據(DATA_ONLY)、元數據(METADATA_ONLE),默認為ALL。
4. `version`: 主要用於跨版本間導數據,高版本向低版本導出時使用。
5. `sqlfile`: 將`dmp`文件中的元數據語句提取至單獨的SQL文件中,而非直接導入資料庫。
6. `schemas`: 指定導出或導入特定用戶,實際上是用戶下的對象。
7. `table_exists_action`: 控制導入時表存在時的處理方法,如追加(append)、刪除數據(truncate)、跳過(skip)、替換(replace)。
8. `exclude`: 排除不需要導出的內容。
通過上述詳細解析,您可以更高效地使用Oracle數據泵進行資料庫的導出與導入操作。