日期:2014-05-16 浏览次数:20659 次
要在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