共計 3188 個字符,預計需要花費 8 分鐘才能閱讀完成。
今天就跟大家聊聊有關如何進行 oracle 數據泵導數據實踐,可能很多人都不太了解,為了讓大家更加了解,丸趣 TV 小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
需求:
將 zxjfdb2、zxjfdb4 上面的 ocdbhis 庫中的用戶 OCHIS 整體遷移到 migudb3、migudb4 上面的 migudb2 庫。
ocdbhis 與 migudb2 均為 rac 數據庫。
步驟:
1. 檢查環境:
1)該用戶涉及的表空間,保證目標庫的表空間包含原庫表空間,而且容量充足:
select tablespace_name,sum(bytes/1024/1024/1024) gb from dba_segments where owner= OCHIS group by tablespace_name;
2)臨時表空間,確保兩邊的表空間一致。
SELECT a.tablespace_name TABLESPACE_NAME , a.total TOTAL(MB) , (a.total – nvl(b.used, 0)) FREE(MB) , nvl(b.used,0) USED(MB) , round(nvl(b.used,0) * 100 / a.total, 3) USED_PERCENT(%) FROM (SELECT tablespace_name, SUM (bytes)/1024/1024 total FROM dba_temp_files GROUP BY tablespace_name) a, (SELECT tablespace_name, SUM (bytes_cached)/1024/1024 used FROM v$temp_extent_pool GROUP BY tablespace_name) b WHERE a.tablespace_name = b.tablespace_name(+);
3)檢查 role
select distinct GRANTED_ROLE from dba_role_privs where grantee in (OCHIS) order by 1;
4)檢查 profile
select distinct PROFILE from dba_users where username in (OCHIS) order by 1;
5)檢查 tnsnames.ora
cat $ORACLE_HOME/network/admin/tnsnames.ora
6)檢查 dblink
select * from DBA_DB_LINKS where OWNER in (PUBLIC , OCHIS
7)檢查源端與目標端的網絡連通,因為需要使用 scp 講 dmp 文件復制到對端。
8)檢查源端與目標端的文件系統是否足夠容納所有的 dump 文件。
9)檢查目標端的歸檔空間是否充足,避免導入期間,歸檔滿。
2. 通知應用同事關閉與 OCHIS 用戶相關的應用
3. 將 OCHIS 用戶鎖上,避免用戶數據變化。
alter user OCHIS account lock;
4. 在源庫導出數據
1)創建 directory
chmod oracle:oinstall /oratemp
create directory ggdump as /oratemp
2)編寫 parfile
##### 按照用戶導出
zxjfdb2:/oratemp$cat expdp_ochis.par
userid= / as sysdba
directory=ggdump
dumpfile=expdp_ochis_%U.dmp
logfile=expdp_ochis.log
parallel=8 —- 8 個并行
compression=all —- 壓縮
CLUSTER=N
exclude=statistics —- 取消導出統計信息
SCHEMAS=(
OCHIS
)
##### 按照用戶導出元數據,供參考
#userid= / as sysdba
#directory=ggdump
#dumpfile=expdp_ich_metadata.dmp
#logfile=expdp_ich_metadata.log
#CONTENT=METADATA_ONLY
#CLUSTER=N
#SCHEMAS=(
#PUBDBA,
#OCHIS
#)
##### 按照表導出純數據,供參考
#userid= / as sysdba
#directory=ggdump
#dumpfile=expdp_ich_pubdba_data.dmp
#logfile=expdp_ich_pubdba_data.log
#CONTENT=DATA_ONLY
#CLUSTER=N
#TABLES=(
#PUBDBA.ACCNT_AGREEMENT
#PUBDBA.CARRIER_ACCNT_BANK_INFO
#)
3)導出并查看日志
nohup expdp parfile=expdp_ochis.par expdp_ochis.par.out
tail -f expdp_ochis.par.out
5. 拷貝數據
scp expdp_*.dmp migudb3:/backup
6. 目標端導入數據
1)創建 directory
2)編寫 parfile
migudb3:/backup#cat impdp_ochis.par
userid= / as sysdba
directory=ggdump
dumpfile=expdp_ochis_%U.dmp
logfile=impdp_ochis.log
parallel=8
CLUSTER=N
3)導入并查看日志
nohup impdp parfile=impdp_ich_metadata.par impdp_ich_metadata.par.out
tail -f impdp_ich_metadata.par.out
7. 收集統計信息
migudb3:/backup#cat gather_ochis_info.sh
sqlplus / as sysdba EOF
set echo on
set verify on
spool gather_ochis_info.log
exec dbms_stats.gather_schema_stats(ownname= OCHIS ,estimate_percent= 10,method_opt= for all columns size 1 ,cascade= true,force= true,degree= 8,no_invalidate= false);
spool off
exit
EOF
8. 目標庫解鎖 OCHIS 用戶
alter user ochis account unlock;
9. 通知應用同事檢查應用。
看完上述內容,你們對如何進行 oracle 數據泵導數據實踐有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注丸趣 TV 行業資訊頻道,感謝大家的支持。