0
我有一個調用java代碼創建oracle數據泵備份的bash腳本。我想添加額外的代碼來完成備份後做些事情,我想知道是否有方法讓數據泵通知我完成它,或者一般情況下如何去等待長時間的任務完成(希望沒有線程)。如何在調用其他代碼之前等待備份完成
我有一個調用java代碼創建oracle數據泵備份的bash腳本。我想添加額外的代碼來完成備份後做些事情,我想知道是否有方法讓數據泵通知我完成它,或者一般情況下如何去等待長時間的任務完成(希望沒有線程)。如何在調用其他代碼之前等待備份完成
您可以使用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.
你試過了什麼?您是否熟悉線程http://docs.oracle.com/javase/tutorial/essential/concurrency/ –