分类: Oracle
2012-05-09 16:20:02
RHEL AS5 安装oracle10g
作者:Roc
说明:根据网上很多文档的学习,结合本人安装过程中犯的错误,编写一份较详细的过程。参考了很多网上文档,互相学习!~
参考如下一些文档:
RHEL5上安装Oracle10g Release 2 (Oracle 11gR1基本相同)(比较详细)
http://blog.chinaunix.net/u/22677/showart_1205499.html
(RHEL 5 环境 ORACLE10G(32位) 安装)(标注了很多注意点)
http://neptune.javaeye.com/blog/165863
RHEL5.1 下安装oracle 10.2.0.1
首先安装RHEL AS5系统,去掉一些不用的功能,一些编辑和开发工具选上;
语言选择英文和简体中文两种,应用英文作为系统语言;
RHEL AS5 SWAP分区最好大于2G,否则会出现警告,不过强行安装也可以;
不要使用防火墙和selinux。
可以从Oracle的主页上下载:
Oracle Database 10g Release 2 (10.2.0.1) Software
使用samba或者winscp拷贝文件到指定目录:我的是/mnt/zzp。
解压下载好的文件:unzip 10201_database_linux32.zip
你可以把他解压到一个目录中,例如 "db/Disk1" 或者 "database",默认解压到database目录。
10g Release2 前的配置
# 从RedHat AS5 光盘1
cd /media/cdrom/Server
rpm -Uvh setarch-2*
rpm -Uvh make-3*
rpm -Uvh glibc-2*
rpm -Uvh libaio-0*
# 从RedHat AS5 光盘2
cd /media/cdrom/Server
rpm -Uvh compat-libstdc++-33-3*
rpm -Uvh compat-gcc-34-3*
rpm -Uvh compat-gcc-34-c++-3*
rpm -Uvh gcc-4*
rpm -Uvh libXp-1*
# 从RedHat AS5 光盘3
cd /media/cdrom/Server
rpm -Uvh openmotif-2*
rpm -Uvh compat-db-4*
#安装过程中如果需要安装其他文件,可以先安装其它文件再安装所需的,安装不成功的,可以尝试多安装一次,有些错误可以忽略。
vi /etc/redhat-release
redhat-4
#Red Hat Enterprise Linux Server release 5 (Tikanga)
因为oracle 的官方只支持到RHEL4为止,所以要修改版本说明,把Red Hat Enterprise Linux Server release 5 (Tikanga) 注释掉,前面加上一行redhat-4,当然oracle安装完成后,要修改回来。redhat-4 必须为redhat-release文件的第一行,否则安装时还会报警告。
#vi /etc/sysctl.conf
增加下面的内容到文件中:
#kernel.shmmax共享内存段:设置要根据自己机器的配置,要大于sga+pga尺寸,并且不能超过本机内存量,如果超过本机的,系统会取一个默认值,一般这个值只有30多M,肯定不能满足oracle最低要求
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
groupadd oinstall
groupadd dba
groupadd oper
useradd -g oinstall -G dba oracle
passwd oracle
mkdir -p /u01/app/oracle/product/10.2.0/db_1
chown -R oracle.oinstall /u01
#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
安装RHEL的时候最好采用静态IP地址,如果当时选择的是DHCP,现在需要更改/etc/sysconfig/network-scripts/ifcfg-eth0文件
DEVICE=eth0
BOOTPROTO=static
HWADDR=00:0C:29:4B:17:C4 #你的mac地址
ONBOOT=yes #此处rhel6为no,如果是no,则不会开启静态ip
IPADDR=192.168.1.253 #你的IP地址
NETMASK=255.255.255.0
GATEWAY=192.168.1.1 #你的网关
把127.0.0.1改为具体的ip地址,注意最好去掉那些无用的,格式就是
ip地址 主机名 localhost
因为SELINUX对oracle有影响,所以把secure linux设成无效,编辑文件/etc/selinux/config :
SELINUX=disabled
当然你也可以用图形界面下的工具 (系统 > 管理 > 安全级别和防火墙)。选择SELinux页面并且设为无效。
登录到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生效。
如果没有下面这些步骤,oracle在安装时,可能出现问题(可能使用oracle用户启动安装界面的时候报错,无法启动图形化界面。)
#vi /etc/inittab
把 id:5:initdefault: 修改为 id:3:initdefault,等oracle安装完成后,可以修改回来
#reboot(重启)
在文本模式下,用root登录
# startx
# xhost +
# su - oracle
$ export DISPLAY="192.168.1.253:0.0" #此处修改为你的IP地址
$ export LANG=en_US #设置运行语言
$ cd /tmp/zzp/databases
$ ./runInstaller
图片请参考:http://blog.chinaunix.net/u/22677/showart_1205499.html
这里我选择高级安装,默认安装的字符集是欧洲,对简体中文数据显示乱码。
这里选择企业版,语言选择英文和简体中文,如下图所示:
因为我们在.bash_profile中已经声明,所以这里会自动填充.如下图所示:我的路径为:/u01/app/oracle/product/10.2.0/db_1
开始进行安装前的检查工作
指定字符集为库所用的字符集,中文的为simplified Chinese zhs16gbk,如果字符集不对,可能造成以后数据乱码。
需要root权限执行
sh /oracle/oraInventory/orainstRoot.sh
sh /oracle/product/10.2.0/db_1/root.sh
使用root用户,执行两个文件即可。
修改系统版本:
#vi /etc/redhat-release
Red Hat Enterprise Linux Server release 5 (Tikanga)
修改oracle用户修改环境变量:
#vi .bash_profile
修改安装过程中你修改过的SID及安装路径(如果你修改了的话)。
修改图形化界面登录
#vi /etc/inittab
把 id:3:initdefault: 修改为 id:5:initdefault
su - oracle
cd /u01/app/oracle/product/10.2.0/db_1/bin
调用./lsnrctl service(可以查看当前监听器服务情况)
调用./lsnrctl start(启动监听器),如想停用则lsnrctl stop
判断监听器服务是否好用,可以使用tnsping ip地址。
#在oracle用户登录下,其实不用进去目录,也不需要“./”,可以直接执行lsnrctl命令。
调用./sqlplus "/as sysdba"
start 开启数据库。
或者:
sqlplus /nolog
SQL> connect / as sysdba
start
SQL> shutdown immediate
SQL> exit
修改/ext/oratab,将N改为Y,/etc下面没有oratab文件的话,修改ORACLE_HOME/bin下面的dbstart 修改oratab=/etc/oratab。
Oracle用户登录,确认oracle_home、oracle_sid为你安装时设置的正确HOME和SID。
增加:
su - oracle -c 'lsnrctl start'
su - oracle -c 'dbstart'
#不要偷懒用复制黏贴的,注意符号全角半角。
1、 运行 $ORACLE_HOME/bin/localconfig delete
2、 rm -rf $ORACLE_BASE/*
3、 rm -f /etc/oraInst.loc /etc/oratab
4、 rm -rf /etc/oracle
5、 rm -f /etc/inittab.cssd
6、 rm -f /usr/local/bin/coraenv /usr/local/bin/dbhome /usr/local/bin/oraenv
7、 删除oracle用户和组。
安装oracle的目录建议安装在一个单独的分区或者磁盘上。原因不细说了,oracle的文件是可以恢复的,万一你的系统坏掉了,把oradata下面的文件取出来还是可以恢复的。
最好在安装oracle时不要创建数据库,只安装oracle基本系统。系统安装好后用$ORACLE_HOME/bin/dbca,命令创建数据库,创建数据库时我们可以选择针对数据库的各种参数如“字符集”等。
如果你的系统使用的是中文,启动安装界面可能为乱码,最好先指定语言环境改为英文,在终端里输入:
$export LC_CTYPE=en_US.UTF-8
网上关于乱码的问题很多,安装界面以致最后的管理界面,出现中文乱码。需要去找一些字符包,替换掉原来的。参考:http://hi.baidu.com/kurz/blog/item/18e89123d02dbb44ac34de4b.html
如果安装时默认安装,字符集为欧洲的,导入dmp文件以后,中文字符为“?”,按照网上的方法修改字符集后,中文字符又变成了“靠”,很是郁闷。
假如使用了默认安装,也不是只有重装。用oracle用户登录,运行dbca,新建一个实例,可以指定字符集的。将原dmp文件导入新的实例,这个方法最安全了。
如果打开了防火墙,为了让其他计算机能够访问数据库,必须把下面端口打开:
端口1521(用于连接数据库),
端口1158(如果要用浏览器访问enterprise managment),
端口5560(如果要用浏览器访问isqlplus)。
你可以用图形界面下的工具 (系统 > 管理 > 安全级别和防火墙)。选择防火墙页面,并且增加上面的端口。
环境变量根据个人的设置,SID、ORACLE_HOME路径等一定要正确。
使用oracle用户不能启动oracle安装的图形化界面时,注销root,直接用oracle用户登录。
或者重新执行一次:
# xhost +
# su - oracle
$ export DISPLAY="192.168.1.253:0.0"
Message 1070 not found
安装结束以后要以oracle用户启动监听。
配置完自动启动后,重启发现数据库没有自动启动,运行dbstart,出现问题了。原因是dbstart的监听环境变量错了。(先检查你的/etc/oratab里面是否已经改为Y)
解决方法:
修改oracle_home/bin下面的dbstart,
vi dbstar
将该行改为export ORACLE_HOME_LISTNER=$ORACLE_HOME
保存退出,然后执行dbstart就没问题了。
运行 $ORACLE_HOME/bin/localconfig delete出错:
[root@skate-test ~]# sh /home/oracle/product/10.2.0.3/db_1/bin/localconfig delete
/etc/oracle does not exist. Creating it now.
/home/oracle/product/10.2.0.3/db_1/bin/localconfig: line 715: /etc/init.d/init.cssd: No such file or directory
需要先执行:
[root@skate-test ~]# sh /home/oracle/product/10.2.0.3/db_1/bin/localconfig add