ANT 操控 ORACLE数据库实践

oracle|数据|数据库

ANT 操控 ORACLE数据库实践

By guipei 2005-3-21

 

最近,开发工作比较繁忙,经常会把项目带回家加班干活,项目使用oracle数据库,因为家里的机器不能把oracle相关服务作为自动启动,这样,估计女朋友会说你的电脑怎么搞得,开个机就这么困难。所以,每次开始编写程序之前,总是要打开控制台,net start 一堆东西,打开数据库,打开监听,总于,有一天厌恶了这个重复劳动,交给ant吧。

 

Ant 执行系统命令没有任何问题,这次实际系统命令中可以说遇到了两个问题,一个是启动服务的命令是含有空格的,第二个如何备份数据库可以自动加上日期。

 

首先,我们启动oracle数据库,操作有两个:

1.         启动监听:

              <exec executable="lsnrctl" >

                     <arg line=" start "/>

              </exec>

2.         打开数据库实例:

              <exec executable='cmd' >

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

              </exec>

第一个操作在这里没有什么区别,就是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} "/>

              </exec>

 

如果在备份数据库的时候加上时间标记,我在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>

              <echo> ant db_start to start db </echo>

              <echo> ant db_stop to stop db </echo>

       </target>

 

       <target name="db_backup">

 

              <tstamp>

                     <format property="DB_BACKUP_TIME" pattern="yyyy-MM-dd"/>

              </tstamp>

              <property 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  "/>

              </exec>

       </target>

 

       <target name="db_restore">

              <exec dir="${DB_BACKUP_DIR}" executable="imp" >

                     <arg line=" ${ORA_USER}/${ORA_PWD}@${ORA_SID} file=${ORA_RESTORE_FILE} full=y"/>

              </exec>

       </target>

 

       <target name="db_start">

 

              <exec executable="lsnrctl" >

                     <arg line=" start "/>

              </exec>

 

              <exec executable='cmd' >

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

              </exec>

       </target>

 

       <target name="db_stop">

 

              <exec executable="lsnrctl" >

                     <arg line=" stop "/>

              </exec>

 

              <exec executable='cmd' >

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

              </exec>

       </target>

 

</project>

 

时间: 2024-10-31 12:38:44

ANT 操控 ORACLE数据库实践的相关文章

Ruby on Rails连接Oracle数据库实践

今天学习了一下最近流行的Ruby on Rails,感觉:就是一个代码生成器 链接Oracle数据库的时候,查了半天的资料.终于找到办法了,^______^ 1.安装驱动 http://rubyforge.org/projects/ruby-oci8/ 下载并运行(双击)ruby-oci8-mswin里面的*.rb 2.更改database.yml development:adapter: ocihost: examplesidusername: exampleuserpassword: exa

《Oracle数据库性能优化方法论和最佳实践》——2.6 流程、资源和组件优化方法论

2.6 流程.资源和组件优化方法论 流程.资源和组件优化方法论是本书几位作者综合多年性能优化方法论实践提出的最新的Oracle业务系统性能优化方法论.流程.资源和组件优化方法论以流程响应分析为核心,辅助以流程处理的组件和涉及的资源分析,发现导致性能问题的根本原因,并采取适当的手段进行性能改善.本书从流程.资源和组件优化方法论出发,全面构建性能优化的可测量体系,并通过大量的性能优化实践案例来验证方法论的有效性.2.6.1 吞吐量和响应时间关系曲线 吞吐量和响应时间关系曲线是流程.资源和组件优化方法

《Oracle数据库性能优化方法论和最佳实践》——1.3 吞吐量和响应时间

1.3 吞吐量和响应时间 吞吐量和响应时间是衡量Oracle业务系统的基本指标,也是业务系统性能的终极指标.如何选择恰当的指标单元来描述吞吐量和响应时间,并且熟练运用吞吐量和响应时间之间的关系是性能优化工作者最为重要的学习和实践.吞吐量和响应时间的关系曲线如此重要,以至于本书几乎所有的章节都是为了帮助大家更好地选择恰当的吞吐量指标,以及更好地理解吞吐量和响应时间的关系曲线.Oracle虽然从Oracle 10gR1就开始提供Time Based Analyze(TBA)性能优化分析方法论,但显然

《Oracle数据库性能优化方法论和最佳实践》——2.5 基于资源瓶颈分析的优化方法论

2.5 基于资源瓶颈分析的优化方法论 2.5.1 基于资源瓶颈分析优化方法论简述 Oracle要做优化,大部分人首先会想到瓶颈在哪里?资源瓶颈分析是如此之普及,以至于无论懂还是不懂的人都知道"瓶颈"这个术语,都知道性能优化首先要找到这个瓶颈,然后消除这个瓶颈.数据库系统的资源主要包括:CPU.内存和虚拟内存.I/O子系统.网络子系统. 绝大部分开发人员在写程序的时候都假设资源是无限的,CPU是无限快,内存是无限多,磁盘无限大并且像内存一样快,网络带宽无限并且像光速一样运行.事实上,大家

《Oracle数据库性能优化方法论和最佳实践》——1.4 Oracle性能优化工作的分类

1.4 Oracle性能优化工作的分类 在Oracle上进行性能优化时,不同场景下的优化工作方法和内容有很大的不同.下面从实践角度来展开优化工作的分类.1.4.1 上线优化或从未达到过性能期望的系统优化如果业务系统未进行充分的性能测试就上线,那么有相当一部分会出现性能问题,不会出现性能问题的系统往往建立在有强大硬件的基础之上.这类缺乏性能设计考虑的业务系统部分或全部具有以下特点.开发人员(业务系统)假设资源是无限的,可以任意使用,忘记了任何系统都是在一个资源受限的系统中运行业务.开发人员(业务系

《Oracle数据库性能优化方法论和最佳实践》——1.5 测量和变化

1.5 测量和变化 1.5.1 测量和性能 没有测量就没有性能,任何科学都建立在可测量的基础之上.Oracle数据库和基于它的性能优化理所当然是一门科学,而不是一门艺术.科学的性能优化首先必须是可以建立测量的目标系统性能指标.一个无法测量的系统或者一个只能依赖于人的眼睛.耳朵等器官来进行感知的系统是无法进行性能优化的.为了完成性能优化,需要做大量的可测量性工作.幸运的是,Oracle对于可测量的性能付出了巨大的努力,使其性能相关的测量指标远远超出了其他数据库. 从性能优化的角度出发,可以从以下几

《Oracle数据库性能优化方法论和最佳实践》——3.2 数据库登录流程的相关指标与优化

3.2 数据库登录流程的相关指标与优化 2.6节已经介绍过数据库登录流程的分解如下: Step 1:客户端登录请求. Step 2:listener处理和响应. Step 3:服务进程派生. Step 4:进程初始化和session初始化. Step 5:用户验证和权限判断. Step 6:session审计. Step 7:登录触发器. Step 8:响应客户端. 对于数据库登录流程来说,业务需求表述的输入请求和技术层面的输入请求完全一致.每次数据库登录都对应着一次客户端登录请求,输出响应时间

《Oracle数据库性能优化方法论和最佳实践》——第1章 Oracle性能优化漫谈 1.1 从生活场景漫谈性能优化

第1章Oracle性能优化漫谈 1.1 从生活场景漫谈性能优化 Oracle数据库性能优化一直是一个让人既胆怯又兴奋的话题,在初级DBA眼里,这是一个神秘的领域,即使是资深的Oracle DBA,也可能无法描述清楚性能优化究竟要做什么,应达成什么目标.那么性能优化究竟是做什么的呢?简而言之,性能优化就是让我们的工作速度变快,快到让我们满意为止.自然,又有读者会问了,我们的工作是什么呢?什么程度才算快,是否可以衡量?看,头疼的问题又来了.1.1.1 从一个真实病例说起 下面是本人的真实经历,也许很

《Oracle数据库性能优化方法论和最佳实践》——1.7 Oracle性能优化的神话和误区

1.7 Oracle性能优化的神话和误区 Oracle性能优化工作是Oracle数据库科学最为神秘莫测的领域,自然也就会流传着各种传言和八卦.本书最主要的目的就是真正使Oracle性能优化成为一门严谨的科学,使任何阅读并且理解本书内容的读者可以比较简单地完成Oracle性能优化工作,使自己在其他人面前成为"巫师"或"神秘的对象".1.7.1 艺术和科学 从百度.Google等网站搜索"性能优化艺术",会出现大量的条目,部分Oracle性能优化的图