©
本文档使用php.cn手册发布
Oracle 8(8.0.5)标准版安装指南yanzi (clyan@sohu.com) |
来源:Linux数据库应用指南
|
本文提供一种在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和补丁程序 二、安装前准备工作
在硬盘上准备500M以上的自由空间,可以是单独的一个分区,也可以不是。如果有光盘,可以从光盘上直接安装,如果是下载的,先在一个临时目录下(为方便叙述本文用“/apps”)将下载的805ship.tgz解压缩: tar zxvf 805ship.tgz 检查Oracle 8.0.5所需的Redhat 5.2的兼容库是否已经安装好。 rpm -q compat-binutils
如果没有安装好上述这些兼容库,可从RedHat 6.0光盘或去有关站点下载后进行安装: rpm -ivh compat-binutils-5.2-2.9.1.0.23.1.i386.rpm 2、修改内核内存参数SHMMAX 你可以修改内核的内存参数以便让Oracle支持更大的共享内存(最大4G),但很多用户指出4G可能用问题,32M内存足以运行Oracle,所以你可以不改SHMMAX,不过如果你有更多的内存(如128M),建议修改SHMMAX: cd /usr/src/linux/include/asm 找到“#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 如果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为此发布了一个补丁程序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 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 下述脚本创建一个scott的用户,口令是tiger,你可以为此用户设置一个表的示例: cd $ORACLE_HOME/rdbms/admin 检查刚才创建的数据库: sqlplus scott/tiger SQL>select * from dept; 你可以看到表dept的记录内容。 如果现在你能创建用户数据库表(table),你的Oracle数据库应该是启动并在运行了! 最后一步,用root重新登录,将刚才备份的“.bash_prifle”恢复。 copy /root/.bash_profile.sav /root/.bash_profile |