要在Linux上运行Oracle,首先,需要正确安装和配置linux,使得oracle运行时有足够的资源。
准备工作:要正确地为oracle配置linux,需要进行几个步骤,其中涉及到正确配置Linux的内核参数,有些则与硬件设备的安装有关。如存储器的设置、系统规模的定制等。
1、1 最低要求:512M物理内存、1GB的交换空间、/tmp至少必须有400MB空间、Oracle数据文件(安装基本的示例数据库至少需要1.2G的空间。
1、2 配置文件系统:linux文件系统最少可以只有3个分区:但必须有/、swap。在安装过程中通常会创建以下分区:
/home (用作linux用户的主目录,oracle的用户帐号也创建在/home目录下,但$oracle_home目录通常不存储在这里)
/tmp(用于存放临时文件,oracle安装会用到这个目录,系统正常工作时也会用它)
/usr(用于安装程序,但oracle的程序并不安装在这里,而是在$oracle_home目录中。$oracle_home通常设置在/opt目录下)
/var(存储长度可变的文件夹,如日志文件、脱机打印文件等)
/usr/local(存储本地程序及配置文件。orcale会存放某些程序,但大部分在$oracle_home目录下)
/opt(用于安装可选程序。通常$oracle_home目录就在这里)
如创建RAC群集,还应考虑用于存储数据文件的共享存储体。
1.3 选择linux组件:
oracle 10G的初始版本支持以下版本的linux:
Oracle 10g release1(10.1.0)、Oracle 10g release 2 (10.2.0)对这些发行版本,需要事先安装软件开发包,以便安装gcc编译器和相关的库。如要升级Linux内核,还需要安装内核开发包。
1、Redhat Linux的软件包:
开发工具:gcc编译器、Perl、python及调试器等。内核开发:因为安装oracle与升级Linux均需要它
2、系统+组件:
系统:Redhat enterprise Linux 3
组件:gcc-3.2.3-2
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
openmotif-2.2.2-16
setarch-1.3-1
Oracle 10R2所需的系统组件:
系统+组件:
系统:Redhat enterprise Linux 3
组件:make-3.79.1
gcc-2.3.2-95.20
glibc-2.3.2-95.20
compat-db-4.0.14-5
compat-gcc-7.3-2.96.128
compat-gcc-c++-7.3-2.96.128
compat-libstdc++-7.3-2.96.128
openmotif21-2.1.30-8
setarch-1.3-1
安装前:
2.1 配置内核参数:修改内核参数的方法有好几种,比如可通过修改/proc伪文件系统的方法动态地修改内核参数。Linux需要配置的参数包括信号量、共享内存、可同时打开的最大文件数以及端口号的范围。信号量参数全部保存在/proc/sys/kernel/sem文件中,分别是semmsl、semmns、semopm和semmni.这些参数的配置必须达到下面的最低标准:
参数 值 描述
semmsl 250 每一个ID的最大信号量数目
semmns 32000 系统中信号量的最大数目(》=semmni*semmsl)
semopm 100 每次信号量调用的最大操作次数
semmni 128 信号量标识符的最大数目
SGA的大小由/proc/sys/kernel/shmall、/proc/sys/kernel/shmmax和/proc/sys/kernel/shmmni等文件中的共享内存参数决定,这些文件描述如下:
参数 值 描述
shmall 297152 系统共享内存页面的最大数目
shmmax 内存容量的1/2 共享内存的最大尺寸
shmmni 4096 系统共享内存段的最大数目
除此而外,需要设置的参数还包括/proc/sys/fs/file-max、/proc/sys/net/ipv4/ip_local_port_range,描述如下:
参数 值 描述
/proc/sys/fs/file-max 65536 Linux分配的最大文件句柄数目
/proc/sys/net/ipv4 1024-6500 IP端口的范围(1024~4999 default,只允许3975个向外的连接,但这不够oracle的使用)
ip_local_port_range
<1>、使用/proc伪文件系统配置内核参数
如查看当前SHMMAX( Maxinum shared memory size)参数的值,可以输入:cat /proc/sys/kernel/shmmax
修改SHMMAX,只须将新的参数值写入/proc/sys/kernel/shmmax伪文件就ok.如下所示:
echo 2147483648>/proc/sys/kernel/shmmax。它将共享内存的大小设置为2147483648bytes,即2G,已经足够安装oracle 10G。对于32位,要以创建2.7G的SGA。
每次启动时均自动执行上述命令,可以将它们写入/etc/rc.local文件,该文件的shell脚本为:
# configuration parameters for oracle
echo "250 32000 100 128">/proc/sys/kernel/sem
echo "2097152">/proc/sys/kernel/shmall
echo "2147483648">/proc/sys/kernel/shmmax
echo "4096">/proc/sys/kernel/shmmni
echo "65536">/proc/fs/file-max
echo "1024 65000">/proc/net/ipv4/ip_local_port_range
<2>使用/etc/sysctl.config文件配置内核参数
可将参数写入/etc/sysctl.config文件,就可以在系统启动时设置内核参数。/etc/sysctl.config文件中包含/proc目录下的文件及其值。如下所示:
kernel.shmall=2097152
kernel.shmmax=2147483648
kernel.shmmni=4096
kernel.sem=250 32000 100 128
fs.file-max=65536
net.ipv4.ip_local_port_range=1024 65000
可运行/sbin/sysctl-p程序载入这些数据,并检查这些参数的设置是否正确。默认情况下,redhat linux启动时会读取这个文件,对于suse linux,则可以使用以下命令的激活该文件:
/sbin/chkconfig boot.sysctl on
<3> 添加用户及用户组:
安装oracle之前,还要为oracle创建用户帐号。Oracle的帐号必须属于oinstall用户组,且必须为dba组的成员。用户组通过groupad(/usr/sbin/groupadd)命令添加:
groupadd oinstall
groupadd dba
添加用户帐号可以使用useradd 命令(/usr/sbin/useradd),如下:
useradd -g oinstall -G dba oracle (on redhat)
useradd -m -g oinstall -G dba oracle (on SUSE)
上述命令将创建一个oracle用户帐号,其主目录为/home/oracle,作为oinstall中的主要用户组并将它作为dba组的一个成员。
<4> 为oracle用户配置shell限制:
除了上述强制性的,还需要完成一些非强制性的任务。主要是提高oracle用户的shell限制,以便可以创建和打开大文件。完成这些工作需要修改/etc/profile文件,提高其中设置的上限。将下列内容添加到/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
此外,还需要在/etc/security/limits.conf文件加入以下几行内容,以修改单个用户允许使用的进程和文件数目。
* soft nproc 2047
* hard nproc 16384
* soft nofile 1024
* hard nofile 65536
最后,再修改/etc/pam.d/login文件,在其中添加下面一行代码:
sessionrequired/lib/security/pam_limits.so
这些任务完成以后,准备工作就基本结束了。剩余的任就是创建保存oracle二进制文件和数据文件的目录并设置好oracle的环境,然后就可以开始安装oracle。
<5> 创建目录结构:
Oracle安装需要创建3个目录,这3个目录各有不同的用处。
.oracle base(作为oracle的基本目录)
.oracle Inventory(用于统一安装程序 oracle universal installer(OUI)
.oracle home (用于安装某些特定的软件,通常做为oracle base 目录的子目录)
通常使用/u01、/u02.....作为数据文件的安装点。使用/opt/oracle作为oracle home目录。而oracle的inventory目录则通常为oracle_base/oraInventory.
典型oracle 10g系统应当具有下面类似的目录结构:
/opt/oracle:(oracle base目录)
/opt/oracle/oraInventory:(oracle inventory目录)
/opt/oracle/product/10.2.0/db_1:(oracle release 10.20的主目录)
/opt/oracle/product/10.2.0/client_1:(存放客户端软件)
/u01/app/oracle/oradata/SID:(用于存放指定的系统标识SID的日志或数据文件
/u02/app/oracle/oradata/SID:(用于存放指定的系统标识SID的数据文件
<6>设置oracle环境:
若临时目录没有足够的空间,则应当按以下方式设置Temp和tempdir环境变量:
temp=/u01/temp
tmpdir=/u01/temp
export temp tmpdir
最后是设置oracle_base和oracle_sid环境变量:
oracle_base=/opt/oracle
oracle_SID=orac
export oracle_base oracle_sid
mkdir /opt/oracle
chown -R oracle.oinstall /opt/oracle
chmod -R 755 /opt/oracle