數據泵(impdb)導入Oracle資料庫 一.sqlplus登錄目標資料庫,創建導入的目錄路徑 #該目錄要在導入的資料庫本機建立,如果是docker就在容器內部創建 create directory data_dir as '/home/oracle/prd_imp/prd_dump'; data ...
數據泵(impdb)導入Oracle資料庫
一.sqlplus登錄目標資料庫,創建導入的目錄路徑
#該目錄要在導入的資料庫本機建立,如果是docker就在容器內部創建
create directory data_dir as '/home/oracle/prd_imp/prd_dump';
data_dir為路徑名稱,可自命名。路徑是導出的dmp文件存放的路徑必須存在。
查詢用戶創建目錄
select * from dba_directories;
上面命令只是指定了導出文件存放的路徑,但是這個路徑需要自己手動創建和賦權
mkdir /home/oracle/prd_imp/prd_dump
chown -R oracle:oinstall /home/oracle/prd_imp/prd_dump
cd /home/oracle/prd_imp/prd_dump
chmod 777 prd_dump
二.確定導入的用戶具有相應的許可權
SELECT *
FROM DBA_ROLE_PRIVS
WHERE GRANTEE = '<dba_user>'
AND GRANTED_ROLE IN ('DBA', 'EXP_FULL_DATABASE', 'IMP_FULL_DATABASE');
三.上傳imp文件,檢查文件許可權並導入
註意:在導入數據的時候需要檢查源數據的表空間大小,預設表空間最大隻有32G,超過容量會導致導入失敗。所以超過32G的表空間需要創建大表空間。
#創建大表空間
CREATE BIGFILE TABLESPACE <表空間名稱> DATAFILE'/home/oracle/app/oracle/oradata/helowin/demo01.dbf' SIZE 100G AUTOEXTEND ON NEXT 50G MAXSIZE 300G;
#執行導入命令
impdp <dba_user>/<dba_pass>@<service_name> REMAP_SCHEMA=<dba_user1>:<dba_user2> DIRECTORY=data_dir DUMPFILE=db_20230910_2205_01.dmp,db_20230910_2205_02.dmp,db_20230910_2205_03.dmp,db_20230910_2205_04.dmp TABLE_EXISTS_ACTION=REPLACE CONTENT=ALL LOGFILE=imp_01.log
impdp [用戶名]/[密碼]@[服務名]
REMAP_SCHEMA=[源用戶名1]:[目標用戶名2]
table_exists_action=replace /存在的表動作(覆蓋)/
directory=[目錄名]
dumpfile=[.dmp文件名]
logfile=[.log文件名]
CONTENT=ALL 用於指定導入的內容範圍。ALL 表示導入所有對象和數據
執行導入命令之後就等待導入完成