当前位置:Linux教程 - Oracle - Oracle 8(8.0.5)标准版安装指南

Oracle 8(8.0.5)标准版安装指南

本文提供一种在RedHat Linux 6.0上安装Oracle 8标准版的简便方法,RedHat 6.0使用glibc 2.1,所以要正常运行Oracle8则必须打补丁。虽然Oracle出品了其最新数据库产品Oracle 8i (8.1.5)for Linux,并在RedHat 6.0上通过测试,但由于该版本bug太多,且采用了与以前版本完全不同安装方式-采用基于Java的安装程序,让很多Oracle的忠实用户颇感不适,所以在Oracle 8i改进之前,建议继续使用Oracle 8.0.5。
一、下载Oracle 8.0.5和补丁程序
  你可到Oracle的官方站点下载,在下载之前,必须先去Oracle OTN(Oracle Technology Network)免费注册,这样你可以访问Oracle的很多在线技术文档、下载和讨论区,说不定还可得到一张CDROM。下载的文件是805ship.tgz和glibcpatch.tgz。
  国内可到网络工作室 或新丝(思)路下载,但这些站点没有glibcpatch。

二、安装前准备工作


1、检查硬盘自由空间和5.2版兼容库

  在硬盘上准备500M以上的自由空间,可以是单独的一个分区,也可以不是。如果有光盘,可以从光盘上直接安装,如果是下载的,先在一个临时目录下(为方便叙述本文用“/apps”)将下载的805ship.tgz解压缩:

  tar zxvf 805ship.tgz

  检查Oracle 8.0.5所需的Redhat 5.2的兼容库是否已经安装好。

  rpm -q compat-binutils
>compat-binutils-5.2-2.9.1.0.23.1


  rpm -q compat-glibc
>compat-glibc-5.2-2.0.7.1


  rpm -q compat-egcs
>compat-egcs-5.2-1.0.3a.1


  rpm -q compat-egcs-c++
>compat-egcs-c++-5.2-1.0.3a.1


  rpm -q compat-libs
>compat-libs-5.2-1

  如果没有安装好上述这些兼容库,可从RedHat 6.0光盘或去有关站点下载后进行安装:

  rpm -ivh compat-binutils-5.2-2.9.1.0.23.1.i386.rpm
  rpm -ivh compat-glibc-5.2-2.0.7.1.i386.rpm
  rpm -ivh compat-egcs-5.2-1.0.3a.1.i386.rpm
  rpm -ivh compat-egcs-c++-5.2-1.0.3a.1.i386.rpm
  rpm -ivh compat-libs-5.2-1.i386.rpm

2、修改内核内存参数SHMMAX

  你可以修改内核的内存参数以便让Oracle支持更大的共享内存(最大4G),但很多用户指出4G可能用问题,32M内存足以运行Oracle,所以你可以不改SHMMAX,不过如果你有更多的内存(如128M),建议修改SHMMAX:

  cd /usr/src/linux/include/asm
  vi shmparam.h

找到“#define SHMMAX 0x2000000”,修改0x2000000为适当的值(0x80000000=128M),保存文件并重新编译核心,安装新内核。(有关核心编译和安装新内核请参阅核心源代码自带的说明文件)。

3、创建Oracle用户和组

  创建Orale组和用户:

  groupadd dba (在RedHat 6.0上,该组的ID可能是500)

  groupadd oper (该组是可选的,其ID可能是501)

  useradd oracle -g dba

  passwd oracle (修改口令)

  创建Orcale的安装目录,可以是一个单独的分区。不妨是“/u1”(你也可以欺骗Orcale,创建4个目录如/u1、/u2、/u3、/u4)。设置/u1目录的所有者:

  chown oracle.dba /u1

  进入""/apps""(805ship.tgz解压缩的目录),运行oratab脚本:

  cd /apps

  cd orainst

  ORACLE_OWNER=oracle; export ORACLE_OWNER

  sh oratab.sh

  logout

  重新用oracle用户登录,将下载的补丁程序glibcpatch.tgz拷贝到一个目录下解压缩:

  cd /apps (假定glibcpatch在/apps目录下)

  mkdir ~/orapatch

  cp glibcpatch.tgz ~/orapatch

  cd ~/orapatch

  tar zxvf glibcpatch.tgz

键入umask回车,检查其结果是否为“022”,如果不是,则在下面的“.profile”中加入“umask 022”。

  在oracle用户的根目录“/home/oracle”(或~)下创建“.bash_profile”脚本:

  cd ~

  vi .bash_profile

  在该文件中增加如下内容:

  ORACLE_HOME=/u1/app/oracle/product/8.0.5; export ORACLE_HOME
  LD_LIBRARY_PATH=/u1/app/oracle/product/8.0.5/lib; export LD_LIBRARY_PATH
  ORACLE_BASE=/u1/app/oracle; export ORACLE_BASE
  ORACLE_DOC=/u1/app/oracle/product/8.0.5/doc; export ORACLE_DOC
  ORACLE_SID=ORCL; export ORACLE_SID
  ORACLE_TERM=386; export ORACLE_TERM
  PATH=$PATH:/u1/app/oracle/product/8.0.5/bin; export PATH
  TMPDIR=/var/tmp; export TMPDIR

  如果umask不是返回""022"",加入
  umask 022

  ORACLE_DOC指出Oracle文档的安装目录,如果不在这里指定也可在安装过程中指定。如果接受默认的文档目录,安装程序将出错,以至于不能完成安装过程,这是Oracle的一个bug。

  重新登录,用“env”命令检查上述的设置是否正确。

4、安装Oracle 8.0.5

  cd /apps/orainst

  ./orainst /c

  选择“Custom Install”、OK、“Install,Upgate or De-install software”、“Install new product-DO NOT Create DB objects”(这一点很重要),检查“ORACLE_HOME”和“ORCALE_BASE”是否正确,接受默认log文件路径,选择从CDROM安装,选择恰当的语言(建议用American/English)。安装程序会告诉你“root.sh”在什么地方以便在安装完毕后执行。这时你就可以选择安装那些软件,如果你已安装了JAVA SDK并设置了正确的CLASSPATH,可选择安装JDBC,如果安装了TCL软件包,可以选择“Intelligent agent”,不过此时建议你可以不安装这些选件,以后可根据需要安装。按“Install”开始安装。

  在安装过程中有几个要注意的地方。关于ULIMIT的提示可以忽略,dba和oper组可以接受默认值,特别注意的地方是安装文档的目录,如果设置了ORCALE_DOC,则默认即可,否则一定要设置为“/u1/app/oracle/product/8.0.5/doc”,不然安装程序将提示“将文件拷贝到一个不存在的目录”,这是一个bug。

  如果你看到“The requested action has been performed for selected products”这样的提示,按“Exit”选“Yes”退出安装程序,你会看到一条“Result:Success”。

5、安装补丁

  由于RedHat 6.0使用了新版glibc库,而且该版本与Oracle不兼容,在RedHat 6.0上安装Oracle 8.0.5会有下列情况发生:

如果在安装过程中创建数据库导致安装失败。
运行Oracle的二进制文件如SVRMGRL和SQLPLUS会导致“Segmentation fault”。
  Oracle为此发布了一个补丁程序glibcpatch,他“修正”了4个RedHat 6.0的兼容库(在RedHat 6.0的光盘上提供的),这绝对不是最好的解决方案,因为他不用最新的glibc库,但不幸的是这是唯一的解决方法。

  cd ~/orapatch

  sh glibcpatch.sh

经过一段时间后(视你的机器配置而定),你会看到“Applied glibc patch for Oracle 8.0.5.x successfully”,这表明补丁成功。

6、创建数据库

  cd /apps/orainst

  ./orainst /c

  选择“Custom Install”、“Create /Upgrade database objects”、“Create Database objects”、检查ORACLE_HOME和ORCALE_BASE、接受默认log文件目录、必须选择“Oracle 8 Standard RDBMS 8.0.5.0.0”、按“Install”、选择“Create Product DB objects”、选择“Filesystem-based Database”、如果你准备将控制文件分布在多个“安装点”(Mount point),可在下个窗口指定,在这里我们选择单一安装点“/u1”。再选择适当的“Character set”、选择适当的“national chchacter set”、输入SYSTEM和SYS账户的口令、如果需要为dba和operator指定一个内部口令,则输入口令,否则选“no”、输入“TNS listener”口令、配置“MIS listener”时选“no”、接受控制文件的默认值、按OK到下两屏、最后选“Yes” 接受这些默认值。此时开始创建数据库,这需要很长的时间,直到看到“The requested action has been performed for selected products”后,按“OK”回到安装主窗口,退出安装程序。

7、安装完毕后

  重新以root身份登录,先将/“root”的“.bash_profile”作个备份,在将“/home/oracle/.bash_profile”拷贝到“/root”下。

  cp /root/.bash_profile /root/.bash_profile.sav

  cp /home/oracle/.bash_profile /root/.bash_profile

  logout

  再以root登录以便执行.bash_profile脚本,用env命令检查环境设置。然后:

  cd $ORACLE_HOME/orainst

  sh root.sh

  检查ORACLE_OWNER、ORACLE_HOME和ORACLE_SID的设置是否正确,如果正确,按“Y”。当提示本地bin目录时,输入“/usr/local/bin”,该脚本会提示你ORACLE_HOME与orcale的主目录不匹配,不用担心,键入“Y”继续下去。

  脚本执行完毕后,用oracle用户登录,停止服务器:

  svrmgrl

  connect internal

  shutdown

  quit

8、修改TNS Listener的权限

  TNS Listener以不正确的权限安装的,运行下列命令进行修改:

  su root
  [输入口令]
  chown oracle.dba $ORACLE_HOME/bin/tnslsnr
  chmod 750 $ORACLE_HOME/bin/tnslsnr
  chown oracle.dba $ORACLE_HOME/network/log
  chmod 775 $ORACLE_HOME/network/log
  chown root.dba $ORACLE_HOME/network/log/listener.log
  chmod 664 $ORACLE_HOME/network/log/listener.log
  exit (退出root)

9、启动orcale服务器并测试

  如果当前用户不是oracle(whoami),退出登录后以orcale用户登录。如果你想从其他PC上的GUI工具访问Orcale,则需运行TNS Listener,默认的配置是TCP/IP,你可能需要修改。

  启动侦听器(Listener):

  lsnrctl start

  启动Oracle服务器:

  svrmgrl

  connect internal

  startup

  quit

  现在用sqlplus启动一个创建用户资料(profile)的脚本程序:

  cd $ORACLE_HOME/sqlplus/admin
  svrmgrl
  connect system/ (默认是 ""manager"")
  @pupbld.sql
  quit

  下述脚本创建一个scott的用户,口令是tiger,你可以为此用户设置一个表的示例:

  cd $ORACLE_HOME/rdbms/admin
  sqlplus (用sys连接,默认口令为change_on_install)
  @utlsampl.sql
  quit

  检查刚才创建的数据库:

  sqlplus scott/tiger

  SQL>select * from dept;

  你可以看到表dept的记录内容。

  如果现在你能创建用户数据库表(table),你的Oracle数据库应该是启动并在运行了!

  最后一步,用root重新登录,将刚才备份的“.bash_prifle”恢复。

  copy /root/.bash_profile.sav /root/.bash_profile