天天看點

ANT 操控 ORACLE資料庫實踐

Ant

執行系統指令沒有任何問題,這次實際系統指令中可以說遇到了兩個問題,一個是啟動服務的指令是含有空格的,第二個如何備份資料庫可以自動加上日期。

  

  首先,我們啟動oracle資料庫,操作有兩個:

  1.啟動監聽:

  <exec

executable="lsnrctl" >

  <arg line=" start

"/>

  </exec>

  2.打開資料庫執行個體:

executable='cmd' >

  <arg line="/c net start

oracleservice${ORA_SID}

  第一個操作在這裡沒有什麼差別,就是ant調用系統指令的标準用法,我們來看一下第二個指令,

net start

oracleservice${ORA_SID},如果你直接放入到executable屬性中,執行結果一定會是:

  BUILD FAILED:

E:\java\TestAnt\build.xml:44: Execute failed: java.io.IOException:

CreateProcess: "net start oracleservicemy_oracle"

error=2

  痛苦吧,帶有空格的指令應該使用以下方法:

  <exec executable='cmd'

>

  <arg line="/c net start oracleservice${ORA_SID}

  如果在備份資料庫的時候加上時間标記,我在linux下面使用教本備份oracle資料庫,可以使用data

指令很友善的在備份的檔案上面加上日期字尾,ant可以麼?

  我查了很多資料,終于搞定:

  <tstamp>

  <format

property="DB_BACKUP_TIME"

pattern="yyyy-MM-dd"/>

  </tstamp>

  使用 tstamp

target可以非常友善的定義日期屬性,這樣再生成需要備份檔案的名字,友善的解決你的問題。

  Ok,你可以參考完成的ant腳本:

  附錄:參考腳本

  <!--

2005 by guipei. -->

  <project

name="TestAntOracle" default="demo" basedir="./">

  <!-- set

global properties for this build -->

  <property

name="DB_BACKUP_DIR" value="." />

  <property name="ORA_SID"

value="my_oracle"/>

  <property name="ORA_USER"

value="scott"/>

  <property name="ORA_PWD"

value="tiger"/>

  <property name="ORA_RESTORE_FILE"

value="db_back.dmp"/>

  <target name="demo"

  <echo> ant db_backup to backup db

</echo>

  <echo> ant db_restore to restore db

  <echo> ant db_start to start db

  <echo> ant db_stop to stop db

  </target>

  <target

name="db_backup">

name="DB_BACKUP_FILE" value="MYDB_${DB_BACKUP_TIME}.DMP"

/>

  <echo>will backup db at

${DB_BACKUP_FILE}</echo>

  <exec dir="${DB_BACKUP_DIR}"

executable="exp" >

  <arg line="

${ORA_USER}/${ORA_PWD}@${ORA_SID}

file=MYDB_${DB_BACKUP_TIME}.DMP "/>

name="db_restore">

executable="imp" >

${ORA_USER}/${ORA_PWD}@${ORA_SID} file=${ORA_RESTORE_FILE}

full=y"/>

name="db_start">

  <exec executable="lsnrctl"

oracleservice${ORA_SID} "/>

name="db_stop">

  <arg line=" stop

  <arg line="/c net stop

  </project>

炊煙起了;夕陽下了;細雨來了

多調試,互動式程式設計體驗

記錄,獨立思考,對比

感謝轉載作者

修車

國産化

read and connect

匍匐前進,

講故事