Linux
下安装
oracle10g
标准文档
system:Linux5.5(64bit)
Author:hx10
Date:2010/7/26 hangzhou
Blog: http://hx100.blog.51cto.com
1.
硬件需求
RAM
最小
512MB
, 推荐
1G
SWAP
最小
1GB
推荐
RAM
大小的两倍
官方文档的标准如下
RAM
|
Swap Space
|
Between 1024 MB and 2048 MB
|
1.5 times the size of RAM
|
Between 2049 MB and 8192 MB
|
Equal to the size of RAM
|
More than 8192 MB
|
0.75 times the size of RAM
|
在实际环境中,单个
swap
分区不要超过
2G
,但是可以划分多个
swap
分区,针对
PC-SERVER
服务器,一般看物理
CPU
有几个,就分多少个
2G
的
SWAP
空间。
临时空间
/tmp
最小
400MB
推荐
1GB
磁盘空间
最小
1.5G
用于
ORACLE
软件,
1.5G
用于启动数据库
推荐
1.5G
用于
ORACLE
软件,
1.5G
用于启动数据库
操作系统版本
参照
ORACLE
文档
2
.
OFA
最优灵活体系结构(从
ORACLE 8
开始引入)
提供了一种结构化方法,用于定位
ORACLE
需要与使用的各种文件
易于管理数据库各种文件的存储位置,
诸如备份以及还原数据库
OFA
还提供了能够监视与调整性能的基本功能(诸如减少多种文件之间的竞争)
在一台电脑上运行多个
ORACLE
版本时,如果每个版本都遵循
OFA
原则,那么多个版本之间就不会得重写另一个版本所需的文件。
3.
为
oracle
创建用户和组(用户名为
oracle
,当然也可是其他用户名)
A.
为
ORACLE
创建用户和组
# mkdir /u01 //安装oracle软件
# mkdir /u02 //存放oracle数据文件
# groupadd dba
# useradd -g oinstall -G dba -d /u01/oracle oracle
# passwd oracle
#chown oracle:oinstall /u02
B.
为oracle用户设置环境变量
#su – oracle
$vim ~/.bash_profile
在末尾增加
# User specific environment and startup programs
alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'
export TMP=/u01/oracle/tmp
export TMPDIR=$TMP
export ORACLE_BASE=/u01/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.1
export EDITOR=/usr/bin/vim
export ORACLE_SID=zjcsc
export PATH=$ORACLE_HOME/bin:/usr/bin:$PATH
export PATH=$PATH:/usr/bin/:/bin:/usr/bin/X11:/usr/local/bin
export PATH=$PATH:$ORACLE_BASE/common/oracle/bin
export ORACLE_TERM=xterm
export TNS_ADMIN=$ORACLE_HOME/network/admin
export ORA_NLS10=$ORACLE_HOME/nls/data
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/lib:/usr/lib:/usr/local/lib:$ORACLE_HOME/oracm/lib:$ORACLE_HOME/lib
export LIBPATH=$LIBPATH:$ORA_CRS_HOME/lib:$ORACLE_HOME/lib
export CLASSPATH=$CLASSPATH:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/jlib:$ORACLE_HOME/network/jlib:$ORACLE_HOME/JRE
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
C.
配置内核参数(具体参照联机文档)
#su – root
#vim /etc/sysctl.conf
在最末尾增加
kernel.shmmax = 4294967295
kernel.shmall = 268435456
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 262144
#sysctl -p (
使参数配置立即生效
)
解释如下:
kernel.shmmax = 4294967295 //该参数定义了共享内存段的最大尺寸(以字节为单位)。缺省为32M,对于oracle来说,该缺省值太低了,这里设置为4G 4*1024*1024*1024-1=4294967295
kernel.shmall = 268435456 //该参数表示系统一次可以使用的共享内存总量(以页为单位)。缺省值就是2097152,通常不需要修改,这里设置256m 256*1024*1024=268435456
kernel.shmmni = 4096 //这个内核参数用于设置系统范围内共享内存段的最大数量。该参数的默认值是 4096 。通常不需要更改
kernel.sem = 250 32000 100 128 //表示设置的信号量
fs.file-max = 65536 //表示文件句柄的最大数量。文件句柄设置表示在linux系统中可以打开的文件数量
net.ipv4.ip_local_port_range = 1024 65000 //端口范围
net.core.rmem_default = 4194304 // 默认的接收窗口大小
net.core.rmem_max = 4194304 // 接收窗口的最大大小
net.core.wmem_default = 262144 // 默认的发送窗口大小
net.core.wmem_max = 262144 // 发送窗口的最大大小
D.
限制
oracle
用户对资源的访问
D1.
限制用户访问资源
# vim /etc/security/limits.conf
在文件之后加入如下内容
#Add this line
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
D2.
限制用户
SHELL
对资源的访问
#vim /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
E.
验证用户
#vim /etc/pam.d/login
session required pam_limits.so
session required /lib/security/pam_limits.so
4.
安装必要的软件包
使用
yum
方式安装能省去很多麻烦,推荐(因为我们的重点在于
DB
,不在于
OS
)
[root@ocp ~]#
yum -y install binutils compat-libstdc++ elfutils-libelf elfutils-libelf-devel glibc glibc-common glibc-devel gcc gcc-c++ libaio-devel libaio libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel openmotif openmotif-devel libXp libXp-devel
(因为
ORACLE10g
不支持
RHEL5
,标注软件同样必须安装)
对于
Linux4.7
,官方需要的软件包如下:
binutils-2.15.92.0.2-13.EL4
compat-db-4.1.25-9
compat-libstdc++-296-2.96-132.7.2
control-center-2.8.0-12
gcc-3.4.3-22.1.EL4
gcc-c++-3.4.3-22.1.EL44
glibc-2.3.4-2.9
glibc-common-2.3.4-2.9
gnome-libs-1.4.1.2.90-44.1
libstdc++-3.4.3-22.1
libstdc++-devel-3.4.3-22.1
make-3.80-5
pdksh-5.2.14-30
sysstat-5.0.5-1
xscreensaver-4.18-5.rhel4.2
setarch-1.6-1
检查发现,缺少
sysstat-5.0.5-1
这个包,挂载光盘,按照如下格式安装:
# rpm –ivh sysstat-5.0.5-19.el4.i386.rpm
(2).
安装
Oracle
软件
先设置共享当前
X11
的访问权,即当前屏幕
[root@ocp ~]# xhost +
#su - oracle
定义
DISPLAY
变量,让显示输出到
X11
上,即当前
0.0
个显示设备上
[oracle@ocp ~]$ export DISPLAY=:0.0
$cd /var/oracle/oracle10g2
$./runinstaller (-ignoreSysPrereqs)
跳过检查,因为
ORACLE 10G
不支持
RHEL5
)
解压文件:
gunzip 10201_database_linux_x86_64.cpio.gz
cpio -idm <10201_database_linux_x86_64.cpio
重点注意:安装
oracle
的服务器不要修改
/etc/sysconfig/i18n
这个字体库,如果修改主机名的话,保证下面这
2
个文件是这种格式:
1
.
[oracle@oracle10g database]$ cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
192.168.0.7 localhost.localdomain localhost oracle10g
2
.
[oracle@oracle10g database]$ cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=oracle10g
安装系统的时候,最好使用英文模式,能避免很多问题的出现
小结:安装时经常出现的错误,主要集中在
A.SWAP
空间不够
---
可通过新增
swap
分区或是文件来解决
B.SELINUX
的限制,导致安装完成后无法访问库文件,改变
setenforce=0
让
SELINUX
处于交互模式,或是禁用,但本人认为最好的方式是根据
SELINUX
的提示,更改
context
值。
C.
没有正确安装和使用的另外一个原因是所需的软件包没有正确完整的安装。
另外,有些企业的
IT
希望能够让
ORACLE
服务器开机就启动,那么下面这些内容可能对你有用:
使用
vim
打开
/etc/oratab
(此文件是由
$ORACLE_HOME/root.sh
创建,所以
oracle
用户同样有权限修改)修改如下内容
orcl:/var/oracle/product/10.2.1:N --- > orcl:/var/oracle/product/10.2.1:Y
然后使用
root
身份进入修改
/etc/rc.local,
加入以下内容:
su - oracle <<EOF
lsnrctl start LISTENER
sqlplus /nolog<<EOS
connect sys/oracle as sysdba
startup
alter system register;
EOS
EOF
现在,保存退出,你会发现下次重开机,
oracle
服务器就自动启动了,当然在进入系统时,鉴于
DB
的规模,而需要不同的时间来初始化这样一个环境。
同样的,如果需要对
EM, listener, isqlplus
等也进行自动启动,可以依上来设置。
但一般企业中不会进行自动启动的设置,这违反了一些管理原则。
附:登录
sqlplus
的时候,会提示命令不存在,需要安装一个
rlwrap
官方下载地址
:http://utopia.knoware.nl/~hlub/uck/rlwrap/
安装过程
:
[root@oradb temp]# tar -xvf rlwrap-0.28.tar
[root@oradb temp]# cd rlwrap-0.28
[root@oradb rlwrap-0.28]# ./configure
这一步需要
readline
的库,如果报错如下
checking for readline in -lreadline... no
configure: error:
You need the GNU readline library(ftp://ftp.gnu.org/gnu/readline/ ) to build
this program!
需要下载
readline,
地址为:
ftp://ftp.gnu.org/gnu/readline/
下载后编译安装,然后继续,或者 yum -y install readline-devel
[root@oradb rlwrap-0.28]# make
[root@oradb rlwrap-0.28]# make install