Installing Oracle 10g on RHEL AS 4 Step-by-Step
Installing Oracle 10g on Red Hat Enterprise Linux Advanced Server 4 (RHEL 4)
本文描述了在Red Hat Enterprise Linux Advanced Server 4 (RHEL 4)上安装Oracle 10g(10.1.0.3.0) 必要的步骤和相关知识. 本文假定
你的Linux 操作系统已经安装完毕(“开发”一项里面全选“开发工具”,“原有的软件开发”),并且您应该具有一定的 Unix 操作系统背景知识.
配置RedHat AS 4
操作系统版本:Red Hat Enterprise Linux AS release 4 (Nahant)
Kernel 2.6.21-4.EL on an i686
按照常规来安装操作系统,记得要安装开发工具(gcc等必要工具).
必要的硬件信息检查:
检查内容 | 最小值 | 检查命令参考 |
物理内存 | 512M | # grep MemTotal /proc/meminfo |
交换空间 | 1.0 GB或者2倍内存大小 | # grep SwapTotal /proc/meminfo |
/tmp 空间 | 400 MB | # df -k /tmp |
软件所需空间 | 2.5 GB | # df -k (空间越大越好,如果是正式系统,应该进行详尽的规划) |
数据库文件 | 1.2 GB | # df -k (空间越大越好,如果是正式系统,应该进行详尽的规划) |
检查完如上各项之后, 应该修改核心参数.执行如下命令:
#vi /etc/sysctl.conf
#注释:#表示使用root用户操作,$表示使用oracle 用户进行操作.提示符后面的蓝色部分表示需要输入的命令,以下同.
在该文件末尾加入如下内容:
#-----------Begin from here--------------------------------------
kernel.shmall = 2097152
#kernel.shmmax = 2147483648
kernel.shmmax = 4294967295#liuzy suggested(根据实际情况变化)
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
#--------------End here--------------------------------------------
编辑完之后,保存,执行 # /sbin/sysctl -p命令操作来使我们所做的变更生效.
注:上面kernel.shmmax/kernel.sem等是典型的核心参数配置.您可能需要根据您的实际环境进行适当的变动.
关于这些核心参数的说明在Oracle的Oracle9i Installation Guide Release 2 (9.2.0.1.0) for UNIX Systems
中有很详细的说明.( http://download-west.oracle.com/docs/html/A96167_01/toc.htm )
然后,应该检查一下上面的操作是否正确:
# /sbin/sysctl -a | grep sem
# /sbin/sysctl -a | grep shm
# /sbin/sysctl -a | grep file-max
# /sbin/sysctl -a | grep ip_local_port_range
为Oracle用户设定Shell的限制
一般来说,出于性能上的考虑,还需要需要进行如下的设定,以便改进Oracle用户的有关 nofile(可打开的文件
描述符的最大数)和nproc(单个用户可用的最大进程数量)
# vi /etc/security/limits.conf
# 添加如下的行
* soft nproc 2047
* hard nproc 16384
* soft nofile 1024
* hard nofile 65536
也有一说是:暂时按照上一种
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
添加如下的行到/etc/pam.d/login 文件:
session required /lib/security/pam_limits.so
编辑 /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
之后,
#source /etc/profile
执行$ unlimit验证一下.
检查并安装相关补丁
在这个版本的RHEL上安装Oracle,必须要有几个软件包. 确认以下 rpm包都已经安装:
make-3.79
binutils-2.11
openmotif-2.2.2-16
setarch-1.3-1
compat-db-4.0.14.5
compat-gcc-7.3-2.96.122
compat-gcc-c++-7.3-2.96.122
compat-libstdc++-7.3-2.96.122
compat-libstdc++-devel-7.3-2.96.122
# rpm -qa | grep compat
# 在我的机器上输出如下:
compat-gcc-c++-7.3-2.96.122
compat-libstdc++-7.3-2.96.122
compat-libstdc++-devel-7.3-2.96.122
compat-glibc-7.x-2.2.4.32.5
compat-db-4.0.14-5
compat-gcc-7.3-2.96.122
# rpm -qa | grep openmotif
openmotif-devel-2.2.2-16
openmotif-2.2.2-16
# rpm -qa | grep setarch
setarch-1.3-1
上面显示的内容是在笔者已经安装了具体的RPM包之后的结果.一般情况下,你的系统上的输出结果和这个不同.如果个
别包没有安装,把系统安装光盘mount上,找到具体的软件包(大多数在第三张光盘上),然后利用如下的命令来安装相应
的包:
# rpm -ivh compat.....rpm
要额外注意的是,这些软件包之间是有依赖性的,先后的顺序要找好.否则会报告不能安装的错误.
此外,最好验证一下 gcc和glibc的版本(要求是gcc-3.2.3-2 或者更高)
#gcc -v
#rpm -q glibc
注:如果验证不成功也没有关系(只是警告),照样可以继续安装
创建用户和相关的组
# /usr/sbin/groupadd oinstall
# /usr/sbin/groupadd dba
#/usr/sbin/useradd -g oinstall -G dba oracle
如果只是测试目的的话,不创建oinstall组也没什么. 不过还是规范一点比较好.如果oracle 用户和dba组等已经存在,作
适当的调整即可.
#mkdir -p /opt/app/oracle/product/10.1.0/db_1
检查并调整环境变量
登录为oracle用户
#passwd oracle
#111111
#111111
# su - oracle
$ cd
$ vi .bash_profile
#添加如下内容,你的具体值应该不会和这个完全相同.
export ORACLE_BASE=/opt/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.1.0/db_1
export ORACLE_SID=ORCL
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
export LC_CTYPE=en_US.UTF-8
然后执行
$ source .bash_profile
使环境变量生效. /opt/app/oracle 等目录应该建立好并做合适的授权.
$exit
#chown oracle.oinstall -R /opt/app/ #让oinstall 组的oracle用户对/opt/app下面拥有权限
注:如有必要修改/etc/redhat-release内容为:Red Hat Enterprise Linux AS release 3 (Taroon)
开始安装10g
使用winscp拷贝ship.db.lnx32.cpio.gz到相应的目录下面比如:/
#gunzip ship.db.lnx32.cpio.gz
#cpio –idcmv < ship.db.lnx32.cpio
$ sh /Disk1/runInstaller
如果不能出现安装画面,查看本文后面的FAQ。
出现提示并按照提示执行后:
Creating the Oracle inventory pointer file (/etc/oraInst.loc)
Changing groupname of /opt/app/oracle/oraInventory to oinstall.
非常值得称道的是,10g的安装相比以前的多了一个 Checking operating system certification 的步骤。特别实用。
安装文件会自动检测所需的条件。如果有不符合的地方,安装程序会报告给你.并会给出具体原因。大大减少了出错的可能.
下面是检查成功输出的内容 :
Checking operating system certification
Expected result: One of redhat-2.1,redhat-3,UnitedLinux-1.0
Actual Result: redhat-3
Check complete. The overall result of this check is: Passed
=======================================================================
Checking kernel parameters
Checking for VERSION=2.4.9.25; found VERSION=2.4.21. Passed
Checking for shmall=2097152; found shmall=2097152. Passed
Checking for shmseg=10; found shmseg=4096. Passed
Checking for semmsl=250; found semmsl=250. Passed
Checking for semmni=128; found semmni=128. Passed
Checking for filemax=65536; found filemax=65536. Passed
Checking for shmmni=4096; found shmmni=4096. Passed
Checking for semmns=32000; found semmns=32000. Passed
Checking for semopm=100; found semopm=100.Passed
Checking for shmmin=1; found shmmin=1. Passed
Checking for shmmax=2147483648; found shmmax=2147483648. Passed
Check complete. The overall result of this check is: Passed
=======================================================================
Checking recommended operating system packages
Checking for make-3.79; found make-3.79.1-17. Passed
Checking for binutils-2.11.90.0.8-12; found binutils-2.14.90.0.4-26. Passed
Checking for gcc-2.96; found gcc-3.2.3-20. Passed
Checking for openmotif-2.1.30-11; found openmotif-2.2.2-16. Passed
Check complete. The overall result of this check is: Passed
=======================================================================
Checking recommended glibc version
Expected result: 2.2.4.31.7
Actual Result: 2.3.2.95.3
Check complete. The overall result of this check is: Passed
=======================================================================
Validating ORACLE_BASE location (if set)
Check complete. The overall result of this check is: Passed
=======================================================================
其他的步骤比较清晰,不再赘述.
最后系统会提示你运行root.sh文件.按照提示做即可.
FAQ (在Linux平台安装Oracle比较常见)
1. 不能启动安装界面.运行runInstaller提示信息类似如下:
xlib:connection to "localhost:0.0" refused by server
xlib:client is not authorized to connect to server
Exception in thread "main" java.lang.InternalError:can't connect to x11 window server using "localhost:0.0"
at .......
解决办法: 设定你的DISPLAY环境参数.# export DISPLAY= your_IPaddress :0.0把your_IPaddress换成你的IP.或者
用root简单的执行一下# xhost + (要注意这样会有安全上的隐患)
2.安装界面显示很多"口口"样子的乱码
解决办法:查看locale输出
# locale
LANG=en_US.UTF-8
LC_CTYPE=zh_CN.GB18030
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
执行#export LC_CTYPE=en_US.UTF-8然后重新调用安装程序.
3. 用IE登录Linux服务器上的em出现乱码
在Linux(Unix) 环境下成功安装了Oracle 10g,从windows下用IE浏览器登录 10g 的em, 按钮是"口口"这样的方框.
解决办法: 参考 http://www.dbanotes.net/Oracle/Oracle-10g-font.properties.htm或者是参考这个 http://www.linuxsir.org/bbs/showthread.php?s=&threadid=98591后者比较彻底,前者比较"Quick & Dirty ".
4.创建数据库的时候出现ORA-03113的错误
解决办法: 查看核心参数是否调整正确.参考http://www.dbanotes.net/Oracle/ORA-03113.htm
5. RedHat 9 / FC1等系统10g不支持如何安装?
解决办法:在10g不支持的Linux发行版上安装10g的解决方法
1). 运行runInstaller -ignoreSysPrereqs,这样会跳过检查
2). 摘自http://www.puschitz.com/修改/etc/redhat-release文件:
#su - root
#cp /etc/redhat-release /etc/redhat-release.backup
#cat > /etc/redhat-release << EOF
Red Hat Enterprise Linux AS release 3 (Taroon)
EOF
安装完毕,执行如下操作:
#su - root
#cp /etc/redhat-release.backup /etc/redhat-release
3). http://www.dbanotes.net/Oracle/10G-Beta-Install-Bug.htm
同样的思路,我们可以修改Oracle 的install/oraparam.ini文件达到目的
6 如何关掉那些 ocssd.bin 进程?
解决办法:编辑/etc/inittab文件(做好备份)
注释掉这一行:
h1:3:respawn:/etc/init.d/init.cssd run >/dev/null 2>&1 </dev/null
参考信息
Werner Puschitz 的 10g 安装指南 http://www.puschitz.com/InstallingOracle10g.shtml
Werner Puschitz 的站点的文章很翔实,如果您遇到了本文没有说清的问题,可以去看看那里.本文借鉴了该站点不少内容.
ITPUB论坛10g版块Kamus等的大作http://www.itpub.net/forumdisplay.php?s=&forumid=70
关于核心参数等信息请查找 Googlehttp://www.google.com/
Oracle Database Quick Installation Guide 10 g Release 1 (10.1) for Linux x86
http://download-west.oracle.com/docs/html/B10813_01/toc.htm
Oracle Database Installation Guide 10 g Release 1 (10.1) for UNIX Systems
http://download-west.oracle.com/docs/html/B10811_02/toc.htm
DBAnotes.net 我的站点包括不少和Oracle有关的信息 http://www.dbanotes.net/
启动
1.使用oracle账户登陆
2.lsnrctl start
3.sqlplus /nolog
4.conn / as sysdba
5.startup
排错(肯定会碰到问题)
1.根据提示 cp /opt/app/oracle/product/10.1.0/db_1/dbs/init.ora
/opt/app/oracle/product/10.1.0/db_1/dbs/initORCL.ora
2.清除initORCL.ora里面所有的内容
3.把这句话写入:SPFILE='/opt/app/oracle/product/10.1.0/db_1/dbs/spfileorcl.ora'
4.再次启动,如果还是不成功,可能会是这种提示:
ORA-01990: error opening password file '/opt/app/oracle/product/10.1.0/db_1/dbs/orapw'
5.cp /opt/app/oracle/product/10.1.0/db_1/dbs/orapworcl /opt/app/oracle/product/10.1.0/db_1/dbs/orapw
6.注意可能需要修改权限chown oracle.oinstall /opt/app/oracle/product/10.1.0/db_1/dbs/orapw
7.再次启动,成功!
查看编码:
SELECT * FROM NLS_DATABASE_PARAMETERS;
修改编码为AL16UTF16
更改服务器端字符集
1.推荐方法
SQL>conn /as sysdba 另:conn system/manager也可(先确保系统已采取OS认证方式,否则会连接不成功)
SQL>shutdown immediate 必须先关闭database,才能执行下面的启动操作
SQL>conn /as sysdba 以超级权限连接(先确保系统已采取OS认证方式,否则会连接不成功)
SQL> startup mount;
SQL> alter system enable restricted session;
SQL> alter system set job_queue_processes=0;
SQL> alter database open;
SQL> alter database character set AL16UTF16;
SQL> alter database national character set utf16;
SQL> shutdown immediate; 更改完关闭数据库
SQL> startup; 正常启动使其生效
2.参考方法
update props$ set value$='ZHS16GBK' WHERE NAME='NLS_CHARACTERSET';
update props$ set value$='ZHS16GBK' WHERE NAME='NLS_NCHAR_CHARACTERSET';
commit;
更改客户端字符集(linux)
export NLS_LANG=.AL16UTF16
或export NLS_LANG=.ZHS16GBK
更改客户端字符集为ZHS16GBK(windows下)
SET NLS_LANG=AMERICAN_AMERICA.ZHS16GBK(AMERICAN_AMERICA.AL16UTF16)
创建表空间
--drop user先删掉用户所有信息
drop user hbdx CASCADE;
drop tablespace hbdx_data including contents and datafiles;
drop tablespace php_data including contents and datafiles;
commit;
1.创建表空间hbdx_data时将数据文件设置为自动增长方式
create tablespace hbdx_data datafile '/opt/app/oracle/oradata/orcl/hbdx_data.dbf' size 100M autoextend on next 100M maxsize UNLIMITED extent management local;
(next参数指定每次自动增长的大小,maxsize为数据文件的最大大小)
2.创建表空间php_data时将数据文件设置为自动增长方式
create tablespace php_data datafile '/opt/app/oracle/oradata/orcl/php_data.dbf' size 100M autoextend on next 100M maxsize UNLIMITED extent management local;
创建用户
-- Create the user
create user hbdx identified by hbdx default tablespace hbdx_data temporary tablespace temp profile DEFAULT ACCOUNT UNLOCK;
-- Grant/Revoke role privileges
grant connect to hbdx with admin option;
grant dba to hbdx with admin option;
grant resource to hbdx with admin option;
-- Grant/Revoke system privileges
grant unlimited tablespace to hbdx with admin option;
commit;
数据导入
imp hbdx/xxxx@orcl或 imp hbdx/xxx
1.Enter insert buffer size (minimum is 8192) 30720> 65536
Export file created by EXPORT:V10.02.01 via conventional path
import done in US7ASCII character set and ZHS16GBK NCHAR character set
import server uses ZHS16GBK character set (possible charset conversion)
export client uses ZHS16GBK character set (possible charset conversion)
export server uses AL16UTF16 NCHAR character set (possible ncharset conversion)
List contents of import file only (yes/no): no >
1.Export file created by EXPORT:V08.01.06 via conventional path
import done in US7ASCII character set and ZHS16GBK NCHAR character set
import server uses ZHS16GBK character set (possible charset conversion)
export client uses ZHS16CGB231280 character set (possible charset conversion)
export server uses ZHS16CGB231280 NCHAR character set (possible ncharset conversion)
如果出现这两种情况,需要运行 export NLS_LANG=.ZHS16GBK