linux下安装oracle 10g 的艰难之旅

摘要:
在linux下安装oracle是一项艰巨的任务,比安装linux操作系统本身要复杂得多。本文介绍如何在红帽linux下安装Oracle10g。当然,Oracle10g需要安装更多的软件模块。稍后我将逐一解释这些软件模块。接下来,我们将检查是否满足Oracle10g的安装要求,并以表格的形式列出这些要求。参数值文件semmslsemmnssemopmsmmni2503200100128/proc/sys/kernel/sem shmall 2097152/proc/sys/nernel/shmall shmmax物理内存大小的一半/proc/sys/内核/smmax shmman4096/proc/sys/内核/shmni文件-max65536/proc/sys/fs/file max ip_local_port_range102465000/proc/sys/ent/ipv4/ip_local_port范围确保当前参数值大于或等于上表中列出的值。为了提高在Linux系统上运行软件的性能,必须为oracle用户设置以下shell限制。
在linux下安装oracle是一件令人生畏的事情,其复杂程度远远超过安装linux操作系统本身。如果能够进行成功的安装oracle,那么同时也就顺便掌握了linux一些技术。本文介绍在redhat linux 下安装oracle 10g 的方法。在这里说明一下,Oracle 10g的g是grid 的缩写,意为网格,目前较为前沿的网络计算技术。

  Oracle 10g 对软硬件的要求都非常的高,所以要玩转的话的花不少银子。首先来看看它对硬件的要求:内存512兆(建议1G),cpu 主频2.0G以上,硬盘转速7200转以上(建议使用scsi硬盘),依此条件,我看买台服务器才行。其次是软件要求:在oracle 官方的文档里,对于x86系列支持的操作系统只有3种(radhat ES/AS 2.1(x86),redhat ES/AS 3(x86),unitedlinux1.0(x86) ),如果只有redhat 9也是可以安装的,不过要麻烦一点点。当然oracle 10g需要更多的软件模块才能进行安装,这些软件模块我将在后面逐一说明。在本例中,使用RedHat ES 3(x86)作为操作平台,并且安装了xwindow。

  接下来,我们检查是否符合oracle 10g 的安装要求,以表格的形式列出。首先是硬件情况。以root登录系统,并且启动x-window.如果用下表命令输出的值大于或等于建议值,请

  检查项目 命令/方法 建议值

  内存 #grep MemTotal /proc/meminfo 512MB

  交换分区 #grep SwapTotal /proc/meminfo 1GB

  /tmp目录空闲区 #df –k /tmp 400MB

  硬盘空闲空间 #df -k 4GB

  继续往下,检查软件需求。对redhat ES 3(x86),需要如下的软件包:

  · Gnu gcc package, gcc-3.2.3-2 or 更高

  下面的包也必须被安装:· 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

  为了保证系统满足需求,执行下面的步骤检查安装的linux版本和安装的套件。

  检查项目 命令/方法 建议值

  Linux 版本 #cat /etc/issue ES 3

  已安装的包 #rpm -q package_name 安装所需包(上表所列)

  到这里我们已经全面的检查了安装oracle 10g所要求的软硬件环境,接着我们就要为安装创建组和用户。

  下面的组和用户必须存在

  The oinstall group (the oracle inventory group)

  The dba group (the OSDBA group)

  The oracle user (the oracle owner)

  如果上面的组和用户不存在,用下面的步骤创建它们。(1)先查看这些组和用户是否存在:

  #grep oinstall /etc/group

  #grep dba /etc/group

  (2)创建安装oracle 所需的组和用户

  #groupadd osintall

  #groupadd dba

  #useradd –g oinstall –G dba oracle 检查一下oracle 是否属于组 oinstall 和 dba (#id oracle) 再给oracle 设置一个用户口令 #passwd oracle 输入两次密码。

  创建安装所需的目录 /u01/app/oracle (the oracle base directory), /u02/oradata (an optional default directory ),用下表的命令形式创建它.然后改变它的目录权限。

  创建目录 更改权限

  #mkdir –p /u01/app/oracle #chown –R oracle:Oinstall /u01/app/oracle /u02/oradata

  #mkdir –p /u02/oradata #chmod –R 755 /u01/app/oracle /u02/oradata

  配置内核参数,下表是oracle 推荐的内核参数值,请参考。

  Parameter Value File

  semmslsemmnssemopmsemmni 25032000100128 /proc/sys/kernel/sem

  shmall 2097152 /proc/sys/kernel/shmall

  shmmax Half the size of physical memory /proc/sys/kernel/shmmax

  shmmni 4096 /proc/sys/kernel/shmmni

  file-max 65536 /proc/sys/fs/file-max

  ip_local_port_range 1024 65000 /proc/sys/net/ipv4/ip_local_port_range

  确保当前的参数值大于或等于上表所列。那么怎样查看这些参数值呢?用命令 #/sbin/sysctl –a | grep <参数名>,例如查看semmsl,用 #/sbin/sysctl -a | grep sem,余下的与此类似。逐个察看这些参数值,如果参数值不满足要求,就需要修改它们。请完成下面这些步骤

  a.用文本编辑器,创建或者编辑/etc/sysctl.conf文件,添加或修改如下的行

  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

  b.改变当前内核参数的值,用命令 #/sbin/sysctl –p 来实现。

  为了提高在linux系统上运行软件的性能,必须对oracle用户设置下列shell 限定。

  Shell Limit Item in limits.conf Hard Limit

  Maximum number of open file descriptors nofile 65536

  Maximum number of processes available to a single user nproc 16384

  现在创建这些限定:

  1. 加入下面的行到文件/etc/security/limits.conf

  * soft nproc 2047

  * hard nproc 16384

  * soft nofile 1024

  * hard nofile 65536

  2. 加入下面的行到文件/etc/pam.d/login ,假如它不存在的话

  session required /lib/security/pam_limits.so

  3.根据oracle 用户的默认shell,对默认 shell start-up文件作如下改变,如果是Bourne, Bash, or Korn shell,修改环境变量/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

  如果是c shell,则环境变量文件 /etc/csh.login的修改值如下:

  if ( $USER == "oracle" ) then

  limit maxproc 16384

  limit descriptors 65536

  endif

  接下来挂接光盘,#mount /dev/cdrom /mnt/cdrom 。

  以oracle 用户名登录系统,配置oracle 用户的环境。以oracle 帐号用安装器来安装oracle,但是开始运行安装器之前,还得设定oracle用户的环境变量,因此必须:

  ● 设置shell startup文件的umask 为022

  ● 设置DISPLAY, ORACLE_BASE, and ORACLE_SID 的环境变量。下面这些步骤是对这些环境变量进行设置的方法:

  1、 开启一个终端会话

  2、 确认xwindow 能正常显示。#xhost +

  3、 改变用户为oracle. $ su – oracle

  4、 检查oracle用户的默认shell. $echo $SHELL

  5、 用文本编辑器修改oracle用户的环境变量

  ●bash shell on redhat

  $vi .bash_profile

  ●c shell

  %vi .login

  6、 把下面的行插入上面编辑的文件中

  umask 022

  7、 保存文件并退出

  8、 运行shell开始脚本:

  ●Bash shell on Red Hat $ . ./.profile

  ●C shell % source ./.login

  9、设置环境变量

  ●Bash shell

  $ ORACLE_BASE=/u01/app/oracle

  $ ORACLE_SID=sales

  $ export ORACLE_BASE ORACLE_SID

  ●c shell

  % setenv ORACLE_BASE /u01/app/oracle

  % setenv ORACLE_SID sales

  10、确认ORACLE_HOME and TNS_ADMIN 的环境变量不被用户设置

  ●Bash shell

  $ unset ORACLE_HOME

  $ unset TNS_ADMIN

  ●c shell

  % unsetenv ORACLE_HOME

  % unsetenv TNS_ADMIN

  11、再检验一下上面设定的环境变量是否正确。

  $ umask

  $ env | more

 进入安装器(runInstaller)所在的目录 $ cd /tmp 运行安装 $ /mnt/cdrom/runInstaller ,依照提示完成整个安装。

免责声明:文章转载自《linux下安装oracle 10g 的艰难之旅》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇饮水机电路-工作剖析如何有效使用Project(1)——编制进度计划、保存基准下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

oracle的表分区的定义与操作

一、表分区 (一)表分区的分类 1、范围分区(range) 2、散列分区(hash) 3、列表分区(list) 4、复合分区:范围-哈希(range-hash)、范围-列表(range-list) (二)范围分区: 范围分区是应用范围比较广的分区方式,它是以列的值得范围来作为分区的划分条件,将记录存放到列值所在的range分区中。 例:按照时间创建表分区。...

shell实现trim函数-去除字符串两侧的空格(包括tab,space键)

shell实现trim函数效果去除字符串两侧的空格,以下三个命令等价,都能实现 sed 's/^s*//' totrim.txt |sed 's/s*$//'>trimed.txtsed 's/^s*//;s/s*$//' totrim.txt>trimed.txtsed -e 's/^s*//' -e 's/s*$//' totrim.txt...

linux中编译安装时的make test

今天在安装用来缓存um用户忘掉密码时重置密码信息的redis服务时,发现文档中有一个步骤非常的不错:  make test 能检测之前进行的make编译步骤中遗漏的错误,确保服务的编译正常。   第一次知道make install的时候也可以指定安装的路径,算是学到了。...

迅为-IMX6Q开发-非设备树uboot-修改默认环境变量

iTOP-iMX6 开发板烧写好之后,默认是 android 系统 9.7 寸屏幕的系统参数和屏幕参数。如下图。本文档主要介绍如何修改默认启动参数。 70.1  重要的环境变量 比较重要的环境变量或者说经常使用的环境变量,已经在上图中的红色方框中。 主要是:bootsystem、lcdtype 和 bootargs。这些参数都可以在 uboot 源码中进...

如何指定GCC的默认头文件路径

如何指定GCC的默认头文件路径 网上偶搜得之,以之为宝:)原地址:http://blog.chinaunix.net/u/28781/showart.php?id=401631===============================================================================在交叉编译的时候我们需要...

dapper之连接数据库(Oracle,SQL Server,MySql)

  因为项目需求,需要项目同时可以访问三个数据库,因此本人经过一番研究,得出以下代码。    1.建立公共连接抽象类(DataBase) 1 public abstract class DataBase 2 { 3 /// <summary> 4 /// 5 ///...