RSS订阅
RSS订阅TT数据库

Linux系统环境下安装Oracle 10g的艰难之旅

2008-8-29  选择字号:  | |
打印本文章

导读:本文介绍在redhat linux下安装oracle 10g的方法。在这里说明一下,Oracle 10g的g是grid的缩写,意为网格,目前较为前沿的网络计算技术。

关键词:Oracle Oracle10g Linux下的Oracle Linux下安装Oracle

正在加载数据...

  在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 ,依照提示完成整个安装。

原文出处:http://tech.ccidnet.com/art/1105/20080827/1557431_1.html
来源:赛迪网    作者:fen    
我已经进行了升级。我的数据库大小为200gb,并且不支持升级到10g)。O/S在HP-UX上。你能告诉我最好的升级方法是进行手动升级处理还是用导入/导出到新的Oracle数据库中?
我得到了一个错误信息,如“DIM-00019:创建服务错误。”我用你寄给我的解决方案解决这一问题,即:“手动创建和启动服务。”你能告诉我如何手动安装该服务吗?
我如何才能进行商业论证,让我的高管确信现在是时候将Oracle 9i (9.2.0.4)数据库Oracle 10g升级了?他们想知道要升级的五条最重要的理由。我如何准备一份令人信服的报告?
Oracle 10g数据库默认安装应该注意哪些问题?本文主要介绍Oracle 10g数据库默认安装应该注意的问题。
我们想删除分区(F:)并且创建一个新的扩展/逻辑分区。我的问题就是:如果我们对F盘进行备份、删除该分区并将备份数据还原到F盘中,那么在应用软件中还会出现这种问题么?

本专题介绍了SQL Server服务代理相关方面的知识,包括SQL Server服务代理基础知识的概述、消息类型、契约、队列、服务和路由、SEND命令和RECEIVE命令、性能方面的改进以及对运行状况的监控等等。

无论你是否计划将SQL Server数据库转换服务(DTS)包迁移到SQL Server集成服务(SSIS)或在SQL Server 2005里运行DTS包,都需要专家的一些建议。这一指南主要是包括SSIS的相关基础知识、技巧帮助你进行SSIS调整,还介绍了SSIS有经验的一些用户的具体信息等等。

子查询是一个嵌套在SELECT、INSERT、UPDATE 或DELETE语句,或者另一个子查询里的查询。一个子查询可以返回一行或多行结果给父查询。标量子查询是只返回一个值的查询:只有一个字段的一行记录。标量子查询可以在SQL语句的大多数位置,其中你可以使用一个表达式或一个实际值。
最新更新
专家答疑
技巧
Michael Hillenbrand
你能解释一下数据库公程师、数据库架构师以及数据库管理员之间有什么区别吗?数据库管理员:这是目前最普遍使用的对从事数据库相关的工作的人的头衔。数据库管理员是指……
Brian Peasland
对5GB大小的Oracle 7.3存档或删除的最佳办法是什么?为了便于管理机构查询,这些数据至少需要再用20年的时间。我们担心将来我们不能对它重新获取并迁入一个更新的……
Rudy Limeback
如何创建一个约束限制2007年1月1日之前的日期被录入?用CHECK约束就可以。如下面的示例……