雖然 Data Pump 已成主流,但傳統 exp/imp 在非歸檔模式、小數據量、需快速按用戶級備份恢復的場景下依然實用。本文記錄 Windows Server 2003 + Oracle 10g 環境下,按用戶導出導入的標準化操作步驟,含 TNS 配置、導出參數解析、導入前對象清理重建、權限授予全流程。
# tnsnames.ora
CANWAY =
(DESCRIPTION =
(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.2.43)(PORT = 1521)))
(CONNECT_DATA = (SERVICE_NAME = ORCL))
)
exp system/canway@CANWAY owner=目標用戶 file=backup.dmp log=export.log compress=y direct=n rows=y
參數說明:
owner:指定導出的 Schema 擁有者compress=y:導入時嘗試將初始 Extent 合併為一個(適用小表,大表慎用)direct=n:常規路徑導出(直接路徑 y 速度快但不支持某些類型)rows=y:導出表數據行關鍵:imp 不會覆蓋現有對象,必須先清理目標 Schema。
SELECT username, DEFAULT_TABLESPACE FROM dba_users WHERE username = '目標用戶';
DROP USER 目標用戶 CASCADE;
若用戶有活動會話,先 Kill:
SELECT sid, serial# FROM v$session WHERE username = '目標用戶';
ALTER SYSTEM KILL SESSION 'sid,serial#';
CREATE USER 目標用戶 IDENTIFIED BY 密碼 DEFAULT TABLESPACE 表空間名;
GRANT CONNECT, RESOURCE, DBA TO 目標用戶;
imp system/canway@CANWAY file=I:\backup\backup.dmp log=I:\backup\import.log FROMUSER=導出用戶 TOUSER=導入用戶
參數說明:
FROMUSER:Dump 文件中的源 Schema 名TOUSER:目標 Schema 名(可實現 Schema 重命名遷移)| 適用 | 不適用 |
|---|---|
| 非歸檔模式小型庫(<50 GB) | TB 級大庫、需並行化的場景 |
| 用戶級邏輯備份/恢復/遷移 | 物理備份、時間點恢復(需 RMAN) |
| 跨平台異構遷移(配合 FILE 參數) | 包含 Data Pump 專有特性的對象 |
exp/imp 雖屬「古老」工具,但在小型非歸檔庫的用戶級邏輯備份、Schema 克隆、表空間遷移中仍具不可替代的簡易性。大型倉庫級環境請轉向 RMAN 或 Data Pump。