linux安装oracle10g

环境为centos7 64bit.

oracle为64位 版本为10201

下载地址为

http://download.oracle.com/otn/linux/oracle10g/10201/10201_gateways_linux_x86_64.cpio.gz

http://download.oracle.com/otn/linux/oracle10g/10201/10201_client_linux_x86_64.cpio.gz

http://download.oracle.com/otn/linux/oracle10g/10201/10201_clusterware_linux_x86_64.cpio.gz

http://download.oracle.com/otn/linux/oracle10g/10201/10201_database_linux_x86_64.cpio.gz

 

一 准备阶段

1.将安装包上传到/var/ftp/pub目录下

2.创建目录 /opt/setup080305    mkdir /opt/setup080305

3.复制安装文件到 setup080305 cp /var/ftp/pub/10201_database_linux_x86_64.cpio.gz /opt/setup080305

4.解压缩安装包文件 gunzip /opt/setup080305/10201_database_linux_x86_64.cpio.gz

cpio -idmv < /opt/setup080305/10201_database_linux_x86_64.cpio

5.创建/u01/app/oracle 目录 作为oracle安装的ORACLEBASE mkdir -p /u01/app/oracle

6.检查安装所需依赖 rpm -q gcc make binutils openmotif setarch compat-db compat-gcc compat-gcc-c++ compat-libstdc++ compat-libstdc++-devel

显示如下
gcc-4.8.3-9.el7.x86_64
make-3.82-21.el7.x86_64
binutils-2.23.52.0.1-30.el7.x86_64
未安装软件包 openmotif
未安装软件包 setarch
未安装软件包 compat-db
未安装软件包 compat-gcc
未安装软件包 compat-gcc-c++
未安装软件包 compat-libstdc++
未安装软件包 compat-libstdc++-devel

安装缺少的软件包

yum install compat-gcc-44

yum install openmotif

yum install compat-db

yum install compat-gcc-44-c++.x86_64

yum install compat-libstdc++-33.x86_64

yum install glibc.i686

yum install libstdc++.so.6

yum install libXp.i686

yum install libXt.i686

yum install libXtst.i686

yum install glibc-devel.i686

7.修改 /etc/sysctl.conf 在底部追加以下内容

#use for oracle

kernel.shmall = 2097152

kernel.shmmax = 2147483648

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

fs.file-max = 65536

net.ipv4.ip_local_port_range = 1024 65000

net.core.rmem_default = 262144

net.core.rmem_max = 262144

net.core.wmem_default = 262144

net.core.wmem_max = 262144

 

在运行 sysctl -p 来应用这些参数

8. 修改 /etc/security/limit.conf在底部追加如下内容

#use for oracle

* soft nproc 2047

* hard nproc 16384

* soft nofile 1024

* hard nofile 65536

 

9.修改/etc/pam.d/login 在底部追加如下内容

# use for oracle

session required pam_limits.so

 

10.关闭selinux

修改IP和主机名

vi /etc/hostname

内容填写为 oracle

 

vi /etc/hosts

192.168.1.136   localhost oracle localhost4 localhost4.localdomain4
::1         localhost oracle localhost6 localhost6.localdomain6
192.168.1.136   oracle

vi /etc/sysconfig/network

NETWORKING=yes

HOSTNAME=localhost.localdomain

 

vi /etc/hostname

修改内容为 oracle

二 创建安装oracle的用户、组和配置

使用如下命令:

cd /opt/setup080305/database            跳转到安装目录

groupadd oinstall                                          添加两个组

groupadd dba

useradd -m -g oinstall -G dba oracle            添加用户

id oracle                                                        为Oracle用户设置密码

passwd oracle

创建安装目录 mkdir -p /opt/app/oracle/product/10.2

使用如下命令创建Oracle的安装目录并更改权限:

mkdir -p /u01/app/oracle/

chown -R oracle.oinstall /u01/app/oracle

chown -R 775 /u01/app/oracle

设置Oracle用户的.bash_profile

使用如下命令,oracle用户执行,增加环境变量如下内容:

su – oracle                                      使用Oracle用户

vi .bash_profile                               查看bash_profile文件

点击i键进入编辑模式,加入如下内容:

#Oracle Settings

TMP=/tmp; export TMP

TMPDIR=$TMP; export TMPDIR

 

ORACLE_BASE=/u01/app/oracle

ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1

ORACLE_SID=orcl

ORACLE_TERM=xterm

PATH=$PATH:/usr/sbin:$ORACLE_HOME/bin

 

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/lib64:/usr/lib64

TNS_ADMIN=$ORACLE_HOME/network/admin

ORACLE_ADMIN=$ORACLE_BASE/admin

#CLASSPATH=.:$ORACLE_HOME/jre:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

 

export ORACLE_BASE ORACLE_HOME ORACLE_SID ORACLE_TERM PATH LD_LIBRARY_PATH TNS_ADMIN ORACLE_ADMIN

#export CLASSPATH

 

编辑完成后,ESC退出编辑状态,使用命令:wq保存退出。

 

2.5 设置Oracle用户的profile文件

使用如下命令,root用户执行,在profile文件末增加如下内容:

su                                                           使用root用户

vi /etc/profile                                         查看profile文件

点击i键进入编辑模式,加入如下内容:

#For Oracle

if [ $USER = “oracle” ]; then

if [ $SHELL = “/bin/ksh” ]; then

ulimit -p 16384

ulimit -n 65536

else

ulimit -u 16384 -n 65536

fi

fi

 

编辑完成后,ESC退出编辑状态

切换oracle用户

export LANG=en_US

/opt/setup080305/database/runInstaller

oracle1

密码为oracle

点击 next报权限不足。

执行

chmod -R 777 /u01/app/

chmod -R 777 /u01/app/oracle

后点击cancle

进入下一界面 点击next

如果遇到oracle2

点击continue。安装完成后执行一个重链接命令即可。

报错

ORA-27125: unable to create shared memory segment

[root@oracle oracle]# id oracle
uid=1001(oracle) gid=1001(oinstall) 组=1001(oinstall),1002(dba)

 

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

0

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

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

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

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

1002

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

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

vm.hugetlb_shm_group  = 1002

oracle3oracle4oracle5

运行图4中提示的第二个shell时 会出现问答。直接回车即可。

安装完成后

修改防火墙配置 开启 1521端口的 tcp访问

/u01/app/oracle/product/10.2.0/db_1/bin/relink all

 

查看自己的 ORACLE_HOME变量。使用oracle用户登录。

echo $ORACLE_HOME

如果这个值为空或者不正确。可以去listener.ora文件里去看。假设ORACLE_HOME为/home/oracle/oracle/product/10.2.0/db_1

那么我们可以设置启动脚本。

创建文件 /etc/init.d/oracle

 

vi /etc/init.d/oracle

 

 

 

#!/bin/sh
# chkconfig: 35 80 10
# description: Oracle auto start-stop script.

#
# Set ORA_HOME to be equivalent to the $ORACLE_HOME
# from which you wish to execute dbstart and dbshut;
#
# Set ORA_OWNER to the user id of the owner of the
# Oracle database in ORA_HOME.
ORA_HOME=/home/oracle/oracle/product/10.2.0/db_1
ORA_OWNER=oracle
if [ ! -f $ORA_HOME/bin/dbstart ]
then
    echo "Oracle startup: cannot start"
    exit
fi
case "$1" in
'start')
# Start the Oracle databases:
echo "Starting Oracle Databases ... "
echo "-------------------------------------------------" >> /var/log/oracle
date +" %T %a %D : Starting Oracle Databases as part of system up." >> /var/log/oracle
echo "-------------------------------------------------" >> /var/log/oracle
su - $ORA_OWNER -c "$ORA_HOME/bin/dbstart" >>/var/log/oracle
echo "Done"

# Start the Listener:
echo "Starting Oracle Listeners ... "
echo "-------------------------------------------------" >> /var/log/oracle
date +" %T %a %D : Starting Oracle Listeners as part of system up." >> /var/log/oracle
echo "-------------------------------------------------" >> /var/log/oracle
su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start" >>/var/log/oracle
echo "Done."
echo "-------------------------------------------------" >> /var/log/oracle
date +" %T %a %D : Finished." >> /var/log/oracle
echo "-------------------------------------------------" >> /var/log/oracle
touch /var/lock/subsys/oracle
;;

'stop')
# Stop the Oracle Listener:
echo "Stoping Oracle Listeners ... "
echo "-------------------------------------------------" >> /var/log/oracle
date +" %T %a %D : Stoping Oracle Listener as part of system down." >> /var/log/oracle
echo "-------------------------------------------------" >> /var/log/oracle
su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop" >>/var/log/oracle
echo "Done."
rm -f /var/lock/subsys/oracle

# Stop the Oracle Database:
echo "Stoping Oracle Databases ... "
echo "-------------------------------------------------" >> /var/log/oracle
date +" %T %a %D : Stoping Oracle Databases as part of system down." >> /var/log/oracle
echo "-------------------------------------------------" >> /var/log/oracle
su - $ORA_OWNER -c "$ORA_HOME/bin/dbshut" >>/var/log/oracle
echo "Done."
echo ""
echo "-------------------------------------------------" >> /var/log/oracle
date +" %T %a %D : Finished." >> /var/log/oracle
echo "-------------------------------------------------" >> /var/log/oracle
;;

'restart')
$0 stop
$0 start
;;
esac

chmod 755 /etc/init.d/oracle

chkconfig –level 35 oracle on

这样oracle就会随开机自动启动。

手动命令:

启动: service oracle start

重启:service oracle restart

关闭:service oracle stop