2011-02-11 53 views
0

我有以下的ant代碼:螞蟻DB2備份不進行連續

<parallel> 
    <sequential> 
     <mkdir dir="${DB2BACKUP}/DB2BACKUP"/> 
     <exec executable="db2cmd"> 
      <arg value="DB2 BACKUP DATABASE DB TO C:\DB2BACKUP\ WITH 2 BUFFERS BUFFER 1024 PARALLELISM 1"/> 
     </exec> 
     <echo> hello </echo> 
    </sequential> 
</parallel> 

當這被執行,該目錄中創建,另一個命令行打開DB2備份運行的位置,但螞蟻立即完成「hello」回顯,不等待db2備份完成。我試着用

<exec executable="cmd"> 
    <arg value="/C"/> 
    <arg value="db2cw"/> 
    <arg value="DB2 BACKUP DATABASE DB TO C:\DB2BACKUP\ WITH 2 BUFFERS BUFFER 1024 PARALLELISM 1"/> 
</exec> 

,但它是相同的,我認爲主要的原因是DB2CMD是一個單獨的CMD行窗口下打開的事實。我也嘗試使用帶有spawn屬性的執行錯誤(這是默認情況下,我認爲無論哪種方式),但仍然沒有運氣,任何想法?

+0

好像是/ W國旗製作的。 – Tiberiu 2011-02-23 04:06:56

回答

1

如果DB2實用程序位於PATH中,那麼您將以具有足夠特權的用戶身份運行這些命令,並且您正確設置了DB2INSTANCE環境,您不應該需要db2cmd或任何其他中間命令。你可以簡單地運行實際的備份命令。

此外,我可能要指出的是,你的數據庫的任何活動連接將阻止命令在任何情況下運行。也許你可能想在你的備份命令之前添加「force all all」或「quiesce database」。 (還記得如果你走那條路線,就不會覺得奇怪。)

+0

是的,那當然需要靜默/不平靜,我能用/ W解決。謝謝 – Tiberiu 2011-02-23 04:09:15