一、系统软件版本:(由于系统和软件的不同版本可能导致安装步骤,文件配置不同,所以我只介绍我所采用的版本安装过程) 软件: Linux版本:[红帽企业Linux.5.4].rhel-server-5.4-i386-dvd.iso Oracle版本:linux_11gR1_database.zip 我是采用Vmware虚拟机软件为载体,将Linux系统安装在虚拟机上,这样的好处是可以在一台电脑上运行多个系统,模拟系统之间远程连接,对于学习很有帮助。当然,对于如何在虚拟机上安装Linux系统,在此不做详细的介绍。 二、准备安装环境 (1) 创建必要的目录和组(以root用户登陆,用户帐户将称为 oracle,而组将称为 oinstall 和 dba。) 命令如下: #mkdir -p /home/u01/oracle//创建目录 #groupadd dba//创建dba用户组 #groupadd oinstall//创建Oracle安装用户组 #useradd oracle//创建oracle用户 #chown -g oinstall -G dba /home/u01/oracle oracle//将oracle用户添加到dba和oinstall组中 #passwd oracle //设置密码 #chown -R oracle:oinstall /home/u01 把u01目录赋予oracle用户oinstall组 (2) 安装和更新必要的软件包 注意:Linux的软件包之间有的存在依赖关系,所以有些软件包之间安装一定要有顺序,否则会提示错误,导致安装失败,我下面列出的软件包安装顺序是经过我的试验的,网上的文档存在错误,大多在这里,一般是安装顺序不对,导致安装失败。 安装顺序:(这些软件包在Linux系统镜像文件中都可以找到:光盘镜像中server文件夹中都可以找到) binutils-2.17.50.0.6-12.el5.i386.rpm compat-libstdc++-33-3.2.3-61.i386.rpm elfutils-libelf-0.137-3.el5.i386.rpm elfutils-libelf-devel-0.137-3.el5.i386.rpm kernel-headers-2.6.18-164.el5.i386.rpm glibc-headers-2.5-42.i386.rpm glibc-devel-2.5-42.i386.rpm libgomp-4.4.0-6.el5.i386.rpm gcc-4.1.2-46.el5.i386.rpm libstdc++-devel-4.1.2-46.el5.i386.rpm gcc-c++-4.1.2-46.el5.i386.rpm glibc-common-2.5-42.i386.rpm glibc-2.5-42.i686.rpm libaio-0.3.106-3.2.i386.rpm libaio-devel-0.3.106-3.2.i386.rpm libgcc-4.1.2-46.el5.i386.rpm libstdc++-4.1.2-46.el5.i386.rpm make-3.81-3.el5.i386.rpm sysstat-7.0.2-3.el5.i386.rpm unixODBC-2.2.11-7.1.i386.rpm unixODBC-devel-2.2.11-7.1.i386.rpm (注意:在oracle官方给出的安装需求文档,有些rpm包没有提到,但是这些包可能是其他一些必须包所依赖的包,也必须要安装才可以。另外,对于不同版本的redhat镜像系统,rpm包版本可能不同,但是一定是这些名称的包。还有,Linux安装光盘中有两个glibc-2.5-42包 一个是i386.rpm 另一个是i686.rpm,安装时安装i686.rpm i386.rpm会与其他包产生冲突,导致安装失败。) (3) 设置linux内核 打开修改/etc/sysctl.conf,在最后加入以下内容: (vi /etc/sysctl.conf打开,加完以后安 ESC +:+w 保存,ESC + : + q 退出) kernel.shmall = 268435456 kernel.sem=1055 32000 100 128 kernel.shmmax=2147483648 kernel.shmall = 2097152 net.ipv4.tcp_sack = 0 net.ipv4.tcp_timestamps = 0 net.ipv4.conf.default.rp_filter = 0 net.core.optmem_max = 65535 net.core.rmem_default = 4194304 net.core.wmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_max = 262144 fs.file-max = 6553600 net.ipv4.ip_local_port_range = 1024 65000 注意:结束后#sbin/sysctl -p 执行一下,使系统生效 (4) 修改 /etc/security/limits.conf,加入内容(修改方法同上) oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 (5)修改/etc/profile,加入内容
注意:在进行完这步操作之后,有些时候会出现一些小错误,错误现象是我们使用su命令在root和oracle用户之间切换时会提示下列错误: -bash: [oracle: command not found -bash: [root: command not found 解决这个问题很简单:在修改profile文件时第一行、第二行中 if [ $USER
= "oracle" ]; then 中括号与内容之间一定要有空格,如果没有空格,会提示上面的错误的。 例如if [$USER = "oracle"]; then (6) 编辑 /etc/pam.d/login 添加以下行: session required /lib/security/pam_limits.so session required pam_limits.so
以上六步的完成均是在root用户登录下,下面将用户切换到oracle用户 使用命令#su – oracle切换用户 打开 v .bash_profile 加入(/home/oracle) ORACLE_BASE=/home/oracle/app ORACLE_HOME=$ORACLE_BASE/oracle/product/11.1.0/db_1 ORACLE_SID=orcl(设定SID名称,一般为数据库名字) PATH=$ORACLE_HOME/bin:$PATH export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH 三、进行安装 进入root用户把你下的linux_11gR1_database.zip用unzip linux_11gR1_database.zip 解压出来得到database,把它移动到/home、u01目录下 #mv database /home/u01 #chown -R oracle:oinstall /home/u01/database 这时使用oracle用户登录到Linux图形用户界面 su oracle 在database目录下$./runInstaller (注意:有些文章提示在命令行中执行./runInstaller会提示如过提示diaplay变量错误,需要执行#xhost + , #xhost + localhost两个命令,不过本人安装中没有遇到这个问题。) 在接下来的安装中,我都是采用默认安装的方式,默认装时Linux系统默认将程序安装在/home/oracle目录中 在安装过程中会弹出一个要求执行oraInstRoot.sh和root.sh的提示框,可在命令行窗口中,以ROOT用户执行这两个文件,在图形界面打开命令窗口,切换到root用户,按照提示进入两个文件所在目录,分别执行两个文件 ./oraInstRoot.sh ./root.sh。在安装的过程中,在安装路径的选择上本来可以更改安装目录,将Oracle安装在我们新建的目录/home/u01/oracle下的,但是我在安装时疏忽了这一点,系统进行了默认方式安装,安装路径在/home/oracle/app但是这并不影响使用。如果有人更改了默认的安装路径,那么在/home/oracle中./bash_profile文件中 ORACLE_BASE=/home/oracle/app、 ORACLE_HOME=$ORACLE_BASE/oracle/product/11.1.0/db_1 中内容要进行相应的修改。 经过一段时间的等待之后,oracle数据库就已经安装完毕了。
四、一些小的错误的修正(注:这些操作均是在oracle用户登陆下完成的。) (1)安装完毕之后,我们可以退出Linux的X-windows环境了,继续在控制台上以命令行的方式操作,当我们输入sqlplus /nolog时会提示下面的错误 cannot restore segment prot after reloc: Permission denied 这是SELinux搞的鬼,解决办法有两个 (注:这种方法本人没有试验,不知道效果。) (注:本人采用的是这种解决方法,解决了这个问题。) (2)在安装完oracle之后如果想要使用数据库必须要启动数据库的监听器,一般我们安装完数据库之后就已经建立好了监听器,我们只要启动就可以了,在控制台使用以下命令; A、lsnrctl start //启动监听器命令 B、lsnrctl stop //关闭监听器命令 C、lsnrctl status //查看监听器的状态 (3)在使用sqlplus 连接数据库时还有可能出现如下错误: 提示ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exist 有人说解决这个问题的办法是改sqlnet.ora将认证方式改为none也没有用。这一点我试过不好用的,不敢恭维,也许遇到的问题不同吧。我采用的一下方法解决的:输入一下命令 1、sqlplus /nolog 2、conn / as sysdba 3、startup |
|