在Linux上安装oracle是一件比较麻烦的事情,过程中会出现这样那样的错误。下面是我的安装过程,由于此处无法黏贴截图,所以纯文字叙述了,但是步骤还是挺详细的。
安装环境:redhat linux5.4(32位)。这里顺便说一下,如果你的机子是64位,但是使用的是虚拟机,那么你的Linux可以使用32位的,oracle也可以选择用32位的,既然是虚拟机当然就可以的。
1.首先我们要检查一下硬件是否满足要求:一般要高于1G物理内存,交换区一般是内存的2倍,硬盘5G 以上。
这里可以直接使用命令free来查看Linux的内存和交换区,也可以使用一下两个命令分别检查:
grep MemTotal /proc/meminfo
grep SwapTotal /proc/meminfo
再用df -h这个命令检查磁盘空间
2.下面我们使用ftp将主机上的安装包上传到虚拟机中。(这里涉及到主机和虚拟机之间的通信方式问题,这里不做过多讲解)
首先我们检查Linux上的ftp服务是否有开启。
使用命令service vsftpd restart
此时有可能出现错误,那是因为你的ftp软件包没有安装。于是分别执行如下命令:
(1)挂载光盘:mount -t iso9660 /dev/cdrom /media
(2)到/media/Server目录下:cd /media/Server 再执行ls即可看到从光盘中所挂载的多个软件包,而我们要找的安装包是vsftpd-2.0.5-16.el5.i386.rpm,于是执行rpm -Uvh vsftpd-2.0.5-16.el5.i386.rpm。执行完之后试着打开ftp服务,有可能会出现FAILED的情况。于是我们检查21号端口:
netstat -nlap|grep 21 ,如果21号端口监听的不是vsftpd的话,就说明端口被其他服务占用了,最常见的就是被xinetd服务占用,也就是telnet服务,解决方法就是把telnet服务关闭:service xinetd stop。之后,再次开启ftp服务成功。
下面回到主机,注意主机的ftp也要开启,具体操作是打开控制面板》程序》打开或关闭windows功能》勾选ftp的相关服务。
打开dos窗口,输入ftp 192.168.133.128(虚拟机的ip) 此处注意我们不要使用root登录,因为我们要把安装包上传到其他用户的家目录,我这里是以c用户登录,所以上传到/home/c/目录下。
ftp>bin
(这里要注意,进入ftp之后,要输入bin,让其以二进制的模式上传,否则到时候进行解压会出现错误。)
ftp>put e:\oracle\linux_11gR2_database_1of2.zip
此处注意,有可能会出现553 Could not create file的错误,解决方式是在终端执行setsebool -P ftpd_disable_trans 1,并且编辑
/etc/vsftpd.conf修改相关参数的值: write_enable=YES
local_enable=YES
ascii_upload_enable=YES
ascii_download_enable=YES
listen=YES
存盘退出。
两个安装包都能上传完之后就可以解压,解压命令式unzip,此处不做过多讲解。
3.下面检查oracle安装过程中所需的安装包是否安装了。同样要先将光盘挂载。
rpm -Uvh setarch-2*
rpm -Uvh make-3*
rpm -Uvh glibc-2*
rpm -Uvh libaio-0*
rpm -Uvh compat-libstdc++-3-3*
rpm -Uvh compat-gcc-34-3*
rpm -Uvh compat-gcc-34-c++-3*
rpm -Uvh gcc-4*
rpm -Uvh libXp-1*
rpm -Uvh openmotif-2*
rpm -Uvh compat-db-4*
4.在Linux配置文件中设置oracle数据库的参数:
使用vi编辑器在/etc/sysctl.conf文件末尾加上下面参数:
#use for oracle
Kernel.shmmall=2097152
Kernel.shmmax=2147483648
Kernel.shmmni=4096
Kernel.sem=250 32000 100 128
Fs.file-max=6815744
Fs.aio-max-nr=1048576
Net.ipv4.ip_local_port_range=9000 65500
Net.core.rmem_default=4194304
Net.core.rmem_max=4194304
Net.core.wmem_default=262144
Net.core.wmem_max=1048576
在/etc/security/limits.conf文件末尾加上如下参数:
* soft nproc 2047
* hard nproc 16384
* soft nofile 1024
* hard nofile 65536
在/etc/pam.d/login文件末尾加入如下内容:
Session required pam_limits.so
在/etc/profile文件末尾加入如下内容:
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -p 65536
else
ulimit -u 16384 -n 65536
fi
fi
5.创建安装oracle的用户和组
groupadd oinstall
groupadd dba
useradd -m -g oinstall -G dba oracle
确认oracle用户的属性
id oracle
我们可以为oracle用户创建密码:
passwd oracle
接着就会提示是输入密码
6.创建安装oracle数据库所需的目录
mkdir -p /u01/app/oracle
把这个目录的属性改为oracle用户和oinstall组:
chown -R oracle.oinstall /u01/app/oracle
再把目录设置成oracle用户可读可写状态:
chmod -R 775 /u01/app/oracle
下面我们查看一下从解压包中解压出来的文件夹的权限:
ls -l /home/c
文件夹database是解压出来的,我们可以看到它的权限是root,于是把它设置成是oracle用户和oinstall组的:
chown -R oracle:oinstall /home/c/database
7.设置oracle用户的环境变量
在/home/oracle/.bash_profile文件末尾加一下内容:
#use for oracle
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=orcl
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE/rdbms/jlib
存盘退出,使用命令source /home/oracle/.bash_profile使其修改立即生效。
至此,所有准备工作都已经完成。下面开始安装数据库软件了。
在安装之前要做一个重要的步骤,那就是切换到root用户,执行
xhost +
如果没有执行这一步,那么将不能启动图形安装界面。
执行完上面一部之后,到/home/c/database目录下,执行./runInstaller
那么就可以开始以图形界面来安装oracle了。
在安装的过程中,有可能会提示你有些安装包未安装,那么我们可以再打开一个终端,按照以上的挂载光盘步骤按着顺序装就可以了,依次安装完之后回到安装界面点击check again 即可。
如果出现OUI-10182的错误,那么按如下步骤解决:
以root用户在/etc下创建oraInst.loc文件,在文件中添加如下内容:
(假设你的oraInventory在这个目录下:/u01/app/oraInventory)
则添加:oraInventory_loc=/u01/app/oraInventory
inst_group=oinstall
存盘退出。重新执行安装程序即可。
如果出现INS-10008错误,就是由于权限的问题了,只需要把/u01下的所有文件都设置成
oracle:oinstall 即可。