|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
主要缺点就是:速度比较慢,没有C和C++快oracle|数据|数据库
ANT操控ORACLE数据库理论
Byguipei2005-3-21
比来,开辟事情对照忙碌,常常会把项目带回家加班干活,项目利用oracle数据库,由于家里的呆板不克不及把oracle相干服务作为主动启动,如许,估量女伴侣会说你的电脑怎样弄得,开个机就这么坚苦。以是,每次入手下手编写程序之前,老是要翻开把持台,netstart一堆工具,翻开数据库,翻开监听,总于,有一天讨厌了这个反复休息,交给ant吧。
Ant实行体系命令没有任何成绩,此次实践体系命令中能够说碰到了两个成绩,一个是启动服务的命令是含有空格的,第二个怎样备份数据库能够主动加上日期。
起首,我们启动oracle数据库,操纵有两个:
1.启动监听:
<execexecutable="lsnrctl">
<argline="start"/>
</exec>
2.翻开数据库实例:
<execexecutable=cmd>
<argline="/cnetstartoracleservice${ORA_SID}"/>
</exec>
第一个操纵在这里没有甚么区分,就是ant挪用体系命令的尺度用法,我们来看一下第二个命令,netstartoracleservice${ORA_SID},假如你间接放进到executable属性中,实行了局必定会是:
BUILDFAILED:E:javaTestAntuild.xml:44:Executefailed:java.io.IOException:CreateProcess:"netstartoracleservicemy_oracle"error=2
疾苦吧,带有空格的命令应当利用以下办法:
<execexecutable=cmd>
<argline="/cnetstartoracleservice${ORA_SID}"/>
</exec>
假如在备份数据库的时分加上工夫标志,我在linux上面利用教本备份oracle数据库,可使用data命令很便利的在备份的文件下面加上日期后缀,ant能够么?
我查了良多材料,终究弄定:
<tstamp>
<formatproperty="DB_BACKUP_TIME"pattern="yyyy-MM-dd"/>
</tstamp>
利用tstamptarget能够十分便利的界说日期属性,如许再天生必要备份文件的名字,便利的办理你的成绩。
Ok,你能够参考完成的ant剧本:
附录:参考剧本
<!--2005byguipei.-->
<projectname="TestAntOracle"default="demo"basedir="./">
<!--setglobalpropertiesforthisbuild-->
<propertyname="DB_BACKUP_DIR"value="."/>
<propertyname="ORA_SID"value="my_oracle"/>
<propertyname="ORA_USER"value="scott"/>
<propertyname="ORA_PWD"value="tiger"/>
<propertyname="ORA_RESTORE_FILE"value="db_back.dmp"/>
<targetname="demo">
<echo>antdb_backuptobackupdb</echo>
<echo>antdb_restoretorestoredb</echo>
<echo>antdb_starttostartdb</echo>
<echo>antdb_stoptostopdb</echo>
</target>
<targetname="db_backup">
<tstamp>
<formatproperty="DB_BACKUP_TIME"pattern="yyyy-MM-dd"/>
</tstamp>
<propertyname="DB_BACKUP_FILE"value="MYDB_${DB_BACKUP_TIME}.DMP"/>
<echo>willbackupdbat${DB_BACKUP_FILE}</echo>
<execdir="${DB_BACKUP_DIR}"executable="exp">
<argline="${ORA_USER}/${ORA_PWD}@${ORA_SID}file=MYDB_${DB_BACKUP_TIME}.DMP"/>
</exec>
</target>
<targetname="db_restore">
<execdir="${DB_BACKUP_DIR}"executable="imp">
<argline="${ORA_USER}/${ORA_PWD}@${ORA_SID}file=${ORA_RESTORE_FILE}full=y"/>
</exec>
</target>
<targetname="db_start">
<execexecutable="lsnrctl">
<argline="start"/>
</exec>
<execexecutable=cmd>
<argline="/cnetstartoracleservice${ORA_SID}"/>
</exec>
</target>
<targetname="db_stop">
<execexecutable="lsnrctl">
<argline="stop"/>
</exec>
<execexecutable=cmd>
<argline="/cnetstoporacleservice${ORA_SID}"/>
</exec>
</target>
</project>
为什么外国人还要写那些框架进行代码封装,他们不就是为了别人使用时可以更简单么!如果要达到一个企业级项目的不用框架是很难的。小一些的项目还行,大的光是MVC模式的设计的编码量就够大的了。还有性能方面,单轮windows,这个工具是微软写的,。 |
|