Total Pageviews

Saturday 3 March 2012

Red Hat Enterprise Linux AS 5.4安装Oracle 10g的全过程

图文并茂,详细讲解。

一、下载Oracle 10g
先详细说明一下我的环境,系统:虚拟机Red Hat Enterprise Linux AS 5.4,数据库:Oracle Database 10g Release 2 (10.2.0.1)。Oracle去官方网站下载。我下载下来的文件是10201_database_linux32.zip。
二、安装Oracle 10g前的配置
其实Linux下安装Oracle 10g并不难,主要就是安装前的配置有点烦琐罢了。不过不要怕,安装过一两次你就会熟练了。开始了,Follow me!
1、安装Oracle所需软件包
先用rpm -qa | grep命令查询软件包是否安装了,没有的话再用rpm -ivh命令进行安装。
# 从Red Hat Enterprise Linux AS5 光盘1
cd /media/cdrom/Server
rpm -ivh setarch-2*
rpm -ivh make-3*
rpm -ivh glibc-2*
rpm -ivh libaio-0*
# 从Red Hat Enterprise Linux AS5 光盘2
cd /media/cdrom/Server
rpm -ivh compat-libstdc++-33-3*
rpm -ivh compat-gcc-34-3*
rpm -ivh compat-gcc-34-c++-3*
rpm -ivh gcc-4*
rpm -ivh libXp-1*
# 从Red Hat Enterprise Linux AS5 光盘3
cd /media/cdrom/Server
rpm -ivh openmotif-2*
rpm -ivh compat-db-4*
可以通过命令的方式查询哪些软件包没有安装:
rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers libaio  libaio-devel libgcc   libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel
如果提示warning: libstdc++-devel.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186 error: Fa这样的信息的话可以使用rpm -ihv libstdc++-devel.i386.rpm --force --nodeps命令来强行安装。
2、修改系统版本
vi /etc/redhat-release
redhat-4
#Red Hat Enterprise Linux Server release 5.4 (Tikanga)
因为oracle 的官方只支持到RHEL4为止,所以要修改版本说明。把Red Hat Enterprise Linux Server release 5.4 (Tikanga)这一行注释掉,前面加上一行redhat-4。当然oracle安装完成后要修改回来。redhat-4 必须为redhat-release文件的第一行,否则安装时还会报警告。
3、修改内核参数
#vi /etc/sysctl.conf
增加下面的内容到文件中,可加在最下面:
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
# semaphores: semmsl, semmns, semopm, semmni
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
运行下面的命令使得内核参数生效:
/sbin/sysctl –p
4、建立安装Oracle需要的用户、组及目录
(1)新增组和用户:
groupadd oinstall
groupadd dba
groupadd oper

useradd -g oinstall -G dba oracle
passwd oracle
(2)创建Oracle的安装目录,并把权限付给oracle用户:
mkdir -p /u01/app/oracle/product/10.2.0/db_1
chown -R oracle.oinstall /u01
5、设置oracle用户的shell limit
#vi /etc/security/limits.conf
增加下面的内容到文件 /etc/security/limits.conf 文件中:
* soft nproc 2047
* hard nproc 16384
* soft nofile 1024
* hard nofile 65536
增加下面的内容到文件 /etc/pam.d/login 中,使shell limit生效:
session required /lib/security/pam_limits.so
6、配置静态IP地址
安装RedHat Linux的时候最好采用静态IP地址,如果当时选择的是DHCP,现在需要更改/etc/sysconfig/network-scripts/ifcfg-eth0文件:
DEVICE=eth0
BOOTPROTO=dhcp
HWADDR=00:0C:29:74:5B:62
ONBOOT=yes
HWADDR=00:0C:29:74:5B:62 #你的mac地址
IPADDR=192.168.89.130 #你的IP地址
NETMASK=255.255.255.0 #你的IP地址
GATEWAY=192.168.89.1 #你的网关
7、修改/etc/hosts
把127.0.0.1改为具体的ip地址,注意最好去掉那些无用的,格式如下:
ip地址 – 主机名 – localhost
8、关闭SeLinux
因为SeLinux对oracle有影响,所以把Secure Linux设成无效,编辑文件/etc/selinux/config :
SELINUX=disabled
当然你也可以用图形界面下的工具 (系统 > 管理 > 安全级别和防火墙),选择SELinux页面并且设为无效。
9、配置Oracle用户的环境变量
登录到oracle用户并且配置环境变量,编辑/home/oracle目录下的.bash_profile文件
vi .bash_profile
增加下面的内容到文件 .bash_profile,加在文件的最下面
# Oracle Settings
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR

ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1; export ORACLE_HOME
ORACLE_SID=orcl; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
PATH=$PATH:$ORACLE_HOME/bin; export PATH
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JREORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH

if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
里面的SID在安装数据库时候如果修改了,安装完后需要回来重新修改SID。修改完用“source .bash_profile”使其生效。
10、修改开机使用文本模式登录
如果没有下面这些步骤,oracle在安装时可能出现问题。可能会出现使用oracle用户启动安装界面的时候报错,无法启动图形化界面。
#vi /etc/inittab
把 id:5:initdefault: 修改为 id:3:initdefault,等oracle安装完成后可以修改回来。
#reboot(重启)
11、添加你的机器oracle用户可以使用图形化界面
解压缩安装包:
第一种方法:
zcat  10201_database_linuxitanium.cpio.gz  | cpio -idmv
第二种方法 :
第一步:
gunzip 10201_database_linuxitanium.cpio.gz
第二步:
cpio -idmv < 10201_database_linuxitanium.cpio.gz
在文本模式下,用root登录,然后:
# startx
# xhost +
# su - oracle
$ export DISPLAY=:0.0 #使用root输入xdpyinfo,查看display of name,看后面的字符是1.0还是0.0
$ export LANG=en_US #设置运行语言
$ cd /hqw/databases #进入Oracle安装目录
$ ./runInstaller 
如果是HP安腾小机的话需要这么运行:
$./runInstaller -jreLoc /app/java/jdk1.6.0_24/jre
一开始不需要创建数据库实例,可以把√去掉

进入安装界面安装完毕后,会提示运行两个文件:

如果是HP安腾小机,则需要做如下修改:

更改$ORACLE_HOME/bin/netmgr和$ORACLE_HOME/bin/dbca脚本中的

JREDIR=/oracle/jdk1.6.0_26/jre

修改$ORACLE_HOME/bin/emca脚本
#JRE_JAVA="${ORACLE_HOME}/jdk/jre/bin/java"
JRE_JAVA=/oracle/jdk1.6.0_26/jre/bin/java
if [ ! -f $JRE_JAVA ]; then
# JRE_JAVA="${ORACLE_HOME}/jdk/bin/java"
JRE_JAVA=/oracle/jdk1.6.0_26/jdk/bin/java
fi
复制代码修改$ORACLE_HOME/bin/emctl脚本
#JAVA_HOME=$ORACLE_HOME/jdk
#JRE_HOME=$ORACLE_HOME/jdk/jre
JAVA_HOME=/oracle/jdk1.6.0_26
JRE_HOME=/oracle/jdk1.6.0_26/jre
修改$ORACLE_HOME/bin/isqlplusctl脚本
#JAVA_HOME=$ORACLE_HOME/jdk
#JRE_HOME=$ORACLE_HOME/jdk/jre
JAVA_HOME=/oracle/jdk1.6.0_26
JRE_HOME=/oracle/jdk1.6.0_26/jre

之后创建数据库实例,在终端进入$ORACLE_HOME/bin,运行./dbca 








未说明的安装界面全部为默认选择。
在启动监听器之前,输入以下命令:
su - oracle #注意一定要带“-”
cd ~


 故障排除:
 
 
1、通过sqlplus来连接数据库,在启动oracle时,突然报错:
ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/u01/app/oracle/product/11.1.0/db_1/dbs/initorcl.ora'   //orcl是连接标示符
[oracle@datatest ~]$ sqlplus "/as sysdba"
SQL*Plus: Release 11.1.0.6.0 - Production on Wed Dec 15 10:54:03 2010
Copyright (c) 1982, 2007, Oracle.  All rights reserved.
Connected to an idle instance.
SQL> startup
ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/u01/app/oracle/product/11.1.0/db_1/dbs/initorcl.ora'


原来打不开initorcl.ora,于是进入/u01/app/oracle/product/11.1.0/db_1/dbs/目录,
[oracle@datatest ~]$ cd /u01/app/oracle/product/11.1.0/db_1/dbs/
[oracle@datatest dbs]$ ls
hc_datatest.dat  hc_mm.dat  initdw.ora  init.ora  lkMM  orapwmm  spfilemm.ora


原来是没有initDATATEST.ora文件
解决此问题的方法就是到cd /u01/app/oracle/admin/datatest/pfile/目录下,将ora.1114201016265复制到dbs目录下:
cp init.ora.1114201016265 /u01/app/oracle/product/11.1.0/db_1/initorcl.ora

然后再次用sqlplus连接数据库
[oracle@datatest dbs]$ sqlplus "/as sysdba"
SQL*Plus: Release 11.1.0.6.0 - Production on Wed Dec 15 11:04:25 2010
Copyright (c) 1982, 2007, Oracle.  All rights reserved.
Connected to an idle instance.
SQL> startup
ORACLE instance started.

Total System Global Area  954155008 bytes
Fixed Size                  1303916 bytes
Variable Size             239078036 bytes
Database Buffers          708837376 bytes
Redo Buffers                4935680 bytes
ORA-01102: cannot mount database in EXCLUSIVE mode

OK,可以了
2、EM中文显示不正常,出现很多方格。执行下列命令,来解决em的中文问题

cd $ORACLE_HOME/javavm/lib/ojvmfonts/
mv font.properties font.properties.bak
cp font.properties.zh_CN.Redhat2.1 font.properties

cd $ORACLE_HOME/jre/1.4.2/lib/
mv font.properties font.properties.bak
cp font.properties.zh_CN.Redhat2.1 font.properties

cd $ORACLE_HOME/jdk/jre/lib/
mv font.properties font.properties.bak
cp font.properties.zh_CN.Redhat2.1 font.properties

启动ORACLE 10G命令
emctl start dbconsole
isqlplusctl start
停止ORACLE 10G命令
emctl stop dbconsole
isqlplusctl stop

No comments:

Post a Comment