CentOS7下安装oracle10g

   之前再XX网上写的很多技术文章,不知什么原因,全部被干掉了,伤心了几天,想通了,日子还得过嘛~!

       先从最近参与的的一个项目开始吧。这个项目是一个web项目,是用户的业务系统,后台数据存储采用的是oracle数据库。我在这个项目中,承担的职责:和用户的接口人(可以说是需求人员吧)。由于参与项目的人员有限,所以,前期给用户部署的事情,我就主动承担起来了,又说了这么多废话。下面我将详细写一下linux-CentOS7操作系统下安装oracle10g具体步骤以及包括linxu下oracle的基本使用(可能网上描述也比较多,这里仅供大家参考)。

安装环境

        Linux服务器:CentOS7-64位

        oracle服务器:oracle10g-64位

 

基本要求

         内存大小:至少2G

         硬盘大小:至少6G

         交换空间:一般为内存的2倍,例如:2G的内存可以设置swap 分区为4G大小

 

修改linux核心配置(可省略)

        

首先,请先以root账号登入作一些前置设定作业。

1、关闭防火墙、禁用SELinux

# setup

# vi /etc/selinux/config

修改SELINUX=disabled,然后重启。
如果不想重启系统,使用命令setenforce 0

2、安装依赖包

Oracle官方文档要求的安装包:

查看Oracle相关包是否已经安装:

用yum方式安装所需的包:

# yum -y install binutils compat-libstdc++-33 compat-libstdc++-33.i686 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc.i686 glibc-common glibc-devel glibc-devel.i686 glibc-headers ksh libaio libaio.i686 libaio-devel libaio-devel.i686 libgcc libgcc.i686 libstdc++ libstdc++.i686 libstdc++-devel make sysstat

最后还需要安装libXp这个Library,这个一定要安装,否则安装Oracle时会出现java Exception。

# yum install libXp

3、创建Oracle用户与组

在这里只讨论单主机环境,不考虑RAC环境的配置。

执行以下指令以新增oracle安装时所需要的使用者与群组。

(1) 建立群组oinstall
# groupadd oinstall

(2) 建立群组dba
# groupadd dba

(3) 新增使用者oracle并将其加入oinstall和dba群组
# useradd -m -g oinstall -G dba oracle

(4) 测试oracle账号是否建立完成
# id oracle

(5) 建立oracle的新密码
# passwd oracle

4、将oracle使用者加入到sudo群组中

# vi /etc/sudoers

找到
root        ALL=(ALL)        ALL
这行,并且在底下再加入
oracle        ALL=(ALL)        ALL
输入wq!(由于这是一份只读文档所以需要再加上!)并且按下Enter

5、配置系统内核参数

# vi /etc/sysctl.conf

修改和添加以下内容:

kernel.shmall = 4294967296                           //表示系统一次可以使用的共享内存总量(以页为单位)。缺省值就是2097152,通常不需要修改
kernel.shmmax = 68719476736                      //定义了共享内存段的最大尺寸(以字节为单位)。缺省为32M,对于oracle来说,该缺省值太低了,通常将其设置为2G
kernel.shmmni = 4096                                    //用于设置系统范围内共享内存段的最大数量。该参数的默认值是 4096 。通常不需要更改
kernel.sem = 250 32000 100 128                    //表示设置的信号量
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default=4194304                     //默认的接收窗口大小
net.core.rmem_max=4194304                        //接收窗口的最大大小
net.core.wmem_default=262144                      //默认的发送窗口大小
net.core.wmem_max=262144                         //发送窗口的最大大小

会有一些与目前的参数重复的,就修改成文件上提供的。

编辑完之后,储存,然后执行:

# sysctl -p

启用刚刚所做的变更。

6、编辑/etc/security/limits.conf

# vi /etc/security/limits.conf

添加以下四行
oracle  soft        nproc   2047
oracle  hard        nproc   16384
oracle  soft        nofile  1024
oracle  hard        nofile  65536

7、编辑/etc/pam.d/login

# vi /etc/pam.d/login

添加以下两行
session required /lib64/security/pam_limits.so
session required pam_limits.so

8、修改/etc/profile

# vi /etc/profile

将以下代码新增到profile档案中。

按 Ctrl+C 复制代码

按 Ctrl+C 复制代码

9、修改Linux发行版本信息

由于Oracle 10g发行的时候,CentOS 6没有发行,所以Oracle 10g并没有对CentOS 6确认支持,需要修改文件让Oracle 10g支持CentOS 6。
我们需要手工修改Linux的发行注记,让Oracle 10g支持CentOS 6。
编辑/etc/redhat-release文件
# vi /etc/redhat-release
将其中的内容CentOS release 6.3 (Final)修改为redhat 4

10、创建Oracle安装文件夹以及数据存放文件夹

#mkdir /opt/oracle
#mkdir /opt/oracle/102
#chown -R oracle:dba /opt/oracle

11、配置Linux主机
检查/etc/hosts文件中是否有localhost的记录(指向127.0.0.1即可),若没有的话,在后面配置Oracle监听的时候会出现一些问题,导致无法启动监听,在此手工添加此记录即可。

第一阶段到此完毕,接下来,完成这些设定之后,请先注销root账号,并且以oracle账号再次登入系统。

12、配置oracle用户环境变量

$ cd /home/oracle
$ vi .bash_profile
修改并加入以下內容

ORACLE_BASE=/opt/oracle                      //上面创建的Oracle安装文件夹
ORACLE_HOME=$ORACLE_BASE/102
ORACLE_SID=orcl
LD_LIBRARY_PATH=$ORACLE_HOME/lib
PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin

export ORACLE_BASE ORACLE_HOME ORACLE_SID LD_LIBRARY_PATH PATH

保存后使用如下命令,使设置生效:

$ source /home/oracle/.bash_profile

五、安装Oracle,并进行相关设置

1、解压缩安装文件

将下载的10201_database_linux_x86_64.cpio放至即将安装oracle的文件夹/opt/oracle
回到终端模式并且进入到oracle文件夹:

$ cd /opt/oracle

解压缩10201_database_linux_x86_64.cpio

$ cpio -idmv < 10201_database_linux_x86_64.cpio

接着会看到一连串的解压缩动作。

解压缩完成会在同一个文件夹中看到database的文件夹,请进入到database文件夹中:

$ cd database

准备执行数据库安装,如果你的centos是中文环境,安装时会出现中文乱码,请下以下指令

$ export LANG=en_US

接着执行

$ ./runInstaller

如果无法看到安装界面,请使用root帐户执行如下命令后再运行安装程序:
# export DISPLAY=:0.0
# xhost +
$ ./runInstaller

遇到错误:Exception in …… /lib/i386/libawt.so: libXp.so.6: cannot open shared object file: No such file or directory

解决:

# yum -y install libXp.i686

分析:看报错信息”/lib/i386/libawt.so: libXp.so.6: cannot open shared object file: No such file or directory”,libXp需要安装i386的包,而不能安装X64的包。上面认为64位的linux需要安装64位的libXp包,所以导致这个问题。

再次执行

$ ./runInstaller

遇到错误:Exception in …… /lib/i386/libawt.so: libXt.so.6: cannot open shared object file: No such file or directory

解决:

# yum -y install libXt.i686

再次执行

$ ./runInstaller

遇到错误:Exception in …… /lib/i386/libawt.so: libXtst.so.6: cannot open shared object file: No such file or directory

解决:

# yum -y install libXtst.i686

再次执行

$ ./runInstaller

开始执行安装程序。

由于相关的前置作业已经在之前做好了,在这个步骤只需要将UNIX DBA Group选择为dba以及输入SYS, SYSTEM等账号共享的database Password即可。然后选择Next即可。

同样的,将群组选择为dba群组,按Next

在这个步骤中,请点选Checking Network Configuration requirements为User Verified,接着按下Next

最后出现Install Summary画面,此时只要按下Install按钮,系统即开始安装。

安装过程…

安装进度大约到65%时会有错误提示:
Error in invoking target ‘collector’ of makefile ‘/opt/oracle/102/sysman/lib/ins_emdb.mk’.

同时oraInventory/logs/目录下的安装日志文件里面会有如下类似错误提示:

这是oracle安装程序的一个bug,可以忽略此错误继续安装,对系统没什么影响。

在Configuration Assistants 时会出现错误提示:

OUI-25031:Some of the configuration assistants failed.

分析:主机名映射错误

解决:修改/etc/hosts文件,增加IP地址与主机名的映射如下:

接着会遇到错误提示:

ORA-27125:unable to create shared memory segment

解决:

1. 确定安装oracle所使用的用户组

# id oracle

可以看到oracle组dba id 为501。

2. 修改内核参数

echo “501” >/proc/sys/vm/hugetlb_shm_group

就可以了。

安装到数据库设置助理,可以在这边选取password management作密码的修改,如不需要修改,只需要按下ok按钮即可。

安装完成前,出现以下的设置脚本:

开启一个新的终端,su到root。

将要求执行的两段script依序执行。

/opt/oracle/oraInventory/orainstRoot.sh
/opt/oracle/102/root.sh

执行画面如上图。
执行完后,回到安装窗口按下OK完成所有的oracle安装。安装完成会出现以下画面。

此时,您可以以上述网址,作为测试,登入账号可以为sys或system

http://CentOS-Oracle:5560/isqlplus

http://CentOS-Oracle:5560/isqlplus/dba

http://CentOS-Oracle:1158/em

以上画面都成功代表oracle已经正常安装了。

基本操作

      oralce安装完成,以后基本操作是要知道的。

      一.启动

            1.#su – oracle              切换到oracle用户且切换到它的环境

            2.$lsnrctl status           查看监听及数据库状态

            3.$lsnrctl start            启动监听

            4.$sqlplus / as sysdba       以DBA身份进入sqlplus

            5.SQL>startup                启动db

      二.停止

            1.#su – oracle              切换到oracle用户且切换到它的环境

            2.$lsnrctl stop             停止监听

            3.$sqlplus / as sysdba      以DBA身份进入sqlplus

            4.SQL>SHUTDOWN IMMEDIATE    关闭db

要是有兴趣的,剩下的很多重要的知识,只能靠自己学习了。这里知识给引出了一个开头。

 

1.执行./runInstaller 提示没有这个文件或目录

是因为64位系统中安装了32位程序
解决方法:
yum install glibc.i686

 

2./tmp/OraInstall2011-09-11_02-16-11PM/jre/1.4.2/lib/i386/libawt.so:  libXp.so.6: cannot open shared object file: No such file or directory  occurred..

原因是:缺少支持打印的图形化动态链接库libXp.so.6

# yum install libXp

 

3.CentOS 7关闭防火墙

CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙。
firewall:
systemctl start firewalld.service#启动firewall
systemctl stop firewalld.service#停止firewall
systemctl disable firewalld.service#禁止firewall开机启动

 

4.ORA-27125: unable to create shared memory segment 问题解决

[root@rac2 ~]# id oracle

uid=500(oracle) gid=501(oinstall)groups=501(oinstall),502(dba),503(asmadmin),504(oper)

[root@rac2 ~]# more /proc/sys/vm/hugetlb_shm_group

0

下面用root执行下面的命令,将dba组添加到系统内核中:

[root@rac2 ~]# echo 502 >/proc/sys/vm/hugetlb_shm_group

–这里的502 是上面的id 命令查看出来的。

[root@rac2 ~]# more /proc/sys/vm/hugetlb_shm_group

502

但是在服务器重启后,数据库依然不能随系统自动启动,发现还需要通过上面的命令来进行修改才可以,意味则上面命令只是修改了内存空间没有进行记录。

要解决这个问题需要修改/etc/sysctl.conf文件 

vm.hugetlb_shm_group  = 501

 

5.

 

参考地址

http://www.cnblogs.com/mchina/archive/2013/03/08/2934473.html

http://dengqsintyt.iteye.com/blog/1991930

评论已经关闭。