2015-05-05 57 views
0

我有一個調用java代碼創建oracle數據泵備份的bash腳本。我想添加額外的代碼來完成備份後做些事情,我想知道是否有方法讓數據泵通知我完成它,或者一般情況下如何去等待長時間的任務完成(希望沒有線程)。如何在調用其他代碼之前等待備份完成

+0

你試過了什麼?您是否熟悉線程http://docs.oracle.com/javase/tutorial/essential/concurrency/ –

回答

4

您可以使用Datapump客戶端或查詢數據庫目錄視圖來監視數據泵作業。

當您正在執行腳本時,查詢數據庫目錄視圖將是您的首選。

下面的查詢可以用於此:

select owner_name,job_name,state from dba_datapump_jobs; 


select b.username, 
     a.sid, 
     b.opname, 
     b.target, 
     round(b.SOFAR*100/b.TOTALWORK,0) || '%' as "%DONE", 
     b.TIME_REMAINING, 
     to_char(b.start_time,'YYYY/MM/DD HH24:MI:SS') start_time 
from 
     v$session_longops b, 
     v$session a 
where 
     a.sid = b.sid  
order by 6; 

的想法是代碼這個循環中數據泵作業終止循環和查詢。

sql #1 : Query the status of the job. 
sql #2 : Query the percentage of work done. 
相關問題