Install and configure Oracle 11g Release 2 on Redhat 6.3 Enterprise Linux 64 step by step
本篇试图以初学者的角度来剖析 Oracle 11g R2 数据库在 Redhat Enterprise Linux 6.3 的安装与配置。
我在64位的 Redhat Enterprise Linux 6.3 操作系统上进行数据库安装。Redhat Enterprise Linux 6.3 的安装参考
http://blog.csdn.net/issacyoung227/article/details/11786601 。
安装前准备工作
安装的是 Oracle 11.2.0.3 ,安装之前检查安装过程中所需的 RPM 软件包。
rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers kernel-headers ksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel make numactl-devel sysstat unixODBC unixODBC-devel
如果有缺少 RPM 包,就会显示... is not installed 。例如 package compat-libstdc++-33 is not installed ,这时就需要从系统的镜像文件找到相应的 RPM 包,装上即可。我用的 Hyper-V 装的 Redhat Linux ,装了windows 集成服务后,挂载镜像出了 bug 。没关系,在 windows 下把你的镜像文件打开,找到 Package 目录,然后将相应缺少的包复制传送到虚机 Linux 中再用也行,用 rpm命令安装。例如: rpm -Uvh compat-libstdc++-33-3.2.3-69.el6.x86_64.rpm。这里讲到了Hyper-V 虚机与主机传送文件,建议用ftp 工具,这里有个 WinScp 的ftp 工具下载地址: http://download.csdn.net/detail/ywy0012011/6299885 。
缺少的软件包都安装上了,就会通过检查。
安装过程
以 root 用户登录开始安装。安装过程主要分为两种工作:1. 修改系统参数 ; 2. 软件安装。
第一步,添加相关用户和用户组
创建一个主组 oinstall ,副组 dba。
groupadd oinstall
groupadd dba
创建用户 oracle ,设置密码为:oracle。
useradd -m -g oinstall -G dba oracle
passwd oracle
第二步,创建 oracle 安装目录、oraInventory目录及修改权限
mkdir -p /u01/app/oracle
mkdir -p /u01/app/oraInventory
chown -R oracle:oinstall /u01/app
chmod -R 755 /u01/app
第三步,修改系统内核参数 vi /etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 2147483648
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
小技巧: 修改保存 /etc/sysctl.conf 文件之后立刻生效命令 sysctl -p。
提醒下:shmmax是核心参数中最重要的参数之一,用于定义单个共享内存段的最大值,shmmax设置应足够大,能在一个共享内存段下容纳下整个的SGA,设置的过低可能会导致需要创建多个共享内存段,可能导致系统性能的下降 。我分配给这台虚拟机的内存为 2G ,设置为2G。你可以根据自己的情况来设定,这是个用了比较的数据,当共享内存段被一个进程(Process)创建,操作系统检查是否被要求的共享内存段的值大于shmmax 的值 ,如果是,那么将会抛出一个错误。
第四步,设置 oracle 用户的 shell limit, vi /etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle har nofiel 65536
添加参数, vi /etc/pam.d/login
session required pam_limits.so
第五步,设置 oracle 用户的环境变量及hostname
ORACLE_SID 是指数据库实例名,自己根据情况指定,NLS_LANG 设置为中文字符集。.bash_profile 文件是在用户首次登录时会执行,.bashrc 文件是在用户切换命令窗口执行。 vi /home/oracle/.bash_profile
export TMP=/tmp
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=mastest
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
注册 Hostname 到/etc/hosts,安装时才能识别你的 Hostname。 vi /etc/hosts
192.168.106.141 issacyang
第六步,解压 oracle 安装包,安装软件
压缩包上传到系统 oracle 用户的目录下,可以放在 /u01/software 下。
注销 root 用户,登录 oracle 用户,这时可以用 echo $ORACLE_HOME 的命令检查环境变量设置成功与否。在 oracle 安装包的目录下,解压安装包。
unzip p10404530_112030_Linux-x86-64_1of7.zip
unzip p10404530_112030_Linux-x86-64_2of7.zip
Oracle 11g Release 2 linux x86官方的安装包分两个文件,一个1.2G一个900+M,解压缩后会有一个database文件夹
cd /u01/software/database
./runInstaller
检测通过了,就会进入软件安装图形界面,安装过程中没提到的界面选择默认即可。
反选 I wish to ... , Next
勾选 Skip software updates 不需要软件更新, Next。选择单例安装, Next。
安装选项选择 Install software only,配置工作可以在安装后另行配置, Next。
选择产品语言,将简体中文选上,Next。
oracle 和 oraInventory 的安装目录是原先设置环境变量设置的$ORACLE_HOME ,默认即可。Next 到检查 Prerequisite,检查到有错误,直接忽略就行。
选择 Install ,开始安装工作,完成后,安装就结束了。
创建数据库
创建一个跟 $ORACLE_SID 对应的数据库实例,运行 dbca 命令可以进入配置数据库图形界面,再进行自定义安装。
到了第三步时,填上跟 ORACLE_SID 对应的数据库名称。
第五步,设置用户密码,我这边为了方便选择同一密码。
第九步中,选择 Charset 设置数据库的字符集,选择 ZHS16GBK,确保数据库兼容中文。
选择默认,开始安装,需要等待一段时间,数据库创建完成。
配置监听(LISTENER)和本地服务名(TNS)
可以通过修改 $ORACLE_HOME/network/admin 的 listener.ora 和 tnsnames.ora 文件直接配置。我这里用图形界面配置,直观些。运行 netca 命令,进入图形配置界面:
勾选 Listener configuration 一直默认完成即可,监听配置完成。
接着配置 Local Net Service Name configuration,Next。
指定 Net Service Name ,以及 hostname ,其他默认即可。
配置完成后,点击 Finish 。
将新建的数据库与监听关联上,运行 netmgr 命令,进入图形界面配置。
Global Database Name 和 SID 填上新建的数据库 mastest。
保存配置,再退出。
监听、TNS 配置OK,可以去对应目录下自定义修改相应的监听和TNS文件。
运行 lsnrctl status ,可以看到是否有监听实例启动。
[oracle@issacyang admin]$ lsnrctl status
LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 23-SEP-2013 09:47:55
Copyright (c) 1991, 2011, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=issacyang)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 11.2.0.3.0 - Production
Start Date 23-SEP-2013 07:57:01
Uptime 0 days 1 hr. 50 min. 56 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora
Listener Log File /u01/app/oracle/diag/tnslsnr/issacyang/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=issacyang)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Services Summary...
Service "mastest" has 1 instance(s).
Instance "mastest", status READY, has 1 handler(s) for this service...
Service "mastestXDB" has 1 instance(s).
Instance "mastest", status READY, has 1 handler(s) for this service...
The command completed successfully
数据库测试
安装配置完成后需要测试是否能正常运行数据库。
[oracle@issacyang admin]$ sqlplus "/as sysdba"
SQL*Plus: Release 11.2.0.3.0 Production on Mon Sep 23 10:01:28 2013
Copyright (c) 1982, 2011, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> select user from dual;
USER
------------------------------
SYS
sqlplus 能成功进入,说明安装配置都成功了。至此,在 Redhat Enterprise Linux 6.3 安装 oracle 11g R2 的安装与配置完成了,仅供参考,如有纰漏,不吝赐教。