Oacle配置Linux系统
Interlude
|
1#
Interlude 发表于 2007-12-27 00:01
Oacle配置Linux系统
要在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 |