Oracle数据库实例的创建、删除、修改_第1页
Oracle数据库实例的创建、删除、修改_第2页
Oracle数据库实例的创建、删除、修改_第3页
Oracle数据库实例的创建、删除、修改_第4页
Oracle数据库实例的创建、删除、修改_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Oracle数据库实例的创建、删除、修改以 SUSE10SP2、Oracle10gR2 为例。本文中的数据库实例这一称谓应该换做数据库更为准确,数据库可以理解为是一个物理的静态概念, 主要包括一些物理存在的数据库文件,而数据库实例则是一个动态概念,包括一些内存区域以及若干进程,数据库实例是对数据库进行操作的执行者。(20090714修改)安装完Oracle数据库系统的安装后,需要创建数据库实例才能真正开始使用Oracle数据库服务。总结起来,Oracle有三种创建数据库实例的方法。第一种,最常用也最简单,那就是通过DBCA(Database Configuration Assistant) ,

2、这是 Oralce提供的一个图形界面的数据库实例配置工具,通过它可以创建、删除和修改数据库实例,它的使用也比较简单、 易懂,交互式的图形界面操作,非常准确有效的提示与配置,是一个比较方便的创建数据库实例的方式。按照DBCA给出的提示,很容易创建一个新数据库实例。在创建数据库的时候,DBCA还提供了两个选项,让你可以根据刚刚设置好的参数生成一个数据库实例模板和一份数据库实例创建脚本。这两个东西是非常好,非常有用的东西,数据库模板由Oracle自己管理维护,已经创建好的数据库实例模板可以在DBCA图形程序新建数据库实例时作为模板来使用,另外在DBCA使用responseFile 文件或者命令行参数

3、创建数据库时也需要用到(见后面介绍);数据库创建脚本是一组脚本,包括shell脚本和sql脚本,这些脚本共同实现一个功能,那就是按照你之前在 DBCA中设置好的那样创建一个数据库实例(后面也会有介绍),你需要做的只是将这些脚本在你的代码中调用起来。当然,你也可以选择只生成数据库模板或者数据库脚本,而不用去创建一个真的数据库(这通常很费时间)。*5e ect 口itafeis银旺呼忝阳訂7匚確-宰白/汨:越诞報Hf|pl I Back ypKiMhl*5hDBCA是一个非常强大的工具,上面看到的只是DBCA最常用的创建一个数据库实例的使用,其实DBCA还提供另外两种使用方法,分别是 respon

4、seFile和命令行带参调用。先说DBCA的responseFile 使用方法,responseFile 这个东东并不陌生,前文讲的Oracle自动安装就是使用responseFile 完成的,DBCA的responseFile 使用方法和 Oracle安装程序的responseFile 使用 方法基本一致。但DBCA的responseFile的来源只能是 Oracle安装包中提供的模板文件,而不能向Oracle安装程序的responseFile 一样,先自己record 一个,然后再用这个 record去指导Oracle的自动安装。从 Oracle安装包中获取到 DBCA的responseF

5、ile模板文件后,你可以根据自己的需要编辑修改该模板文件, 以完成对数据库实例的某些参数设置(DBCA图形界面所提供的参数设置,responseFile中都可以设置,而且该responseFile模板文件的注释写的很好,你完全不用担心无法搞定那些繁杂的数据库实例参数设置, 赞Oralce 个!)。该模板文件在 Oracle安装包中的位置一般在 $ORACLE_PACKAGE/response 目录下。有了 responseFile之后,你只需在调用 DBCA的时候指定responseFile的位置和另外一些参数:dbca -silent|-progressOnly -responseFile

6、responseFile 名称其中-silent|-progressOnly 选项意义和Oracle安装程序命令行参数中的同名选项一样,表示完全字符 界面自动安装或者带图形提示界面的半自动化安装。responseFile名称当然就是responseFile 的具体位置了。但是,有一点不是很好,那就是使用DBCA的responseFile方式创建Oracle数据库实例,需要事先已经存在一个数据库实例模板了,在responseFile中再指定该数据库实例模板名,然后DBCA再依据这个已有的数据库实例模板完成新数据库实例的创建,所以就会有前面讲到的DBCA图形界面创建数据库实例时提供生成数据库实例模

7、板的选项(数据库实例模板也可以从一个已有数据库实例生成),就是在这要用到的。从上面调用 DBCA使用responseFile的命令中,应该已经看到了DBCA是提供一些命令行参数选项的,其实DBCA提供的命令行参数选项远比你想象的强大,甚至可以这么说,所有DBCA图形界面和responseFile能够办到的事,通过DBCA丰富的命令行参数选项都可以办到。你在DBCA图形界面上设置的参数或者在responseFile中指定的参数值都可以通过DBCA的命令行参数选项来进行设置,所以你完全可以只通过DBCA的命令行带参调用来完成一个数据库实例的创建(当然也包括删除、修改数据库实例等 所有DBCA图形界

8、面所能提供的功能)。其实,我更愿意这样认为,DBCA的responseFile 应用也是一种DBCA命令行带参调用的使用。需要注意的是,当DBCA的命令行参数和responseFile同时设置一个参数时,命令行参数的优先级是比responseFile要高的。另外,使用DBCA命令行带参调用新建数据库实例和使用responseFile新建数据库实例一样,也是需要事先已经存在一个数据库实例模板,才能完成新数据库 实例的创建。一份非常详细的DBCA所有命令行参数选项列表,你可以通过执行dbca -help获得。到现在你可能已经发现,DBCA图形界面、DBCA的responseFile使用以及DBCA

9、的命令行带参调用,其实是三个分别具备完全数据库实例设置功能的工具或者接口,分别对应不同的应用场景,它们可以满足你几乎所有的应用需求 (使用这样的工具来帮助构建自己的软件真是非常惬意的一件事情,再赞Oracle 个!)。第二种是通过脚本(是否称为命令行方式更合适,下文描述的脚本方式其实都是命令行方式的非交互式方法,或者说命令行的自动化方式,但其实所有脚本方式都可以将shell脚本或sql脚本中的shell命令、sqlplus命令拆分出来,手工在shell中或者sqlplus界面中进行交互式的输入执行,这可以称为命令行的手工方式)来完成数据库实例的代码中自动创建。这里说的脚本包括shell脚本和s

10、ql脚本,这种方式可以说是最适合与编程结合的,因为这些shell脚本或者sql脚本都可以直接在 shell命令中调用执行,所以可以很好与shell编程相结合。而这其实是基于一个非常重要的事实,即Oracle提供了一个交互式的命令行工具sqlplus (类似与DB2的db2cmd),这个工具可以认为是一个Oracle数据库管理工具,通过它可以执行一些Oracle的数据库管理命令,来完成一些数据库管理工作(这当然就包括数据库实例的创建),同时你也可以把它当作一个 SQL语句执行器,直接在里边执行你想要执行的SQL语句或者存储过程等,并获取执行结果。并且,更重要的是,sqlplus可以直接在shel

11、l命令行中进行非交互式的调用执行(通常是调用执行一段sqlplus语句,或者是一个由一些 sqlplus语句组成的sql脚本,我所说的sqlplus语句包括Oracle 数据库管理维护命令、SQL语句和存储过程等),这就为在shell编程中使用sqlplus完成数据库实例自动 创建工作提供了可能。shell命令行中非交互式调用 sqlplus执行一段sqlplus语句是利用shell编程中重定向命令的一个特性, 即分隔符重定向输入。一般用法如下:command*任意自定义分隔符> (换行)内容> (换行)内容>自定义分隔符shell中遇到 << 则会自动将下一个单

12、词认作分隔符,并将分隔符后面的文本当作command命令执行的内容传递给command依次全部执行直至遇到下一个分隔符单词才结束。这里的分隔符可以是任意自定义 的单词,通常使用 EOF,举例:sqlplus / as sysdba«EOFstartup nomount;select * from v$version;shutdown immediate;exit;EOF这段shell程序调用sqlplus执行了若干sqlplus语句,用来启动数据库实例,查询数据库版本信息, 然后关闭数据库实例,退出sqlplus。shell命令行中非交互式调用sqlplus执行一个sql脚本是利用s

13、qlplus本身提供的命令行参数。在sqlplus界面中可以通过start命令和命令来执行一个sql脚本,两者功效相同,用法如下:SQL>start sql脚本绝对路径;SQL>sql脚本绝对路径;而在shell命令行中可以使用 来完成sqlplus对sql脚本的调用执行,举例:sqlplus / as sysdba ./MySQL.sql以上命令会调用sqlplus执行当前目录下的MySQL.sql脚本。使用脚本来完成数据库实例的创建工作,也分为两种情况。一种是诚如前文所述的那样,在使用DBCA图形工具创建数据库实例的同时生成一份数据库实例创建脚本(包括若干shell脚本和sql

14、脚本),那么你就可以使用这份脚本,在shell中进行调用,完成数据库实例的代码自动创建。使用这份数据库实例创建脚本创建的新数据库实例和原数据库实例是完全一样,当然,你可以将生成的脚本进行修改,以完成你对数据库实例的某些设置,但是请在你对脚本内容已经足够了解,并且知道你自己在干什么的情况下修改脚本,否则你很有可能使用修改后的脚本无法正确创建数据库实例。这种方法中shell脚本对sqlplus的使用,更多的是使用 sqlplus来执行一些Oracle生成的sql脚本(这些 sql脚本的内容是就是一些sqlplus语句的集合,它们的任务就是完成数据库实例的创建以及设置)。另一种情况则是不依靠DBCA

15、生成的脚本,完全由自己来编写实现一份shell脚本,在脚本中你可以调用sqlplus执行一段sqlplus语句或者其它一些sql脚本,以完成数据库实例的创建和设置,这完全取决 于你的实现;而最常用的用来创建数据库实例的一个方法就是在sqlplus中使用create database语句,create database语句提供了许多丰富的选项和参数设置,确保你能完全创建一个自己所需要的数据库实例。当然,还有一些其它方法可以创建数据库实例,比如调用执行oracle提供某些存储过程等。至于 create database 语句的详纟细介绍可以参考 oracle 的sql reference。第三种严

16、格来说不能算作一种创建Oracle数据库实例的方法,它是通过已有的数据库实例为基础来完成新数据库实例的创建的。这种方法是首先通过第一种或者第二种方法来创建好一个数据库实例,然后将 该数据库实例的物理文件进行备份,然后直接使用备份的物理文件恢复出一个与原数据库实例完全一样新 的数据库实例,所以这种方法需要和第一、二种方法相配合才能使用。这种方法其实已经属于Oracle数据备份与恢复的范畴了, 就是Oracle数据备份恢复方式中的物理备份恢复,所以这种方法可以叫做物理恢复法。简单介绍物理恢复法,首先将一个已经存在数据库实例(最好已关闭)进行物理备份,所谓物理备份其实就是复制该数据库实例所使用的操作

17、系统文件,这些文件主要包括 DataFiles、RedoLogs、ControlFiles和UndoFiles (这些文件一般存在于$ORACLE_HOME/oradata 目录下),进行数据库实例恢复的时候只需 将备份的操作系统文件复制到新的oradata目录下即可,可以直接启动使用恢复后的该数据库实例。不难看出,这种备份恢复是依赖于操作系统平台的。详纟细的物理备份和恢复介绍可以参考oracle 的backup and recovery basics 以及 backup and recoveryadvanced user' s guide。说完了数据库实例的创建,现在来说说数据库实例

18、的删除和修改。其实介绍完了数据库实例的创建, 数据库实例的删除和修改就非常简单了。基本和前文数据库实例创建的内容相一致,且比较而言更简单。数据库实例的删除从上文中数据库实例的创建不难得到,大致有两种方法,DBCA工具和命令行方式。DBCA工具除了能够用来创建数据库实例,当然也能够用来删除数据库实例了,且同样可以用使用 responseFile或者命令行带参调用等方法来完成数据库实例的删除,请参考数据库实例创建部分。命令行删除数据库实例的方式,严格来讲,是使用一组sqlplus命令来完成数据库实例的删除,这组sqlplus命令可以组织在一个 sql脚本中,然后在shell命令行中调用sqlplus程序来执行该sql脚本,或者 直接在shell命令行中利用shell程序重定向

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论