CentOS 6.3 32位静默安装Oracle 11g r2详细教程

CentOS 6.3 32位静默安装Oracle 11g r2详细教程

 

一、安装依赖包

binutils2.17.50.0.6

compat-libstdc++-33              3.2.3

elfutils-libelf0.125

elfutils-libelf-devel0.125

elfutils-libelf-devel-static0.125

gcc4.1.2

gcc-c++4.1.2

glibc2.5-24

glibc-common2.5

glibc-devel2.5

glibc-headers2.5

kernel-headers2.6.18

ksh20060214

libaio0.3.106

libaio-devel0.3.106 

libgcc4.1.2

libgomp4.1.2

libstdc++4.1.2 

libstdc++-devel4.1.2

make3.81

sysstat7.0.2

unixODBC2.2.11

unixODBC-devel2.2.11

 

yum install binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-static gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers kernel-headers ksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel


yum -y install binutils  compat-libstdc++ elfutils-libelf  elfutils-libelf-devel libtermcap-devel elfutils-libelf-devel-static \

gcc  gcc-c++ glibc   glibc-common glibc-devel   glibc-headers    libaio  libaio-devel   libgcc readline-devel libstdc++ \

libstdc++-devel make sysstat unixODBC unixODBC-devel compat-libstdc++*.i686 libaio-devel*.i686 libstdc++*.i686 \

unixODBC-devel*.i686 compat-libcap1*.i686  libcap*.i686 xdm vsftpd ftp libpcap.so.1 compat-libcap1 ksh \

compat-glibc* binutils* glibc* compat-libstdc* libXp* redhat-lsb lrzsz cpufreq-utils  nfs-utils lrzsz cpufreq-utils nc unzip automake MySQL-python

 

二、修改内核参数

1、修改/etc/sysctl.conf文件

(1)、以root身份登录

(2)、编辑文件 #vim /etc/sysctl.conf,修改以下参数,如果没有可以自己添加,如果默认值比参考值大,则不需要修改。

 

kernel.shmall = 2097152    //表示系统一次可以使用的共享内存总量(以页为单位)。缺省值就是2097152,通常不需要修改

kernel.shmmax = 2147483648    //定义了共享内存段的最大尺寸(以字节为单位)。缺省为32M,对于oracle来说,该缺省值太低了,通常将其设置为2G=2147483648/1024/1024/1024

 

kernel.shmmni = 4096    //用于设置系统范围内共享内存段的最大数量。该参数的默认值是 4096 。通常不需要更改

kernel.sem = 250 32000 100 128    //表示设置的信号量

fs.file-max = 65536    //表示文件句柄的最大数量。文件句柄表示在Linux系统中可以打开的文件数量。其实是由"fs.file-max = 512 * PROCESSES"得到的,我们指定PROCESSES的值为128,即为"fs.file-max =512 *128"。

fs.aio-max-nr = 1048576    //同时可以拥有的的异步IO请求数目。

net.ipv4.ip_local_port_range = 1024 65000    //应用程序可使用的Ipv4端口范围。

 

net.core.rmem_default = 262144    //默认的接收窗口大小

net.core.rmem_max = 4194304    //接收窗口的最大大小

net.core.wmem_default = 262144    //默认的发送窗口大小

net.core.wmem_max = 1048586    //发送窗口的最大大小

 

fs.aio-max-nr = 1048576

fs.file-max = 6815744

 

kernel.shmall = 2097152

kernel.shmmax = 536870912

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

net.ipv4.ip_local_port_range = 9000 65500

 

net.core.rmem_default = 262144

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 1048586

 

 

(3)、运行#sysctl -p ,即可马上生效。

(4)、运行 #sysctl  -p 命令报错

error: "net.bridge.bridge-nf-call-ip6tables" is an unknown key

error: "net.bridge.bridge-nf-call-iptables" is an unknown key

error: "net.bridge.bridge-nf-call-arptables" is an unknown key

 

解决方法,执行如下命令:

#modprobe  bridge

#lsmod|grep  bridge

 

 

2、为oracle用户设置Shell限制

    (1)、编辑文件 #vim /etc/security/limits.conf ,添加如下行:

 

oracle           soft    nproc   2047

oracle           hard    nproc   16384

oracle           soft    nofile  1024

oracle           hard    nofile  65536

 

    (2)、编辑文件 #vim /etc/pam.d/login    ,添加如下行:

 

        session    required     pam_limits.so

 

    (3)、查看/etc/selinux/config 文件,确保SELINUX 为disabled状态

 

            SELINUX=disabled

 

 

查看SELinux状态:getenforce

关闭SELinux:

1、临时关闭(不用重启机器):

setenforce 0  ##设置SELinux 成为permissive模式

        ##setenforce 1 设置SELinux 成为enforcing模式

 

3、编辑/etc/profile,添加如下配置:

 

if [ $USER = "oracle" ]; then

        if [ $SHELL = "/bin/ksh" ]; then

              ulimit -p 16384

              ulimit -n 65536

        else

              ulimit -u 16384 -n 65536

        fi

fi

 

4、编辑 /etc/csh.login ,添加如下配置:

 

if ( $USER == "oracle" ) then

        limit maxproc 16384

        limit descriptors 65536

endif

 

3、注:内核参数并非必须修改,可以根据自己实际情况而定。

 

三、创建用户和组及安装目录

1、创建Oracle用户与组

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

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

  (1) 建立群组oinstall

# groupadd oinstall

  (2) 建立群组dba

# groupadd oradba

  (3) 新增使用者oracle并将其加入oinstall和dba群组

# useradd -g oinstall -G oradba oracle

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

# id oracle

  (5) 建立oracle的新密码

# passwd oracle

  (6)将oracle使用者加入到sudo群组中

# vim /etc/sudoers

  找到

  root ALL=(ALL) ALL

  这行,并且在底下再加入

oracle ALL=(ALL) ALL

  输入wq!或者x!(由于这是一份只读文档所以需要再加上!)并且按下Enter

 

 

2、创建oracle安装时的目标目录

 

(1) 以root身份登录

(2) 创建Oracle系统目录:# mkdir -p /app/oracle

(3) 创建Oracle服务器主目录:# mkdir /app/oracle/11g

(4) 将该目录的所有者设置为oracle:# chown -R oracle:oinstall /app/oracle 

(5) 编辑 /etc/profile,在后面追加以下内容

 

export ORACLE_BASE=/app/oracle

export ORACLE_HOME=/app/oracle/11g

export ORACLE_SID=ora11g

export PATH=$PATH:$ORACLE_HOME/bin

 

运行# source /etc/profile 使其立即生效

(6) 注: 安装Oracle的目标目录可以任意指定, 但是安装和运行Oracle的用户必须有完全修改该目录的权限

 

四、编辑安装需要的应答文件

(1) 以root身份登录

(2) 静默模式(Silent)安装必须指定一个应答文件db_install.rsp来完成安装过程所须的各类参数。

(3) 编辑db_install.rsp,修改以下这些项目的值。

 

oracle.install.option=INSTALL_DB_SWONLY

ORACLE_HOSTNAME=localhost

UNIX_GROUP_NAME=oinstall

INVENTORY_LOCATION=/app/oracle/oraInventory

SELECTED_LANGUAGES=en,zh_CN

ORACLE_HOME=/app/oracle/11g

ORACLE_BASE=/app/oracle

oracle.install.db.InstallEdition=EE

oracle.install.db.DBA_GROUP=oradba

oracle.install.db.OPER_GROUP=oinstall

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

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

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

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

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

DECLINE_SECURITY_UPDATES=true

 

其它项目用默认值即可,也可以根据自己的须要进行修改

 

(4) 注:如果Oracle从光盘安装,必须先将应答文件复制到硬盘上,才能修改

 

五、开始安装

(1) 用oracle用户登录,然后在Oracle安装目录里执行

    $ ./runInstaller -ignoreSysPrereqs -silent -noconfig -responseFile <应答文件的绝对路径>

(2) 接下来就是等待安装结束了。

各安装参数的含义如下:

-ignoreSysPrereqs 让Oracle忽略系统检查,因为Oracle官方声明只支持Linux服务器产品,所以要在非服务器产品的Linux上安装就必须指定此参数。

-silent 表示以静默方式安装,不会有任何提示

-force 允许安装到一个非空目录

-noconfig 表示不运行配置助手netca

-responseFile 表示使用哪个响应文件,必需使用绝对路径

 

在这里我输入:

$ ./runInstaller -ignoreSysPrereqs -silent -noconfig -responseFile /mnt/hgfs/tmp/oracle11g/response/db_install.rsp

当前目录为安装目录系统反应为:

    Starting Oracle Universal Installer...

    Checking installer requirements...

 

六、系统初始化

(1) 以root用户登录

(2) 运行以下两个脚本:

$ORACLE_BASE/oraInventory/orainstRoot.sh

$ORACLE_HOME/root.sh

 

七、安装网络监听器

(1) 以oracle登陆

(2) 没有网络监听器,客户端就无法通过网络连接Oralce服务器。要在命令行安装网络监听器,也只能使用静默模式。

(3) 运行:

    $ORACLE_HOME/bin/netca /silent /responseFile <应答文件的绝对路径>

这里我输入的命令为:

$ORACLE_HOME/bin/netca /silent /responseFile /mnt/hgfs/tmp/oracle11g/response/netca.rsp

 

系统反应:

Parsing command line arguments:

    Parameter "silent" = true

    Parameter "responsefile" = /mnt/hgfs/tmp/oracle11g/response/netca.rsp

Done parsing command line arguments.

Oracle Net Services Configuration:

Profile configuration complete.

Oracle Net Listener Startup:

    Running Listener Control: 

      /app/oracle/11g/bin/lsnrctl start LISTENER

    Listener Control complete.

    Listener started successfully.

Listener configuration complete.

Oracle Net Services configuration successful. The exit code is 0

 

(4) 查看监听器状态

 

    $ORACLE_HOME/bin/lsnrctl status

 

八、修改dbstart

(1) 以oracle身份登录

(2) 打开 $ORACLE_HOME/bin/dbstart,将

    ORACLE_HOME_LISTNER=/ade/vikrkuma_new/oracle

 改为

    ORACLE_HOME_LISTNER=$ORACLE_HOME

 否则网络监听器可能无法自动启动。

 

九、安装数据库实例

(1) 以root身份登录   

(2) 编辑Oracle安装目录里response子目录下的应答文件 dbca.rsp,修改以下项目:

 

RESPONSEFILE_VERSION = "11.2.0"  //不能更改

OPERATION_TYPE = "createDatabase"

GDBNAME="oracle11g" 全局数据库的名字=SID+主机域名,这里我设置为:oracle11g

SID="ora11g" 数据库的SID,这个比较重要,我第一次安装时就是因为这个问题无法使用,这里我修改为:ora11g

TEMPLATENAME = "General_Purpose.dbc" //建库用的模板文件

SYSPASSWORD="manager"    SYS用户的初始密码,我设置为manager

SYSTEMPASSWORD="manager"    SYSTEM用户的初始密码,我设置为manager

DATAFILEDESTINATION = /app/oracle/oradata //数据文件存放目录

RECOVERYAREADESTINATION=/app/oracle/oradata_back //恢复数据存放目录

CHARACTERSET="ZHS16GBK" 数据库字符集,重要!!!! 建库后一般不能更改(中文为 ZHS16GBK

TOTALMEMORY = "800"  //oracle内存800MB

 

(3)然后登陆oracle运行

    $ORACLE_HOME/bin/dbca -silent -responseFile <应答文件的绝对路径> -cloneTemplate

这里我输入的命令为:

$ORACLE_HOME/bin/dbca -silent responseFile /mnt/hgfs/tmp/oracle11g/response/dbca.rsp -cloneTemplate

(4) 系统反应:

 

Copying database files

1% complete

3% complete

11% complete

18% complete

26% complete

37% complete

Creating and starting Oracle instance

40% complete

45% complete

50% complete

55% complete

56% complete

60% complete

62% complete

Completing Database Creation

66% complete

70% complete

73% complete

85% complete

96% complete

100% complete

Look at the log file "/app/oracle/cfgtoollogs/dbca/oracle11g/oracle11.log" for further details.

 

十、修改Oracle启动配置文件:/etc/oratab

(1) 以oracle用户登录

(2) 然后编辑 /etc/oratab

    将::N

    修改为ora11g:/app/oracle/11g:Y

    使数据库实例能够自动启动。

 

十一、启动和关闭Oracle

oracle用户登录

(1) 检查看看监听器是否有启动

        $ORACLE_HOME/bin/lsnrctl status

如果没有启动,可以输入:

    $ORACLE_HOME/bin/lsnrctl start

 

(2) 启动Oracle实例

以sysdba身份登入数据库,输入:

        $ sqlplus sys as sysdba

输入密码。(显示SQL>)

接着请输入

SQL> startup

就可以正常的启动数据库了。

备注:也可以用$ORACLE_HOME/bin/dbstart启动数据库实例

 

(3) 关闭数据库实例

SQL> shutdown immediate

备注:也可以用 $ORACLE_HOME/bin/dbstart 启动数据库实例

 

(4) 关闭监听

lsnrctl stop  

 

十二、让Oracle运行为服务

(1) 以root身份登录

(2) 创建文件 /etc/init.d/oracle,输入下列内容

 

#!/bin/sh

# chkconfig: 35 80 10

# description: Oracle auto start-stop script.

 

#

# Set ORACLE_HOME to be equivalent to the $ORACLE_HOME

# from which you wish to execute dbstart and dbshut;

#

# Set ORACLE_OWNER to the user id of the owner of the

# Oracle database in ORACLE_HOME.

ORACLE_HOME=/app/oracle/11g

ORACLE_OWNER=oracle

if [ ! -f $ORACLE_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 - $ORACLE_OWNER -c "$ORACLE_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 - $ORACLE_OWNER -c "$ORACLE_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 - $ORACLE_OWNER -c "$ORACLE_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 - $ORACLE_OWNER -c "$ORACLE_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

 

(3) 然后将这个文件赋予可执行的权限,运行

    chmod a+x /etc/init.d/oracle

(4) 添加Oracle服务并设置在Linux启动时自动运行

 

chkconfig --level 35 oracle on #添加Oracle服务,并设置3、5启动级别自动启动oracle

chkconfig --list oracle #查看服务信息

 

这样就可以用service oracle start|stop|restart来启动、停止和重启Oracle了

你可能感兴趣的:(oracle)