分类: LINUX
2009-09-20 10:50:39
由于工作需要,刚刚接触到linux,有很大的好奇心。最近一直忙着在linux上面安装oracle10。刚开始以为很容易,在网上找个文档,照着去做就可以了,可是实践证明:万事开头难。花了将近两个星期的业余时间,发现了好多问题,然后在Google上面寻找解决方法,然后实践证明是否可行,历尽艰辛才把Oracle10安装成功。不过在安装过程中,对于我这只linux rookie来说,学到了很多知识,更进一步了解了linux。那么下面就把我的安装过程以及在安装过程中遇到的问题详尽的写下来,一来可以做为我的学习笔记,二来可以给正在或准备在linux上安装oracle的朋友提供参考,三来可以和大家一起交流,互相学习。
我的学习环境是在XP上面装了一个VMWARE虚拟机,然后在虚拟机中装了RedHat4。在安装RedHat时,由于Oracle对于swap(交换分区,类似windows里面的虚拟内存)有要求,因此我单独分了1G的空间给swap,其他的空间全部挂在“/”下面。
[root@RedHat ~]# fdisk -l
Disk /dev/sda: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 892 7164958+ 83 Linux
/dev/sda2 893 1044 1220940 82 Linux swap
这里还需要大家注意的是,Oracle10g对于linux操作系统的版本是有要求的,只有经过Oracle认证的linux版本才能正常安装。如果不在认证范围之内,执行系统会给予类型以下提示:
./runInstaller以后,报告下面的错误:
Checking installer requirements...
Checking operating system version: must be redhat-3, SuSE-9, redhat-4,
UnitedLinux-1.0, asianux-1 or asianux-2
Failed <<<<
其中“redhat-3, SuSE-9, redhat-4, UnitedLinux-1.0, asianux-1 or asianux-2”这些就是经过Oracle认证过的linux版本。因此,大家在安装之前一定要确认自己的环境是否适合安装Oracle10.
那么如何来确认呢?
在安装程序解压目录的子目录install下面有一个Oraparam.ini初始化文件,我们来看一下该文件里面的内容就显而易见了:
# vi install/oraparam.ini
[Certified Versions]
Linux=redhat-3,SuSE-9,redhat-4,UnitedLinux-1.0,asianux-1,asianux-2
[UnitedLinux-1.0-optional]
TEMP_SPACE=80
SWAP_SPACE=150
MIN_DISPLAY_COLORS=256
[Linux-redhat-3.0-optional]
TEMP_SPACE=80
SWAP_SPACE=150
MIN_DISPLAY_COLORS=256
[Linux-redhat-4.0-optional]
TEMP_SPACE=80
SWAP_SPACE=150
MIN_DISPLAY_COLORS=256
一、安装之前的准备
1.Oracle10g对于系统资源的要求非常高
1.1.物理内存至少要512M,如果条件充分可以最好1G
1.2.swap交换分区需要至少1G的空间。
1.3./tmp目录下面至少要有400M的空间
1.4.硬盘需要4G的空间
2.Oracle10g在安装过程中需要一些软件的支持,我在装RedHat4时,没有安装所有的软件,因此在安装Oracle之前需要将这些软件安装好。但是网上不同的文档所指明的软件都不一样,可能和安装的linux环境有关系,但是gcc编译器是必须的,而且其版本至少是gcc-3.2.3-2。我只安装了libaio-0.3.102-1.i386.rpm ,libaio-devel0.3.102-1.i386.rpm以及gcc,安装oracle也没问题。如果忘了安装必要的软件也不用担心,Oracle的安装程序中会检测目前的环境是否适合安装,如果不适合,Oracle会把必要的要素提示出来。这一点在下面的安装过程中会讲到。
2.1.安装libaio-0.3.102-1.i386.rpm,libiao-devel0.3.102-1.i386.rpm,这些软件都是放在linux安装盘中的/media/cdrom/RedHat/RPMS下面。
[root@redhat RPMS]# pwd
/media/cdrom/RedHat/RPMS
[root@redhat RPMS]# find /-name libaio-0.3.105-2.i386.rpm
find: /-name: No such file or directory
libaio-0.3.105-2.i386.rpm
[root@redhat RPMS]# rpm -ivh libaio-0.3.105-2.i386.rpm
warning: libaio-0.3.105-2.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
Preparing... ########################################### [100%]
package libaio-0.3.105-2 is already installed
[root@redhat RPMS]# rpm -ivh libaio-devel-0.3.105-2.i386.rpm
warning: libaio-devel-0.3.105-2.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
Preparing... ########################################### [100%]
1:libaio-devel ########################################### [100%]
2.2.安装GCC.
linux里的软件有很多都是存在互相依靠关系的。安装GCC需要安装binutils-2.15.92.0.2-24.i386.rpm、cpp-3.4.6-9.i386.rpm、glibc-kernheaders-2.4-9.1.100.EL.i386.rpm,glibc-headers-2.3.4-2.39.i386.rpm,glibc-devel-2.3.2-11.9.i386.rpm,看起来是不是有点头晕,没关系,我们先把他们一个一个找到,然后安装。
[root@redhat RPMS]# rpm -ivh binutils-2.15.92.0.2-24.i386.rpm
warning: binutils-2.15.92.0.2-24.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
Preparing... ########################################### [100%]
package binutils-2.15.92.0.2-24 is already installed
[root@redhat RPMS]# rpm -ivh cpp-3.4.6-9.i386.rpm
warning: cpp-3.4.6-9.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
Preparing... ########################################### [100%]
package cpp-3.4.6-9 is already installed
[root@redhat RPMS]# rpm -ivh glibc-kernheaders-2.4-9.1.100.EL.i386.rpm
warning: glibc-kernheaders-2.4-9.1.100.EL.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
Preparing... ########################################### [100%]
1:glibc-kernheaders ########################################### [100%]
[root@redhat RPMS]# rpm -ivh glibc-devel-2.3.4-2.39.i386.rpm
warning: glibc-devel-2.3.4-2.39.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
error: Failed dependencies:
glibc-headers is needed by glibc-devel-2.3.4-2.39.i386
glibc-headers = 2.3.4-2.39 is needed by glibc-devel-2.3.4-2.39.i386
Suggested resolutions:
/var/spool/up2dateglibc-headers-2.3.4-2.39.i386.rpm
[root@redhat RPMS]# rpm -ivh glibc-headers-2.3.4-2.39.i386.rpm
warning: glibc-headers-2.3.4-2.39.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
Preparing... ########################################### [100%]
1:glibc-headers ########################################### [100%]
[root@redhat RPMS]# rpm -ivh glibc-devel-2.3.4-2.39.i386.rpm
warning: glibc-devel-2.3.4-2.39.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
Preparing... ########################################### [100%]
1:glibc-devel ########################################### [100%]
以上软件安装完毕后,再来安装GCC.
[root@redhat RPMS]# rpm -ivh gcc-3.4.6-9.i386.rpm
warning: gcc-3.4.6-9.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
Preparing... ########################################### [100%]
1:gcc ########################################### [100%]
二.开始安装
1.建立用户和用户组
linux是多用户操作系统,每一个用户可以拥有自己的环境变量,可以拥有自己访问权限,大大提高了管理的强度。在这里,我们需要建立oracle用户以及dba用户组和oinstall用户角色组。
[root@redhat RPMS]# groupadd dba
[root@redhat RPMS]# groupadd oinstall
[root@redhat RPMS]# useradd oracle -g oinstall -G dba
[root@redhat RPMS]# passwd oracle
Changing password for user oracle.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
2.建立安装目录
[root@redhat ~]# mkdir -p /home/oracle/product/10g
[root@redhat ~]# chown -R oracle.oinstall /home/oracle/
[root@redhat ~]# chmod 755 -R /home/oracle
3.为oracle用户配置环境变量。
前面已经说过,linux是一个多用户操作系统,每一个用户可以设置自己的环境变量。在每一个用户的目录下,都有一个隐藏的环境变量文件,RedHat中,该文件叫.bash_profile。
我们在安装之前设置好oracle的环境变量,那么在安装的过程中需要的手工设置的环境变量可以去从oracle用户的环境变量里去读取并设置,例如ORACLE_BASE,ORACLE_HOME,ORACLE_SID。
[root@redhat oracle]# su oracle
[oracle@redhat ~]$ vi ~/.bash_profile
在.bash_profile文件中增加以下变量:
export ORACLE_BASE=/home/oracle/
export ORACLE_HOME=/home/oracle/product/10g
export ORACLE_SID=zgz
export PATH=$ORACLE_HOME/bin:$PATH
最后一句需要注意的是,变量之间的是通过“:”号来连接的,而windows里面是用“;”来连接的,当初我就是没有仔细看,以为和windows一样,把“:”敲成了“;”,结果是source时总是报错,走了很多弯路。
然后通过source命令使修改过的环境变量生效。
[oracle@redhat ~]$ source .bash_profile
4.设置系统参数
切换到root用户
[oracle@redhat ~]$ su
Password:
[root@redhat oracle]# vi /etc/sysctl.conf