应该怎么样安装数据库,从安装软件到创建数据库?对于这个问题,或许有的人不屑一顾,因为他们觉得这没有丝毫问题;同时有另一部分人,觉得这是个大问题.
在安装Oracle上,通常会有几种类型的人:
完全抓不着头脑,不知道怎么安装,这通常是初学者,连Linux/Unix都不太熟悉.
很少安装Oracle的人,但是知道对照文档一步一步操作,出了错也知道上google、baidu和metalink查找解决方案.
Oracle老手,安装数据库不需要任何文档,对每个步骤也很熟悉.
对Oracle的安装非常熟悉,但是在安装时仍然按文档一步一步操作.
对我个人来说,我是最后一种类型的人.我也自认为安装了不少的数据库,覆盖了大部分的平台和操作系统.但我安装的时候,仍然会不嫌麻烦的一步一步操作按文档操作.在安装数据库软件包括建库,基本上没有遇到过什么问题.因为我也见过
很多朋友,被安装这一问题折腾得焦头烂额,特别是在安装RAC的时候,这里只是写一写我自己的一些做法,仅供参考,毕竟每个人都有自己的习惯和做法.
本文主要描述Linux/Unix下的Oracle安装,不涉及Windows系统下的安装.
我的习惯做法:
根据以上提到的文档,进行整理,形成自己的文档.我在前面说到,我安装时一步一步按文档操作,是指的按我自己的文档,而不是去参考前面提到的若干文档.在自己的文档中,甚至提供了详细的命令,这样在安装的时候对某些不熟悉的命令不至于现查资料.
深入理解文档中提到的各个参数、各个命令的作用.这不光是对安装,而对于Oracle数据库的更深入理解也是大有好处的.
安装Oracle数据库时,在安装软件之前,通常有下面的操作:
检查操作系统版本、相应组件是否安装,是否有安装好文档中指定的补丁,也包括c编译器或c语行环境,这些对Linux下的安装来说犹为重要.
检查文件系统空间,特别是/tmp临时文件系统
检查memory大小,特别是swap的大小.特别是在HP-UX下,swap的管理方式与其他系统有些不一样(此处不再细述),最
好能够达到物理内存大小,对于特别大的物理内存,至少也要达到一半.
检查主机时区,时间设置.这一步通常被很多人忽略.
检查主机名设置,有的安装系统相当不负责任,直接将主机取名localhost.
检查异步IO设置.
检查网络设置,包括/etc/hosts文件的设置,特别是对RAC数据库犹为重要.
检查内核参数,特别是共享内存、信号量、用户最多可运行进程数这些参数.
对于RAC,还需要设置rsh或ssh
至于安装的其他步骤,不是本文所要讲的主要内容,在此略过.
还要提及一点,安装的时候对于目录的选择,可以按照OFA的标准做法,也可以按照使用部门的习惯,建议使用OFA.经常有见到一些乱七八糟的目录,让人好找,这种做法不太好.
说到安装,不能不提到打补丁.在安装完成后,最好是打上较新的补丁包以及metlink上提到的一些建议打的补丁.而等到系统正式使用,发现问题再打补丁,其代价就昂贵得多.
由于安装Oracle软件以及升级版本和打补丁,比较耗时,有的朋友就喜欢下面的做法:安装好软件,打上补丁,然后tar成一个包,保存在自己的存储介质上,下次在其他主机上安装时,直接用这个tar包解开.这种做法可以省一些安装软件的时间,但是需要tar包的环境是否一致.我曾遇到过下面的问题:
出现问题的Oracle,就是通过解tar文件来安装的,在主机上我们也发现了以前安装时保留的tar文件.所以呢通过这种方式安装的,建议进行relink.
下面再谈谈创建数据库的一些个人经验:
创建数据库时注意选择正确的字符集.
如果是选用模板创建数据库,注意模板有可能不与Oracle软件软件版本相匹配.同时在建库完成后需要运行相应的脚本,比如在安装了PSU的情况下,那么使用模板建库,得需要运行PSU带的脚本(具体参考PSU的README).
在打完补丁之后,在创建数据库,避免在升级软件之后还要升级数据库.
建完库后,建议设置一下大体上合理的数据库参数.
希望本文能够对Oracle数据库的安装不太熟悉的朋友一些帮助.
一种方法是重装数据库后用IMP来导入原来的数据,但使用这种方法的前提是你有以前数据的备份,并且这种方法还有许多不足的地方,如备份过旧,可能会丢失许多数据、导入数据太长等.
一般情况下我们可以采用重用原来的数据库的方法来恢复.在讲步骤前先说说这种方法的原理.
数 据库与实例对应,当数据库服务启动后,我们可以用SQLPLUS "/AS SYSDBA"方法连接到一个空闲的例程,当执行startup启动数据库时,首先会在%ORACLE_HOME%/database下找当前SID对应 的参数文件(PFILE或者SPFILE)和密码文件,然后启动例程;接着根据参数文件记录的信息找到控制文件,读取控制文件的信息,这就是mount数 据库了;最终根据控制文件的信息打开数据库.这个过程相当于对数据库着了一次冷备份的恢复.
下面的具体步骤:(我们假设原库的所有相关文件都存在)1、安装数据库软件只需安装同版本的数据库软件即可,不需要创建数据库.最好安装在和原来数据库同样的%ORACLE_HOME%下,省得还要修改参数文件路径等.(直接覆盖原来的oracle即可)再次强调,只安装软件,不创建数据库,否则将数据库软件安装在同样的目录下旧的部分数据文件会被覆盖,这样数据库也不能被恢复了.
接着连接数据库sqlplus "/as sysdba"startup
如果正常的话,数据库应该就能起来了
在注册表的HKEY_LOCAL_MACHINESOFTWAREORACLE下新建字符串值,名称为ORACLE_SID,值为xinhai.也可以将以下内容保持成一个后缀名为reg的文件(文件名随便起),然后双击,即可将信息导入到注册表中.
[HKEY_LOCAL_MACHINESOFTWAREORACLE]"ORACLE_SID"="xinhai"
注意,以上步骤都是在%ORACLE_HOME%、%ORACLE_SID%都与原库一样的情况下讨论的,虽然%ORACLE_HOME%和%ORACLE_SID%可以与原库不一样,但为了减少麻烦和出错的几率,建议不要改变则两个值.
set sid=xinhailsnrctl starte:/oracle_startuplog.logsqlplus /nolog @e:oracle_startupsql.txte:/ oracle_startuplog.log
在e盘下增加文档oracle_startuplog.log,内容为:
connect / as sysdba;startup nomount;alter database mount;alter database open;quit
然后把oracle_startup.bat放到系统启动项里面,这样每次启动系统时oracle就自动启动了.