linux系统下安装oracle详解

本文档采用centos 6.x下静默安装Oracle 11g R2

硬件要求:

物理内存不少于1G

硬盘可空间不少于5G

swap分区空间不少于2G

一.设置系统(root用户下) 

#vi /etc/redhat-release

//操作系统,系统只支持Red Hat Enterprise Linux 6CentOS 6其实就是RHEL6,但Oracle不认,所以要改一下

#CentOS release 6.3 (Final) 这行注释掉,加上下面的

Red Hat Enterprise Linux 6

二.关闭防火墙、修改基础信息、添加主机名

# chkconfig iptables off   //永久关闭不安全,本地无所谓

# vi /etc/sysconfig/selinux

SELINUX=enforcing改成SELINUX=disabled

# vi /etc/hosts

添加一行内容:IP 机器名

.修改用户的限制文件

# vi /etc/security/limits.conf 在文件后增加

oracle           soft    nproc           2047

oracle           hard    nproc           16384

oracle           soft    nofile          1024

oracle           hard    nofile          65536

oracle           soft    stack           10240

.修改内核参数

# vi /etc/sysctl.conf   //末尾添加如下,如该参数已设置过,则不需添加该项

net.ipv4.ip_local_port_range= 9000 65500

fs.file-max = 6815744

kernel.shmall = 10523004

kernel.shmmax = 6465333657

kernel.shmmni = 4096

kernel.sem = 250 32000 100128

net.core.rmem_default=262144

net.core.wmem_default=262144

net.core.rmem_max=4194304

net.core.wmem_max=1048576

fs.aio-max-nr = 1048576

 

# sysctl -p  //使配置生效

 

.依赖包检查安装,总结执行依赖如下,如果出现某个包安装失败,则需要手动下载相关的rpm包,然后执行安装即可(别偷懒一个一个检查啊)

yum -y install \

binutils \

compat-libcap1 \

  compat-libstdc++-33 \

compat-libstdc++-33*.i686 \

elfutils-libelf-devel \

gcc \

gcc-c++ \

glibc*.i686 \

glibc \

glibc-devel \

glibc-devel*.i686 \

ksh \

libgcc*.i686 \

libgcc \

libstdc++ \

libstdc++*.i686 \

libstdc++-devel \

libstdc++-devel*.i686 \

libaio \

libaio*.i686 \

libaio-devel \

libaio-devel*.i686 \

make \

sysstat \

unixODBC \

unixODBC*.i686 \

unixODBC-devel \

unixODBC-devel*.i686 \

libXp

 

附:rpm包检查包、安装包、卸载包命令

# rpm -qa|grep xxx

# rpm -ivh xxx.rpm

# rpm -e --nodeps xxx.rpm

 

.建立用户,组,安装目录

执行命令

# groupadd oinstall

# groupadd dba

# groupadd oper

# useradd -g oinstall -G dba,oper oracle

# echo "oracle" | passwd --stdin oracle

查看一下

# id oracle

uid=501(oracle) gid=501(oinstall) =501(oinstall),502(dba),503(oper)

#passwd oracle   

 

.新建安装目录

# mkdir -p /var/app

# mkdir -p /var/app/oracle

# mkdir -p /var/app/oracle/product

# mkdir -p /var/app/oracle/product/11.2.0                

# mkdir -p /var/app/oracle/product/11.2.0/dbhome_1

# mkdir -p /home/oracle/backup        //数据备份目录                               

# mkdir -p /home/oracle/oraInventory     //清单目录                                

# chown -R oracle:oinstall /var/app

# chown -R oracle:oinstall /home/oracle/backup

# chown -R oracle:oinstall /home/oracle/oraInventory

 

# chmod -R 775 /var/app

 

.切换oracle用户,设置并刷新环境变量

# vi .bash_profile

 

umask 022

 

export ORACLE_BASE=/var/app

export ORACLE_HOME=$ORACLE_BASE/oracle/product/11.2.0/dbhome_1

export ORACLE_SID=ora11g

export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin

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

#source .bash_profile    //oracle环境变量生效

 

.安装oracle

(1)上传oracle文件安装包到指定目录

linux系统下安装oracle详解

#Unzip 文件名   //解压文件得到database文件夹

解压后得到database目录,其中包含response目录,该目录中有三个rsp文件,用来作为静默安装时的应答文件的模板。三个文件作用分别是:

db_install.rsp:安装应答

dbca.rsp:创建数据库应答

netca.rsp:建立监听、本地服务名等网络设置的应答

(2) 备份文件

cp -R /var/app/oracle/database/response /home/oracle

(3) 切换root用户下,修改静默安装配置文件db_install.rsp;直接用以下内容替换即可(我已经改好了)。

$ less /opt/database/response/db_install.rsp |grep -v "#"|grep -v "^$"

oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0

oracle.install.option=INSTALL_DB_SWONLY

ORACLE_HOSTNAME=bigdata06

UNIX_GROUP_NAME=oinstall

INVENTORY_LOCATION=/home/oracle/oraInventory

SELECTED_LANGUAGES=en,zh_CN

ORACLE_HOME=/var/app/oracle/product/11.2.0/dbhome_1

ORACLE_BASE=/var/app/oracle

oracle.install.db.InstallEdition=EE

oracle.install.db.isCustomInstall=false

oracle.install.db.customComponents=oracle.server:11.2.0.1.0,oracle.sysman.ccr:10.2.7.0.0,oracle.xdk:11.2.0.1.0,oracle.rdbms.oci:11.2.0.1.0,oracle.network:11.2.0.1.0,oracle.network.listener:11.2.0.1.0,oracle.rdbms:11.2.0.1.0,oracle.options:11.2.0.1.0,oracle.rdbms.partitioning:11.2.0.1.0,oracle.oraolap:11.2.0.1.0,oracle.rdbms.dm:11.2.0.1.0,oracle.rdbms.dv:11.2.0.1.0,orcle.rdbms.lbac:11.2.0.1.0,oracle.rdbms.rat:11.2.0.1.0

oracle.install.db.DBA_GROUP=dba

oracle.install.db.OPER_GROUP=oinstall

oracle.install.db.CLUSTER_NODES=

oracle.install.db.config.starterdb.type=GENERAL_PURPOSE

oracle.install.db.config.starterdb.globalDBName=ora11g

oracle.install.db.config.starterdb.SID=ora11g

oracle.install.db.config.starterdb.characterSet=AL32UTF8

oracle.install.db.config.starterdb.memoryOption=true

oracle.install.db.config.starterdb.memoryLimit=1500

oracle.install.db.config.starterdb.installExampleSchemas=false

oracle.install.db.config.starterdb.enableSecuritySettings=true

oracle.install.db.config.starterdb.password.ALL=oracle

oracle.install.db.config.starterdb.password.SYS=

oracle.install.db.config.starterdb.password.SYSTEM=

oracle.install.db.config.starterdb.password.SYSMAN=

oracle.install.db.config.starterdb.password.DBSNMP=

oracle.install.db.config.starterdb.control=DB_CONTROL

oracle.install.db.config.starterdb.gridcontrol.gridControlServiceURL=

oracle.install.db.config.starterdb.dbcontrol.enableEmailNotification=false

oracle.install.db.config.starterdb.dbcontrol.emailAddress=

oracle.install.db.config.starterdb.dbcontrol.SMTPServer=

oracle.install.db.config.starterdb.automatedBackup.enable=false

oracle.install.db.config.starterdb.automatedBackup.osuid=

oracle.install.db.config.starterdb.automatedBackup.ospwd=

oracle.install.db.config.starterdb.storageType=FILE_SYSTEM_STORAGE

oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=

oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=

oracle.install.db.config.asm.diskGroup=

oracle.install.db.config.asm.ASMSNMPPassword=

MYORACLESUPPORT_USERNAME=

MYORACLESUPPORT_PASSWORD=

SECURITY_UPDATES_VIA_MYORACLESUPPORT=

DECLINE_SECURITY_UPDATES=true    //一定要设为 true

PROXY_HOST=

PROXY_PORT=

PROXY_USER=

PROXY_PWD=

 

此处加完执行运行权限赋予:

#chmod 755 -R  /var/app/oracle/database

(4)开始静默安装 (oracle用户下执行)

cd /var/app/oracle/database

$./runInstaller -silent -responseFile  /var/app/oracle/database/response/db_install.rsp

(必要时可以在后面加 -ignorePrereq)

(5)查看进度

$ cd /home/oracle/oraInventory/logs

$ tail -f installActions*log

//出现successfully setup software;则表示安装成功

(6) 新打开客户端登录root用户,执行

$ /home/oracle/oraInventory/orainstRoot.sh

$ /var/app/oracle/product/11.2.0/dbhome_1/root.sh

(7) 回到之前打开的oracle用户下,配置oracle监听

$cd /var/app/oracle/database/response

$netca /silent /responsefile /var/app/oracle/database/response/netca.rsp

//成功运行后,在/var/app/oracle/product/11.2.0/dbhome_1/network/admin目录下生成sqlnet.oralistener.ora两个文件

$ netstat -tlnp | grep 1521   //查看1521端口工作情况

(8) 修改建库配置文件

 

$ vi /var/app/oracle/database/response/dbca.rsp

 

GDBNAME = "ora11g.mophee"     //78 行 全局数据库的名字=SID+主机名;注意mophee是我的主机名

SID="ora11g"    //149行 SID

SYSPASSWORD = "oracle"    //190行

SYSTEMPASSWORD = "oracle"   //200行

CHARACTERSET="AL32UTF8" //415行 编码

NATIONALCHARACTERSET="UTF8" //425行 编码

 

(9) 创建dbca数据库

$ $ORACLE_HOME/bin/dbca -silent -responseFile  /var/app/oracle/database/response/dbca.rsp

//此命令执行需要多等会

 linux系统下安装oracle详解

很重要:找到这个连接串文件

 

添加:LISTENER_ORCL =

  (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))

 

测试

$ sqlplus / as sysdba

 linux系统下安装oracle详解

看到这个恭喜你,小伙伴你基本已经装好oracle了。

问题解决:

遇到问题:(因为研究遇到不少问题,遇到就去解决,所以只记得几个印象深刻的)

问题一: 执行oracle静默安装时出现该问题:

 

 

 

解决办法:查看oracle用户的环境变量.bash_profile内容,执行source .bash_profile;使其立即使用

问题二:

如果登录oracle之后,出现

linux系统下安装oracle详解

方法一:这个问题不要着急

$ORACLE_HOME/bin/dbstart //执行该句看看日志的问题

linux系统下安装oracle详解

我的抱着个错

错误原因

dbstartdbshut脚本文件中ORACLE_HOME_LISTNER的设置有问题

解决方法:

分别打开两个文件找到:ORACLE_HOME_LISTNER=$1,修改为

ORACLE_HOME_LISTNER=$ORACLE_HOME,命令如下:

[[email protected] ~]$ vi $ORACLE_HOME/bin/dbstart

[[email protected] ~]$ vi $ORACLE_HOME/bin/dbshut

 

方法二:修改/var/app/oracle/product/11.2.0/dbhome_1/dbs目录下的init.ora

修改文件名为initora11g.ora

修改内容中:

<ORACLE_BASE>/var/app

删除 diagnostic_dest这行

数据库startup重启,如果报错

linux系统下安装oracle详解

造成原因:/dev/shm必须大于MEMORY_TARGET,如果/dev/shmMEMORY_TARGET小就会报错。

解决方法:

Root用户下,分别执行以下命令:

$ cat /etc/fstab | grep tmpfs

$ mount -o remount,size=10G /dev/shm

$ cat /etc/fstab | grep tmpfs

$ df -h

Oracle用户下startup成功

 

问题三:

Pl/sql连接不上服务器上的oracle时,报错:

ORA-12170:TNS:Connect timeout occurred

(1)首先将/var/app/oracle/product/11.2.0/dbhome_1/network/admin 目录下

Listener.oratnsnames.ora中的host都换为oracle服务器的ip

(2)在虚拟机oracle用户下

lsnrctl stop;

lsnrctl start;

如果 

linux系统下安装oracle详解

则说明服务监听有问题。

执行下列命令解决:

sqlplus / as sysdba

show parameter service_names;   //查看服务名称

alter system register;     //手动注册服务

quit;

lsnrctl start;

出现下面情景即为正常

 linux系统下安装oracle详解

至此,plsql就能连接oracle成功了。