我的一個expdp/impdp任務總結
本次資料庫移植有以下幾個步驟,每個步驟有分解,詳細如下
1. 從41機器上匯出資料 10-15分鐘
2. 從41機器上把匯出的資料ftp到15機器的/fs2/dump目錄下 15-20分鐘左右
3. 從把41匯出的資料匯入到15機器上 2:30左右
-------1. 從41機器上匯出資料
1.1 如果是要正式的資料庫移植,需要確定41資料庫沒有其他的使用者連線,並且沒有其他的事務進行。
-- 切斷41機器和外界網路的連線
1.2 用expdp命令進行匯出資料.expdp命令只能用在服務端執行,並且只能是10g以上的版本,命令如下:
--在41機器上執行的expdp匯出命令
--expbp匯出使用者全部物件多個檔案, 每個檔案4G, 匯出的檔案為後面帶日期,該匯出過程需要10-15分鐘
--該命令需要在/tmp/dump目錄下執行,執行之後應該能看到6個相關檔案,5個dmp檔案 1個exp.log檔案,注意檢查
expdp gmm_zzrq/gmm_zzrq directory=dump_dir dumpfile=gmmdb_`date +"%Y%m%d%H%M%S"`_01.dmp,gmmdb_`date +"%Y%m%d%H%M%S"`_02.dmp,gmmdb_`date +"%Y%m%d%H%M%S"`_03.dmp,gmmdb_`date +"%Y%m%d%H%M%S"`_04.dmp,gmmdb_`date +"%Y%m%d%H%M%S"`_05.dmp logfile=gmmdb_`date +"%Y%m%d%H%M%S"`_exp.log job_name=CASES_EXPORT parallel=2 FILESIZE=4G EXCLUDE=DB_LINK
-------2. 從41機器上把匯出的資料ftp到15機器的/fs2/dump目錄下
2.1 確認15機器上有/fs2/dump目錄,如果沒有說明15機器重新啟動過,/fs2檔案系統是另外掛接的一個裝置,需要掛接。在/home/oracle目錄下有個掛接指令碼,用root使用者執行下面的命令,即可掛接該裝置,並能找到/fs2/dump資料夾,資料夾下面目前有些檔案,可以刪除以dmp字尾的檔案,/fs2的空間是50G,空出一定的空間大小(35G以上), 空間檢視命令:df -g 檢視
--掛接/fs2目錄裝置。root使用者-------
# sh /home/oracle/mountfs.sh
--空間檢視命令:
# df -g
2.2 從41節點ftp到15上, 命令如下:
在41機器的/tmp/dump目錄下,注意ftp傳輸的時候一定要轉成2進位制的方式
####41機器
# ftp 192.168.5.15
user:oracle
password:oracle
ftp> cd /fs2/dump
ftp> bi
ftp> prompt off
ftp> mput gmmdb__*
傳輸完畢,查詢15機器上/fs2/dump資料夾下的檔案是否和41機器的大小一樣。該ftp傳輸時間在15-20分鐘左右
-------3. 從把41匯出的資料匯入到15機器上
--以下所有命令在15機器上執行
3.1 檢視rac的節點執行狀態, 如果racdb2執行,需要關閉racdb2節點,執行命令3.2步驟,執行之後,繼續使用該命令檢視狀態.
--檢視節點執行
srvctl status database -d racdb
-- 顯示如下: 說明racdb2已經停止
Instance racdb1 is running on node db01
Instance racdb2 is not running on node db02
也可以用命令:crs_stat -t 檢視
3.2 停掉racdb2節點的例項
--如果racdb2節點仍然在執行,用以下命令停止racdb2的例項
--停止節點2命令
srvctl stop instance -d racdb -i racdb2
3.3 檢視15現在的rac資料庫是否存在使用者gmm_zzrq以及gmm_zzrq的所有物件
--檢視是否能用gmm_zzrq登入,如果能登陸說明gmm_zzrq存在, 如果gmm_zzrq存在執行3.4命令
sqlplus gmm_zzrq/gmm_zzrq
3.4 刪除15機器資料庫中的gmm_zzrq使用者和該使用者下的所有物件
----級聯刪除使用者gmm_zzrq及其該使用者下的所有物件
sqlplus system/oracle
drop user gmm_zzrq cascade;
3.5 執行匯入
3.5.1 編輯指令碼 impdp_file.sh
--注意dmp檔案的時間修改一下
impdp system/oracle directory=dump_dir15 dumpfile= gmmdb_20100702201351_01.dmp, gmmdb_20100702201351_02.dmp, gmmdb_20100702201351_03.dmp, gmmdb_20100702201351_04.dmp, gmmdb_20100702201351_05.dmp LOGFILE=gmmdb_`date +"%Y%m%d%H%M%S"`_imp.log parallel=2 SCHEMAS=gmm_zzrq job_name=CASES_IMPORT
3.5.2 把編輯好的指令碼impdp_file.sh ftp到15機器的/fs2/dump資料夾下
3.5.3 檢視15機器的/fs2/dump資料夾下,是否有nohup.out檔案,如果有的話,刪除
# rm /fs2/dump/nohup.out
3.5.4 在15機器的/fs2/dump資料夾下執行指令碼 impdp_file.sh,開始資料匯入,該匯入時間 在2:30左右
nohup sh impdp_file.sh
--在匯入的過程中,可以用以下命令檢視匯入的狀態
cat nohup.out
3.6 資料匯入完全後,檢視匯入的log檔案,檢查是否匯入有問題。根據以往的經驗,應該最後有12個error,這個沒有問題,只是過程和包的警告性錯誤。如果沒有其他的錯誤,說明匯入是成功的。
3.7 檢查匯入成功之後,再手工匯入原有的41機器上的db_link
4 補充: 檢查2個資料庫庫表資料的行數一致
檔案《資料量統計》
過程: sp_static_tab
表: tb_static_tab
該過程和表,在41資料庫已經建立,在15機器上匯入資料庫之後,用gmm_zzrq建立以上表和過程。
在41和15機器執行過程 sp_static_tab
然後在15機器上查詢資料,rows_diff=0說明2個資料庫錶行數一致
select a.table_name,
a.table_rows rows_15,
b.table_rows rows_41,
b.table_rows - a.table_rows rows_diff
from tb_static_tab a, tb_static_tab@dmp_link b
where a.table_name = b.table_name
order by rows_diff;
資料移植完畢!
lucky!
------下面是常用的命令和腳步,在15機器上執行
--檢視crs狀態
crs_stat -t
--檢視節點執行
srvctl status database -d racdb
--停止節點2
srvctl stop instance -d racdb -i racdb2
--停止節點1
srvctl stop instance -d racdb -i racdb1
--啟動節點2
srvctl start instance -d racdb -i racdb2
--啟動節點1
srvctl start instance -d racdb -i racdb1
--sql操作
sqlplus system/oracle
--檢視是否有表CASES_IMPORT,如果有刪除
select count(1) from CASES_IMPORT;
drop table CASES_IMPORT;
--級聯刪除使用者gmm_zzrq
drop user gmm_zzrq cascade;
--有哪些使用者連線
--1.1
select program, username,sid,serial# from v$session;
--1.2
select program, username,sid,serial# from v$session
where upper(username) ='GMM_ZZRQ';
--殺掉程式
alter system kill session sid,serial#;
--查詢段空間
select segment_name, segment_type, bytes/1024/1024 size_mb from user_segments a
--問題1:執行drop user gmm_zzrq cascade;操作出現如下問題:
ORA-01940: cannot drop a user that is currently connected
解決:用SELECT SID,SERIAL# FROM V$SESSION WHERE USERNAME='GMM_ZZRQ';查詢
然後alter system kill session sid,serial#; 就ok了,但是要注意如果是叢集RAC
的話,就要多個節點都看看,否則會找不到相應的seesion.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/3090/viewspace-668063/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- impdp和expdp的總結
- expdp/impdp 使用總結
- EXPDP/IMPDP任務的檢視與管理
- expdp/impdp的使用總結 (供查詢使用)
- expdp/impdp中匯出/匯入任務的管理和監控
- expdp/impdp跨版本升級遷移問題總結
- impdp/expdp 示例
- oracle expdp and impdpOracle
- EXPDP/IMPDP工具的使用
- Expdp,impdp工具的使用
- 【EXPDP/IMPDP】使用 EXPDP/IMPDP工具“模糊”匯出和匯入
- Expdp Impdp詳解
- oracle expdp/impdp用法Oracle
- 一次expdp/impdp遷移案例
- ORACLE中impdp的總結Oracle
- ORACLE中的EXPDP總結Oracle
- expdp/impdp 用法詳解
- expdp/impdp操作例項
- expdp, impdp characteristic 特性--索引索引
- ORACLE expdp/impdp詳解Oracle
- Oracle expdp/impdp 使用示例Oracle
- 將partition expdp後impdp
- expdp/impdp用法詳解
- 任務打卡系統總結
- 第八項任務——總結
- oracle資料庫的impdp,expdpOracle資料庫
- expdp/impdp的原理及使用(轉)
- 任務排程的思考和總結
- oracle dblink用法總結和expdp和impdp利用dblink倒入匯出到本地Oracle
- 今天,總監說要一個任務排程的列表。
- expdp impdp 使用命令解析
- oracle expdp和impdp使用例子Oracle
- ORACLE 10G expdp/impdpOracle 10g
- Oracle10g expdp & impdpOracle
- [zt] expdp / impdp 用法詳解
- exp/expdp與imp/impdp的區別
- EXP/IMP和EXPDP/IMPDP的區別
- expdp 和impdp的筆記[轉帖]筆記