| | |
| | |
本文提供一种在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以上的自由空间,可以是单独的一个分区,也可以不是。如果有光 盘,可以从光盘上直接安装,如果是下载的,先在一个临时目录下(为方便叙述本文用“ 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,不过如果你有更多 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”中加 在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的一个 重新登录,用“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”,不然安装程序将提示“将文件拷贝到 如果你看到“The requested action has been performed for selected products ”这样的提示,按“Exit”选“Yes”退出安装程序,你会看到一条“Result:Success”。 5、安装补丁 由于RedHat 6.0使用了新版glibc库,而且该版本与Oracle不兼容,在RedHat 6.0上 如果在安装过程中创建数据库导致安装失败。 运行Oracle的二进制文件如SVRMGRL和SQLPLUS会导致“Segmentation fault”。 Oracle为此发布了一个补丁程序glibcpatch,他“修正”了4个RedHat 6.0的兼容库 (在RedHat 6.0的光盘上提供的),这绝对不是最好的解决方案,因为他不用最新的glibc库 cd ~/orapatch sh glibcpatch.sh 经过一段时间后(视你的机器配置而定),你会看到“Applied glibc patch for 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”作个备份,在将“ 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与 脚本执行完毕后,用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
| |
|
|
| |
| |
|