Centos6.5下Oracle11g(x86)安装过程及图解

在CentOS 6.5_i386下安装Oracle 11gR2(x86)

服务器配置要求至少1024MB内存空间,oracle软件需要4.0GB以上磁盘空间(oracle 11g要求的磁盘空间为3.95GB) 

注意:修改任何文件之前先对源文件进行备份

 

本次安装环境(由于在虚拟机上面安装,配置很有限):

操作系统:Cent OS 6.5-i386

内存:2GB

磁盘空间:40GB

安装版本:linux_11gR2_database_1of2.zip

           linux_11gR2_database_2of2.zip

1、swap分区大小设置

[root@zjeasy16 bin]#  grep MemTotal /proc/meminfo

MemTotal:        1931572 kB

On Linux x86:

 

On Linux x86-64:

   At least 4 GB of RAM

  

2、操作系统要求

[root@zjeasy16 /]$ cat/proc/version

Linux version 2.6.32-431.el6.i686([email protected]) (gcc version 4.4.7 20120313 (Red Hat4.4.7-4) (GCC) ) #1 SMP Fri Nov 22 00:26:36 UTC 2013

 

[root@zjeasy16/]# cat /proc/version

■ On Linux x86:

– Asianux Server 3 SP2

– Oracle Linux 4 Update 7

– Oracle Linux 5 Update 2

– Red Hat Enterprise Linux 4 Update 7

– Red Hat Enterprise Linux 5 Update 2

– SUSE Linux Enterprise Server 10 SP2

– SUSE Linux Enterprise Server 11

■ On Linux x86-64

 – Asianux Server 3 SP2

– Oracle Linux 4 Update 7

– Oracle Linux 5 Update 2

– Red Hat Enterprise Linux 4 Update 7

– Red Hat Enterprise Linux 5 Update 2

– SUSE Linux Enterprise Server 10 SP2

– SUSE Linux Enterprise Server 11

注意:系统安装忽略。

3、安装所需程序包(在root帐号下操作):

rpm-ivh binutils-2.20.51.0.2-5.36.el6.i686.rpm

#rpm-ivh binutils-devel-2.20.51.0.2-5.36.el6.i686.rpm(可以不安装)

rpm-ivh compat-libcap1-1.10-1.i686.rpm

rpm-ivh compat-libstdc++-33-3.2.3-69.el6.i686.rpm

rpm-ivh elfutils-libelf-0.152-1.el6.i686.rpm

rpm-ivh elfutils-libelf-devel-0.152-1.el6.i686.rpm

rpm-ivh gcc-4.4.7-4.el6.i686.rpm

rpm-ivh gcc-c++-4.4.7-4.el6.i686.rpm

rpm-ivh glibc-2.12-1.132.el6.i686.rpm

rpm-ivh glibc-common-2.12-1.132.el6.i686.rpm

rpm-ivh glibc-devel-2.12-1.132.el6.i686.rpm

rpm-ivh libao-0.8.8-7.1.el6.i686.rpm

rpm-ivh libao-devel-0.8.8-7.1.el6.i686.rpm

rpm-ivh libgcc-4.4.7-4.el6.i686.rpm

rpm-ivh libstdc++-4.4.7-4.el6.i686.rpm

rpm-ivh libstdc++-devel-4.4.7-4.el6.i686.rpm

rpm-ivh make-3.81-20.el6.i686.rpm

rpm-ivh sysstat-9.0.4-22.el6.i686.rpm

rpm-ivh unixODBC-2.2.14-12.el6_3.i686.rpm

rpm-ivh unixODBC-devel-2.2.14-12.el6_3.i686.rpm

rpm -ivhupdate-alternatives-1.16.8-3.1.1.i586.rpm

rpm-ivh pdksh-5.2.14-945.1.1.i586.rpm

 

注意:要用yum安装32 bit的程序包,可先修改 vi /etc/yum.conf,添加一行:multilib_policy=all。Oracle在检查环境的时候会要求安装i386,但CentOS 6.4光盘中32bit的程序包都是i686,其实都一样,忽略这个差异问题应该不大(见下边的安装部分)。

4、查找这些包是否安装成功(在root帐号下操作):

rpm-qa | grep binutils-2.20.51.0.2-5.36

#rpm-qa | grep binutils-devel-2.20.51.0.2-5.36

rpm-qa | grep compat-libcap1-1.10-1

rpm-qa | grep compat-libstdc++-33-3.2.3-69

rpm-qa | grep elfutils-libelf-0.152-1

rpm-qa | grep elfutils-libelf-devel-0.152-1

rpm-qa | grep gcc-4.4.7-4

rpm-qa | grep gcc-c++-4.4.7-4

rpm-qa | grep glibc-2.12-1.132

rpm-qa | grep glibc-common-2.12-1.132

rpm-qa | grep glibc-devel-2.12-1.132

rpm-qa | grep libao-0.8.8-7.1

rpm-qa | grep libao-devel-0.8.8-7.1

rpm-qa | grep libgcc-4.4.7-4

rpm-qa | grep libstdc++-4.4.7-4

rpm-qa | grep libstdc++-devel-4.4.7-4

rpm-qa | grep make-3.81-20

rpm-qa | grep sysstat-9.0.4-22

rpm-qa | grep unixODBC-2.2.14-12

rpm-qa | grep unixODBC-devel-2.2.14-12

rpm-qa | grep update-alternatives-1.16.8-3.1.1

rpm-qa | grep pdksh-5.2.14-945.1.1

5、以root用户登录linux,执行以下命令(在root帐号下操作):

修改主机名:

其实是修改这个文件:vi/etc/sysconfig/network 这个文件里的主机名.

NETWORKING=yes

HOSTNAME=主机名

(安装Oracle之后,主机名不能更改,所以装数据库之前,名字要定好)

6、在linux下创建oracle用户,以及管理组(在root帐号下操作):

#/usr/sbin/groupadddba

#/usr/sbin/groupaddoper

#/usr/sbin/groupaddoinstall

#useraddoracle

 

#/usr/sbin/usermod-g oinstall -G dba oracle  (dba为管理组)

#/usr/sbin/useradd-g oinstall -G oper oracle (oper为管理组)

#passwdoracle

 

设置新密码:root

7、修改内核参数(在root帐号下操作):

修改sysctl.conf文件之前先备份一份

 

编辑内核参数配置文件 vi/etc/sysctl.conf

 

在文件中这两行注释掉:

#kernel.shmmax = 68719476736

#kernel.shmall = 4294967296

 

在该文件下添加如下行:

fs.file-max= 6815744

fs.aio-max-nr=1048576

kernel.shmmax= 2147483648

kernel.shmall= 2097152

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= 1048576

 

再执行以下命令使以上配置立即生效:

sysctl-p

8、修改系统资源限制(在root帐号下操作):(注意:文件备份一份)

编辑系统资源限制配置文件 vi/etc/security/limits.conf,在该文件下添加如下行:

 

oraclesoft nproc 2047

oraclehard nproc 16384

oraclesoft nofile 1024

oraclehard nofile 65536

oraclesoft stack 10240

 

编辑文件 vi/etc/pam.d/login,添加如下行(11gR1有要求,R2没有要求):

sessionrequired pam_limits.so

 

编辑 vi/etc/profile 文件,添加如下行(11gR1有要求,R2没有要求):

if[ $USER = "oracle" ]; then

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

ulimit-p 16384

ulimit-n 65536

else

ulimit-u 16384 -n 65536

fi

Fi

 

该配置在用户oracle登录时会立即生效,如果当前 oracle 用户已经登录可退出后重新登录使之生效。

9、关闭SELinux(在root帐号下操作):

编辑SELinux配置文件 vi /etc/selinux/config,将SELINUX的值设为 disabled,如下:

先对文件进行备份:cp/etc/selinux/config /etc/selinux/config.bak

 

SELINUX=disabled

修改该文件可使重启系统后不启动SELinux。关闭当前已开启的SELinux使用如下命令:

setenforce0

 

修改/etc/hosts文件(在root帐号下操作):

编辑文件 vi/etc/hosts,添加一行:

192.168.80.19mophee

 

若不进行此操作会在安装时弹出警告,并且可能影响监听程序的正常运行,所以建议做这个修改。

10、创建所需的目录(在root帐号下操作):

预先创建安装目录

#mkdir-p /opt/oracle/product

#mkdir-p /opt/oracle/product/11.2.0

#mkdir-p /opt/oraInventory

#mkdir-p /opt/oracle/oradata

#mkdir-p /var/opt/oracle

 

设置目录的所有者所属组和权限

#chown-R oracle.oinstall /opt/oracle

#chown-R oracle.oinstall /opt/oracle/oradata

#chown-R oracle.oinstall /opt/oracle/product/11.2.0

#chown-R oracle.dba /opt/oraInventory

#chownoracle.dba /var/opt/oracle

#chmod-R 775 /opt/oracle

#chmod-R 755 /var/opt/oracle

11、把主机名和主机的IP绑定到一起,修改/etc/hosts文件(在root帐号下操作):

cat/etc/sysconfig/network,我的机器内容如下:

NETWORKING=yes

HOSTNAME=zjeasy16

 

编辑文件 vi/etc/hosts,添加一行:

 

192.168.0.16zjeasy16

12、设置用户oracle的环境变量(在oracle账户下操作):

备份文件 :cp /home/oracle/.bash_profile/home/oracle/.bash_profile.bak

 

#su- oracle

$vi/home/oracle/.bash_profile

 

在文件中添加如下:

exportORACLE_BASE=/opt/oracle

exportORACLE_HOME=$ORACLE_BASE/product/11.2.0

exportORACLE_SID=orcl

exportORACLE_OWNER=oracle

exportORACLE_TERM=vt100

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

exportPATH=$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin:$PATH

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

exportLD_LIBRARY_PATH

CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

CLASSPATH=$CLASSPATH:$ORACLE_HOME/network/jlib

exportCLASSPATH

PATH=$PATH:/usr/sbin;export PATH

PATH=$PATH:/usr/bin;export PATH

ORA_NLS33=$ORACLE_HOME/nls/admin/data

注意:

11g:ORA_NLS33=$ORACLE_HOME/nls/admin/data

10g:ORA_NLS33=$ORACLE_HOME/ocommon/nls/admiORn/data

9i:  ORA_NLS33=/oracle/app/ora92/ocommon/nls/admin/data

 

:wq! 保存退出

 

--执行以下命令让配置马上生效或以oracle用户登录使设置生效

$source $HOME/.bash_profile

13、解压oracle包(在root帐号下操作):

我下载的是.zip的包,执行以下命令

#unziplinux_11gR2_database_1of2.zip

#unziplinux_11gR2_database_2of2.zip

 

注意解压好的目录用户oracle必须具有读写和执行的权限,可以将目录的用户和组改为oracle:

#chown-R oracle database

#chgrp-R oinstall database

 

修改完之后可以登陆Oracle用户 ll 一下看是否和下面一样

[oracle@zjeasy16soft]$ ll

drwxr-xr-x  8 oracle oinstall       4096 8月  182009 database

14、安装oracle(在oracle账户下操作)

reboot并以oracle登录,进入图形界面

 

#cddatabase

#./runInstaller

 

然后进入图形化安装过程,比较简单,一步一步来

,注意我们先安装oracle软件,安装完软件之后再配置监听程序和数据库。下面13

15、开始安装以oracle身份登录(在oracle账户下操作):

#export LANG=en_US;  ##在英文下安装,在中文下安装会乱码

#/home/oracle/database/runInstaller;  ##执行该程序开始安装

以下将进入图形安装界面


图-1 输入email,点击next


图-2 由于我的安装机没连通外网,所以提示我设置代理。选中复选框,点击Continue


图-3 选中第一项,在安装完成时创建并简单配置数据库,点击next


图-4 选中Server Class,点击next


图-5 以单例模式安装(若安装RAC,选择下一项),点击next


图-6 选中Advanced install,点击next

 


图-8 选择安装企业版,点击next


图-9 安装基目录和Home目录,由于我们已设置好环境变量Oracle_BASE和ORACLE_HOME,此处无需再选择,点击next


图-10 以oinstall群组身份进行安装,点击next


图-11 安装用于事务处理的数据库(数据仓库选中下一项),点击next


图-12 由于我们已设置好环境变量ORACLE_SID,所以此步无需修改,点击next


图-13.1 可使用的最大内存,Oracle建议使用自动内存管理,点击选项卡Character sets选择字符集


图-13.2 选择UTF-8作为数据库字符集,点击Sample Schemas顺便创建Oracle提供的案例


图-13.3 选中复选框,点击next



图-14 没什么好设置的(根据自己需求),点击next


图-15 此步可选择数据文件的存储方式,我选了简单的文件系统,点击next


图-16 是否启用自动备份,在生产环境还是启用的好,点击next


图-17 为系统管理帐号设置密码,输入完后点击next


图-18 选择DBA帐号所属群组(可使用conn /as sysdba登录数据库)和oper帐号所属群组,点击next


 


图-7 安装程序界面上的语言,只能English啦,点击next



图-19 安装程序对环境进行检查,由于CentOS的32bit程序包都是i686的,而Oracle要求i386,所以此处会失败,忽略即可。点击next


图-20 点击Finish,开始安装


图-21 安装ing。。。


图-22 安装ing。。。


图-23 点击Password Management可设置相关管理帐号的密码,由于在图-17已设过所以无需再设,点击OK


图-24 保留,先执行下一步:以root身份登录执行那两个sh文件


图-25 以root身份登录执行那两个sh文件,如上图左下角。执行完成后,点击OK,就大功告成了。

打开浏览器,输入https://localhost:1158/em,可打开Database Control管理界面,则Oracle已经开始运行了。

数据库启动后,不能通过 http://loaclhost:1158/em 访问。

解答:这个问题我在浙江天夏的时候遇到过只要重做Oracle EnterpriseManager 11g Database Control Release就好了,步骤如下:

    # emctl start dbconsole

# emctl status dbconsole

 

16、启动数据库实例,分为两步:第一步,启动监听;第二步,启动数据库实例(在oracle帐号下操作):

一)、如何启动数据库实例

  1.进入到sqlplus启动实例

[oracle@redhat ~]$ su -oracle                                --“切换到oracle用户”

Password:

[oracle@redhat ~]$ lsnrctlstart                               --“打开监听”

LSNRCTL for Linux: Version10.2.0.1.0 - Production on 14-OCT-2009 19:06:40

Copyright (c) 1991, 2005,Oracle.  All rights reserved.

Starting/home/oracle/product/10g/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version10.2.0.1.0 - Production

System parameter file is/home/oracle/product/10g/network/admin/listener.ora

Log messages written to/home/oracle/product/10g/network/log/listener.log

Listening on:(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC2)))

Listening on:(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=redhat)(PORT=1522)))

Connecting to(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC2)))

STATUS of the LISTENER

------------------------

Alias                     LISTENER

Version                   TNSLSNR for Linux: Version10.2.0.1.0 - Production

Start Date                14-OCT-2009 19:06:40

Uptime                    0 days 0 hr. 0 min. 0 sec

Trace Level               off

Security                  ON: Local OS Authentication

SNMP                      OFF

Listener Parameter File   /home/oracle/product/10g/network/admin/listener.ora

Listener Log File        /home/oracle/product/10g/network/log/listener.log

Listening Endpoints Summary...

 (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC2)))

 (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=redhat)(PORT=1522)))

Services Summary...

Service "PLSExtProc"has 1 instance(s).

 Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) forthis service...

The command completedsuccessfully

 

[oracle@redhat ~]$ sqlplus/nolog                                --“进入到sqlplus”

SQL*Plus: Release 10.2.0.1.0 -Production on Wed Oct 14 19:06:45 2009

Copyright (c) 1982, 2005,Oracle.  All rights reserved.

 

SQL> conn /as sysdba                                             --“连接到sysdba”

Connected to an idle instance.

 

SQL> startup                                                    --“启动数据库实例”

ORACLE instance started.

Total System Global Area  285212672 bytes

Fixed Size      1218968 bytes

Variable Size     88082024 bytes

Database Buffers   188743680 bytes

Redo Buffers      7168000 bytes

Database mounted.

Database opened.

 

SQL> shutdown immediate                                          --“关闭数据库实例”

Database closed.

Database dismounted.

ORACLE instance shut down.

 

SQL> exit

Disconnected from Oracle Database10g Enterprise Edition Release 10.2.0.1.0 - Production

With the Partitioning, OLAP andData Mining options

 

[oracle@redhat ~]$ lsnrctlstop                                 --“关闭监听”

LSNRCTL for Linux: Version10.2.0.1.0 - Production on 14-OCT-2009 19:08:06

Copyright (c) 1991, 2005,Oracle.  All rights reserved.

Connecting to(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC2)))

The command completedsuccessfully

 

 2.用dbstart和dbshut启动和关闭数据库实例

 

先启动监听 lsnrctl start

启动实例 dbstart

 

使用dbstart命令启动数据库比较方便,但是在linux上安装好oracle之后,第一次使用dbstart命令可能会报如下错误:

 

ORACLE_HOME_LISTNER is not SET,unable to auto-start Oracle Net Listener

Usage:/u01/app/oracle/oracle/product/10.2.0/db_1/bin/dbstart ORACLE_HOME

原因:

dbstart和dbshut脚本文件中ORACLE_HOME_LISTNER的设置有问题,分别打开两个文件找到:用vi编辑dbstart,

ORACLE_HOME_LISTNER=$1,修改为

ORACLE_HOME_LISTNER=$ORACLE_HOME

 

然后保存退出,此时再运行dbstart,已经不报错了,但是没有任何反应,ps一下进程,没有oracle的进程,说明oracle实例没有

正常启动。

 

此时的原因是在/etc/oratab的设置问题,我们vi一下,发现

zgz:/home/oracle/product/10g:N

最后设置的是"N"(我的环境中只有一个实例,因此只有一行配置语句),我们需要把“N”修改为“Y”。

 

以上的工作做好之后,dbstart就可以正常使用了:

 

[oracle@redhat bin]$ lsnrctlstart                                  --“启动监听”

LSNRCTL for Linux: Version10.2.0.1.0 - Production on 14-OCT-2009 19:44:53

Copyright (c) 1991, 2005,Oracle.  All rights reserved.

Starting/home/oracle/product/10g/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version10.2.0.1.0 - Production

System parameter file is/home/oracle/product/10g/network/admin/listener.ora

Log messages written to/home/oracle/product/10g/network/log/listener.log

Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC2)))

Listening on:(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=redhat)(PORT=1522)))

Connecting to(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC2)))

STATUS of the LISTENER

------------------------

Alias                     LISTENER

Version                   TNSLSNR for Linux: Version10.2.0.1.0 - Production

Start Date                14-OCT-2009 19:44:53

Uptime                    0 days 0 hr. 0 min. 0 sec

Trace Level               off

Security                  ON: Local OS Authentication

SNMP                      OFF

Listener Parameter File  /home/oracle/product/10g/network/admin/listener.ora

Listener Log File        /home/oracle/product/10g/network/log/listener.log

Listening Endpoints Summary...

 (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC2)))

 (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=redhat)(PORT=1522)))

Services Summary...

Service "PLSExtProc"has 1 instance(s).

 Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) forthis service...

The command completed successfully

[oracle@redhat bin]$ dbstart                                   --“启动数据库实例”

Processing Database instance"zgz": log file /home/oracle/product/10g/startup.log

[oracle@redhat bin]$ dbshut                                    --“关闭数据库实例”

[oracle@redhat bin]$ lsnrctlstop                              --“关闭监听”

LSNRCTL for Linux: Version10.2.0.1.0 - Production on 14-OCT-2009 19:45:33

Copyright (c) 1991, 2005,Oracle.  All rights reserved.

Connecting to(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC2)))

The command completedsuccessfully

二)、如何使数据库实例和linux系统一起启动

在/etc/rc.d/rc.local中加入如下语句即可实现同系统启动实例:

su - oracle -c "lsnrctlstart"

su - oracle -c"dbstart"

 

linux下oracle的自启动脚本

 

1.写一个StartOracle.sql,假设放在/目录下

vi /StartOracle.sql加入如下两行保存

startup

exit

 

2.配置/etc/rc.local

vi /etc/rc.local加入如下内容,保存

su - oracle -c'ORACLEHOME/bin/lsnrctlstart'

su - oracle -c'ORACLE_HOME/bin/sqlplus "/as sysdba" @/StartOracle.sql'

 

3. 如果还要自动启动oracle enterprise manager(em)和isqlplus可以如下配置

vi /etc/rc.local 加入:

su - oracle -c 'ORACLEHOME/bin/emctlstartdbconsole'

su - oracle -c'ORACLE_HOME/bin/isqlplusctl start'

 

要知道em和isqlplus等使用的端口可以查询文件:

$ORACLE_HOME/install/portlist.ini(以oracle 10.1.0.3为例)

 

三)、问题为:数据库启动后:

不能通过 http://loaclhost:1158/em 访问。

解答:这个问题我在浙江天夏的时候遇到过只要重做Oracle EnterpriseManager 11g Database Control Release就好了,步骤如

下:

   

    # emctl start dbconsole

    # emctl status dbconsole

 

17、设置oracle自动启动

方法一:

1.)编辑 /etc/oratab

最下一行

his:/opt/oracle/product/11.2.0:N

更改为:

his:/opt/oracle/product/11.2.0:Y

2.)新建一个文件 vi /etc/init.d/oracle

#!/bin/bash

#

#oracledb This Starts/Stops the Oracle Server

#chkconfig: 345 99 10

#description: script for the Oracle Instance, Listener 

#/etc/init.d/oracledb

#

#Run-level Startup script for the Oracle Listener and Instances

#It relies on the information on /etc/oratab

 

exportORACLE_OWNR=oracle

exportORACLE_HOME=/opt/oracle/product/11.2.0

 

echo"Oracle Script init.d"

if[ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]

then

  echo "Oracle startup: cannot start"

  exit 1

fi

 

case"$1" in

start)

  # Oracle listener and instance startup

  echo -n "Starting Oracle: "

  su - $ORACLE_OWNR -c"$ORACLE_HOME/bin/lsnrctl start"

  su - $ORACLE_OWNR -c"$ORACLE_HOME/bin/dbstart $ORACLE_HOME"

  su - $ORACLE_OWNR -c"$ORACLE_HOME/bin/emctl start dbconsole"

  touch /var/lock/oracle

  echo "OK"

  ;;

stop)

  # Oracle listener and instance shutdown

  echo -n "Shutdown Oracle: "

  su - $ORACLE_OWNR -c"$ORACLE_HOME/bin/emctl stop dbconsole"

  su - $ORACLE_OWNR -c"$ORACLE_HOME/bin/lsnrctl stop"

  su - $ORACLE_OWNR -c"$ORACLE_HOME/bin/dbshut $ORACLE_HOME"

  rm -f /var/lock/oracle

  echo "OK"

  ;;

reload|restart)

  $0 stop

  $0 start

;;

*)

  echo "Usage: `basename $0`start|stop|restart|reload"

  exit 1

esac

 

exit0

 

3.)增加启动项

[root@centos/]# chmod +x /etc/init.d/oracle

[root@centos/]# chkconfig --add oracle

[root@centos/]# chkconfig --list|grep oracle

oracle          0:关闭  1:关闭  2:关闭  3:启用  4:启用  5:启用  6:关闭

[root@centos]#cd /usr/bin

[root@centosbin]# pwd

/usr/bin

[root@centosbin]# ln -s /etc/init.d/oracle

方法二:

step 1:

修改/etc/oratab文件,需要将localorc:/opt/oracle/product/11g:N最后的N改成Y

(如果/etc/oratab文件不存在,则需要使用root用户执行$ORACLE_HOME/root.sh文件

# sh /opt/oracle/product/11g/root.sh)

[root@lzc-centos6 ~]# cat /etc/oratab

localorc:/opt/oracle/product/11g:N

[root@lzc-centos6 ~]# vi /etc/oratab

localorc:/opt/oracle/product/11g:Y

 

setp 2:

使用oracle的安装用户(oracle)修改$ORACLE_HOME/bin/dbstart文件,修改之前最好先备份一下,使用如下命令

[oracle@lzc-centos6 bin]$ cp/opt/oracle/product/11g/bin/dbstart /opt/oracle/product/11g/bin/dbstart.bak

找到ORACLE_HOME_LISTNER=…这行,修改成

ORACLE_HOME_LISTNER=/opt/oracle/product/11g
 或者直接修改成:

 ORACLE_HOME_LISTNER=$ORACLE_HOME

 

Step 3:

测试运行dbshut,dbstart

(1)修改dbstart和dbshut的日志文件的权限(如果这两个文件不存在,先手工touch): 

root用户先创建这两个文件

# cd $ORACLE_HOEM/bin

[root@lzc-centos6 11g]# touch startup.log

[root@lzc-centos6 11g]# chownoracle.oinstall startup.log

[root@lzc-centos6 11g]# chmod 755startup.log

[root@lzc-centos6 11g]# touch shutdown.log

[root@lzc-centos6 11g]# chownoracle.oinstall shutdown.log

[root@lzc-centos6 11g]# chmod 755 shutdown.log

[root@lzc-centos6 11g]# ls -l startup.logshutdown.log

-rwxr-xr-x. 1 oracle oinstall 0 Jan  8 13:50 shutdown.log

-rwxr-xr-x. 1 oracle oinstall 0 Jan  8 13:49 startup.log

 

(2)执行相应的脚本进行测试:

[root@lzc-centos6 11g]# su -oracle

[oracle@lzc-centos6 ~]$ cd$ORACLE_HOME

[oracle@lzc-centos6 bin]$dbshut #(or dbstart)

 

3)创建oracle服务启动脚本:oradbstart(使用root用户)

[root@lzc-centos6 11g]# touch/home/oracle/oradbstart

# chown oracle.oinstall/home/oracle/oradbstart

# chmod 775 oracle.oinstall/home/oracle/oradbstart

拷贝内容之后,需要将该文件copy/etc/rc.d/init.d/目录下

# cp /home/oracle/oradbstart/etc/rc.d/init.d/oradbstart

oradbstart加入到系统启动列表中

[root@lzc-centos6 init.d]#chkconfig --add /home/oracle/oradbstart

[root@lzc-centos6 init.d]#chkconfig --list oradbstart

oradbstart      0:off  1:off   2:off   3:on   4:on    5:on    6:off

注:在使用 chkconfig –add命令时候如果出现以下错误

[root@lzc-centos6 init.d]# chkconfig --add/home/oracle/oradbstart

error reading information on service oradbstart: No such file ordirectory

需要检查/home/oracle/oradbstart文件是否正确,如果copy文字的话可能出现丢失头上的一两行的情况,检查改文件的头部是否如下:(如果不是需改之后重新copy/etc/rc.id/init.d/目录下)

#!/bin/bash

# chkconfig: 345 99 10

# description: Startup Script for oracle Databases

 

脚本内容如下(亲,记得根据自己的数据库配置做相应的修改哟):

[root@lzc-centos6 11g]# cat/home/oracle/oradbstart

#!/bin/bash

# chkconfig: 345 99 10

# description: Startup Scriptfor oracle Databases

# /etc/rc.d/init.d/dbstart

export ORACLE_BASE=/opt/oracle/

exportORACLE_HOME=/opt/oracle/product/11g/

export ORACLE_SID=localorc

export PATH=$PATH:$ORACLE_HOME/bin

ORA_OWNR="oracle"

# if the executables do notexist -- display error

if [ ! -f$ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]

then

    echo "Oracle startup: cannotstart"

    exit 1

fi

# depending on parameter --startup, shutdown, restart

# of the instance and listeneror usage display

case "$1" in

  start)

    # Oracle listener and instance startup

    echo -n "Starting Oracle: "

     su $ORA_OWNR -c"$ORACLE_HOME/bin/lsnrctl start " 

     su $ORA_OWNR -c"$ORACLE_HOME/bin/dbstart" 

    touch /var/lock/oracle

     su $ORA_OWNR -c"$ORACLE_HOME/bin/emctl start dbconsole"

     su $ORA_OWNR -c"$ORACLE_HOME/bin/isqlplusctl start"

    echo "OK"

    ;;

 

  stop)

    # Oracle listener and instance shutdown

    echo -n "Shutdown Oracle: "

    su $ORA_OWNR -c"$ORACLE_HOME/bin/emctl stop dbconsole"

    su $ORA_OWNR -c"$ORACLE_HOME/bin/isqlplusctl stop"

    su $ORA_OWNR -c"$ORACLE_HOME/bin/dbshut"

    su $ORA_OWNR -c"$ORACLE_HOME/bin/lsnrctl stop"

    rm -f /var/lock/oracle

    echo"OK"

    ;;

 

  reload|restart)

    $0 stop

    $0 start

    ;;

  *)

    echo "Usage: `basename $0`start|stop|restart|reload"

    exit 1

esac

exit 0

 

测试快速启动命令:

[root@lzc-centos6 init.d]#/etc/rc.d/init.d/oradbstart stop

[root@lzc-centos6 init.d]#/etc/rc.d/init.d/oradbstart start

重启linux

# reboot –n

linux启动的时候,你就可以看到一个启动项oracle,出现[OK]的时候,就表示你的数据库随系统启动了。

# su – oracle

# pe –ef|grep ora

18、sqlplus工具配置(安装rlwap工具)(可以上下翻页,前后键和删除键能用)

下载地址:http://utopia.knoware.nl/~hlub/uck/rlwrap/

 

安装前确认以下软件安装;

rpm -qa | greplibtermcap-2.0.8-47

rpm -qa | greplibtermcap-devel-2.0.8-18

rpm -qa | grep readline-6.0-4

rpm -qa | grepreadline-devel-6.0-4

 

如果没安装,必须安装;

rpm -ivhlibtermcap-2.0.8-47.i386.rpm

rpm -ivhlibtermcap-devel-2.0.8-18.i386.rpm

rpm -ivh readline-6.0-4.el6.i686.rpm

rpm -ivhreadline-devel-6.0-4.el6.i686.rpm

 

安装rlwrap;

 

[root@asm oracle]# tar -xzvfrlwrap-0.41.tar.gz  (解压安装包)

[root@asm oracle]# cdrlwrap-0.41

[root@asm rlwrap-0.41]# ls

aclocal.m4  bash30-005.patch  ChangeLog   config.h.in  configure.ac  distribution INSTALL      Makefile.in 

README  test tools

AUTHORS     BUGS              completions  configure   COPYING       doc           Makefile.am  NEWS        src 

   TODO

[root@asm rlwrap-0.41]#./configure

[root@asm rlwrap-0.41]# make&& make install

[root@asm rlwrap-0.41]# rlwrap

Usage: rlwrap [options] command...

Options:

  -a[password:]              --always-readline[=password:]

  -b                  --break_chars=

  -c                         --complete-filenames

  -C                 --command-name=

  -D <0|1|2>                --history-no-dupes=<0|1|2>

  -f        --file=

  -F          --history-format=

  -h                         --help

  -H                  --history-filename=

  -i                         --case-insensitive

  -l                   --logfile=

  -n                         --no-warnings

  -P                  --pre-given=

  -m[newline substitute]     --multi-line[=newline substitute]

  -r                         --remember

  -v                         --version

  -s                      --histsize=(negative: readonly)

bug reports, suggestions,updates:

http://utopia.knoware.nl/~hlub/uck/rlwrap/

 

(orale用户下)

[root@asm rlwrap-0.41]# vi/home/oracle/.bash_profile   (进入orale环境变量配置下,加入下面两句)

alias sqlplus='rlwrap sqlplus'

alias rman='rlwrap rman'

 

linux sqlplus 下就能和cmd  sqlplus 正常操作了(可以上下翻页,前后删除键都可以操作了)

19、安装过程中的错误解决办法

1)、数据库实例安装失败

安装过程中碰到在‘OracleNet Configuration Assistant’这步的时候失败,导致oracle实例没法继续安装

解决办法:

通过查看安装日志发现出现改错误的异常是因为端口被占用,但通过netstat命令来查看1521端口并没有其他程序在使用,于是google,baidu折腾一把大致说法是因为/etc/hosts里面的主机名和IP的映射配置有问题(因为系统在安装的过程中我手动设置了,而且系统安装的时候并没设置静态IP,而是用DHCP获取地址,并且还同时开启了IPv4和IPv6的地址),这样可能导致oracle网络配置的时候解析本机主机名的时候出错,具体修改办法:

Step 1:# vi /etc/hosts,加上本机ip和本机主机名的映射,去掉IPV6的配置

[root@lzc-centos6 ~]# cat /etc/hosts

127.0.0.1  localhost localhost.localdomain localhost4 localhost4.localdomain4

192.168.1.102 lzc-centos6

Step 2:# vi /etc/host.conf,加上 order hosts, bind;表示先通过/etc/hosts文件查找再通过域名服务器查找(域名服务地址配置文件/etc/resolv.conf)

[root@lzc-centos6 ~]# cat /etc/host.conf

order hosts, bind

multi on

Step 3:重启监听成功

# lsnrctl start 启动监听

 

2)、EM 页面出现乱码

访问 https://192.168.1.102:1158/em页面发现乱码出现

注:如果oracle管理台已经启动,而无法访问该页面的话,需要检查你linux服务器的防火墙的配置,是否允许其他机器访问1158端口,具体linux防火墙的配置百度之

oracle 11g使用的是jdk1.5,jdk1.5以后有了一个简便方法来解决这个问题,只需在$JAVA_HOME/jre/lib/fonts/下建一个fallback目录,把你想在java中使用的字体复制到这个目录中即可,在oracle用户下:

$ mkdir$ORACLE_HOME/jdk/jre/lib/fonts/fallback

把windows下的字体文件simsun.ttc复制到$ORACLE_HOME/jdk/jre/lib/fonts/fallback目录下并改名simsun.ttf(注意ms的simsun字体是有版权的,所以商用换其他字体),相应的权限改为oracle用户可用.之后需要清理一下Cache,重启EM即可:

命令如下:

[root@lzc-centos6 ~]# chown oracle.oinstall/opt/oracle/product/11g/jdk/jre/lib/fonts/fallback/simsunb.ttf

[root@lzc-centos6 ~]# chmod 755/opt/oracle/product/11g/jdk/jre/lib/fonts/fallback/simsunb.ttf

[oracle@lzc-centos6 ~]$ rm/opt/oracle/product/11g/oc4j/j2ee/oc4j_applications/applications/em/em/cabo/images/cache/zhs/*.gif

[oracle@lzc-centos6 ~]$ emctl startdbconsole

 

亲,这样搞不行啊,还是乱码!(留待后续解决。。。)

 

3)、修改oracle服务器内存,导致服务启动失败

通过oracle的管理工具,修改oracle服务使用的内存大小后(从开始的880M修改到2G),出现” ORA-00845: MEMORY_TARGET notsupported on this system”错误信息,并且oracle实例也启动不了。

 

 

ORA-00845: MEMORY_TARGET not supported onthis system

官方解释:

ORA-00845: MEMORY_TARGET not supported onthis system

Cause: The MEMORY_TARGET parameter was notsupported on this operating system or /dev/shm was not sized correctly onLinux.

Action: Refer to documentation for a listof supported operating systems. Or, size /dev/shm to be at least theSGA_MAX_SIZE on each Oracle instance running on the system.

意思是oracle SGA的大小超过了系统shm的大小,有两种解决方案:

1.修改shm的大小;

2. 修改SGA_MAX_SIZE的大小。

建议修改shm,shm类似于Windows平台的虚拟内存,shm默认自动调节大小,大约是内存的一半。我的服务器内存是3G,当shm小于SGA,启动oracle就会出现此问题。

 

解决方案是自定义shm的大小,需要修改/etc/fstab文件:

[root@lzc-centos6 ~]# vi /etc/fstab

tmpfs                   /dev/shm            tmpfs   defaults,size=1536M       0 0

# 设置成1536(1.5G),为系统内存3G的一半,注该值最好不要设置成大于系统内存一半以上,否则重启系统之后,改值会继续变成系统内存的一半(为啥,I’ don’t know.)

[root@lzc-centos6 ~]# umount /dev/shm/

[root@lzc-centos6 ~]# mount /dev/shm/

重启oracle服务器,正常启动

注:如果一开始将Maximum Memory Size设置过大的话,想要重新调小的话,可以先 Disable掉Automatic Memory Management选项,然后修改MaximumSGA Size (MB),之后再Enable AutomaticMemory Management,这时可以重新设置Maximum Memory Size的大小。

 

4)、对于src.rpm依赖包的安装

1.执行rpm -i you-package.src.rpm

2. cd /usr/src/redhat/SPECS

3.rpmbuild -bb your-package.specs 一个和你的软件包同名的specs文件,这时在/usr/src/redhat/RPM/i386/ (根据具体包的不同,也可能是i686,noarch等等)在这个目录下,有一个新的rpm包,这个是编译好的二进制文件。

执行rpm -ivhnew-package.rpm即可安装完成。

 

20、启动OEM(Oracle Enterprise Manager)

Linux启动OEM:

 

[root@oracle~]# su - oracle //切换到oralce用户

 

[oracle@oracle~]$ emctl start dbconsole //启动OEM

OracleEnterprise Manager 11g Database Control Release 11.2.0.1.0

Copyright(c) 1996, 2009 Oracle Corporation. All rights reserved.

https://oracle.merry.com:1158/em/console/aboutApplication

 

 

StartingOracle Enterprise Manager 11g Database Control ........... started.

------------------------------------------------------------------

Logsare generated in directory /opt/oracle/product/OraHome/oracle.merry.com_orcl/sysman/log

[oracle@oracle~]$ emctl status dbconsole //查看OEM状态

OracleEnterprise Manager 11g Database Control Release 11.2.0.1.0

Copyright(c) 1996, 2009 Oracle Corporation. All rights reserved.

https://oracle.merry.com:1158/em/console/aboutApplication

 

OracleEnterprise Manager 11g is running. //正在运行中

------------------------------------------------------------------

Logsare generated in directory/opt/oracle/product/OraHome/oracle.merry.com_orcl/sysman/log

 

Windows下启动OEM:

只要打开oracle11g的emctl服务就可以

 

相关阅读:

 

OEM简介及按钮乱码问题 http://www.linuxidc.com/Linux/2013-03/80819.htm

 

Oracle10g 配置OEM/DB CONSOLE http://www.linuxidc.com/Linux/2012-12/76651.htm

 

Oracle11gr2 RAC环境配置OEM 报ORA-12514错误

 http://www.linuxidc.com/Linux/2012-11/73763.htm

 

OEM启动失败的恢复 (未打补丁Patch 8350262)

 http://www.linuxidc.com/Linux/2012-10/72390.htm

 

OracleOEM的安装与配置(常用命令)http://www.linuxidc.com/Linux/2012-06/62846.htm

你可能感兴趣的:(数据库,Linux)