ITPub博客

首页 > 数据库 > Oracle > [转载]图解centos安装oracle10g

[转载]图解centos安装oracle10g

Oracle 作者:xiewyukai 时间:2013-02-28 16:09:51 0 删除 编辑
1、检查并安装ORACLE必须的软件包
CENTOS上安装Oracle,需要将ORACLE所必须的软件包逐一安装参考Oracle安装文档关于Red Hat Enterprise Linux 4.0部分,所需的软件包如下:
binutils-2.17.50.0.6-6.el5
compat-db-4.2.52-5.1
compat-libstdc++-33-3.2.3-61
control-center-2.16.0-16.el5
gcc-4.1.2-42.el5
gcc-c++-4.1.2-42.el5
glibc-2.5-24
glibc-common-2.5-24
libgnome-2.16.0-6.el5
libstdc++-4.1.2-42.el5
libstdc++-devel-4.1.2-42.el5
make-3.81-3.el5
ksh-20060214-1.7
sysstat-7.0.2-1.el5
gnome-screensaver-2.16.1-8.el5
setarch-2.0-1.1
libXp-1.0.0-8.1.el5
1.1、检查必须安装的软件包是否完整,可以运如下命令检查所需包是否都已安装
# rpm -q binutils-2.17.50.0.6-6.el5 compat-db-4.2.52-5.1 compat-libstdc++-33-3.2.3-61 control-center-2.16.0-16.el5 gcc-4.1.2-42.el5 gcc-c++-4.1.2-42.el5 glibc-2.5-24 glibc-common-2.5-24 libgnome-2.16.0-6.el5 libstdc++-4.1.2-42.el5 libstdc++-devel-4.1.2-42.el5 make-3.81-3.el5 ksh-20060214-1.7 sysstat-7.0.2-1.el5 gnome-screensaver-2.16.1-8.el5 setarch-2.0-1.1 libXp-1.0.0-8.1.el5使用上边的命令对软件包是否安装进行检查,如果出现“not found”则表示该软件包没有安装,需将其安装上。
1.2、安装ORACLE必须的软件包
首先讲CENTOS v5.2的系统安装光盘放入光驱中,然后在虚拟机光驱设置中将CDROM设置为主机光驱,如下:
进入CENTOS系统中,打开【终端】,首先在/mnt下创建文件夹cd,然后加载CDROM/mnt/cd目录,之后进入/mnt/cd目录,查看加载的光驱文件,一切OK之后进入CentOS文件夹,开始rpm的安装,如下:
现在开始安装ORACLE必须的软件包,安装软件包命令如下:
rpm –Uvh 软件包名称.rpm
安装过程如下图:
所有软件包安装完成后,检查结构如下:
 
2.修改系统内核参数
修改/etc/sysctl.conf文件,增加如下内容:
# vi /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
net.core.rmem_default = 1048576
net.core.rmem_max = 1048576
net.core.wmem_default = 262144
net.core.wmem_max = 262144
# chkconfig /etc/sysctl.conf
      
修改/etc/security/limits.conf(设置最大打开文件数),增加如下内容:
# vi /etc/security/limits.conf
... ...
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
             
修改/etc/pam.d/login文件,增加如下内容:
# vi /etc/pam.d/login
... ...
session required /lib/security/pam_limits.so
session required pam_limits.so
         
修改vi /etc/profile文件,增加如下内容:
# vi /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
             
    3.用户设置、配置
  添加oinstalldba用户组
              # groupadd -g 501 oinstall
# groupadd -g 502 dba
添加oracle用户
# useradd -g oinstall -G dba -u 501 -d /oracle oracle
修改/oracle权限
# chown -R oracle:oinstall /oracle
使用oracle用户登录,修改.profile文件
# su – oracle
$ pwd
/oracle
$ vi ./.bash_profile

ORACLE_BASE=/oracle/app
export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/oracle/product/10.2.0/db_1
export ORACLE_HOME
PATH=$PATH:$ORACLE_HOME/bin
export PATH
创建相应的目录
$ pwd
/oracle
$ mkdir app
$ mkdir data
 
4.修改Centos5.2发行标识
由于oracle10g具有系统安装监测,当检测到的系统不符合安装配置规定的要求时,安装不能正常进行,故要更改操作系统的版本标识,这一操作不会影响任何系统问题,可以在安装结束后恢复为正常状态;操作如下:
备份/etc/redhat-release文件为/etc/redhat-release.bak
root权限修改/etc/redhat-release文件
将文件的内容
修改为redhat-4,用于满足/home/database/install/oraparam.ini的检查要求
也可以修改/home/database/install/oraparam.in的检查条件与系统的/etc/redhat-release文件内容保持一致
       或者安装的时候,带上参数,即【runInstaller –ignoreSysPrereqs】则可跳过系统版本检查。
 
----------------------做完上述配置后,建议重新启动系统,目的是让所有配置生效----------------------
 
5.开始安装ORACLE10G
5.1、本机光驱中放入“oracle_database_linux32”安装光盘,然后加载光驱到/cdrom/cd目录,如下:

如果是下载的cpio.gz安装包,则可能需要解压,方法如下:


#gunzip 文件名.cpio.gz

这样文件就解压成为 "文件名.cpio" 了,然后再对它进行cpio操作

#cpio -idmv < 文件名.cpio

oracle用户登陆终端,执行安装命令进行安装,安装命令 [/mnt/cd/runInstaller --ignoreSysPrereqs]
A、运行过程中可能出现如下错误:
   设置DISPLAY环境变量运行图形程序(xclock)时会收到如下错误:
Xlib: connection to ":0.0" refused by server
Xlib: No protocol specified
Error: Can't open display: :0.0
       解决方式:这是因为Xserver默认情况下不允许别的用户的图形程序的图形显示在
        当前屏幕上如果需要别的用户的图形显示在当前屏幕上则应以当前登陆的用户,
      也就是切换身份前的用户执行如下命令[xhost +],之前我用root账户登陆的Xwindows,则切换到root帐户下执行[root#xhost +]即可。
       B、安装过程出现下列错误:
            安装过程出现如下警告:
Warning: Cannot convert String"-watanabe-mincho-Medium
-r-normal--*-140-*-*-c-*-jisx0208.1983-0"to type FontStruct
但是程序仍能执行,只是执行后窗口出现乱码,如下:
问题原因:oracle字符集的UO楲,它就l拹z.字符,所以显示乱码
解决方法:解决方法有两种,一种是安装字符集,第二种简单的就是使用英文安装,怎么才能使用英文安装呢?执行如下命令之后在安装软件即可解决:
oracle$export LANG=en_US
oracle$export LC_ALL=en_US
oracle$export LANGUAGE=en_US
       C、安装出现下列问题:
              中文安装提示:oraparam.ini 中未找到先决条件检查,不执行系统系统先决条件检查。
英文安装提示:”No pre-requisite checks found in oraparam.ini, no system pre-requisite checks will be executed.”
问题原因:Error in writing to directory /tmp/OraInstall2007-09-08_01-49-19AM. Please ensure that this directory is writable and has atleast 69 MB of disk space. Installation cannot continue
解决方法:清空linux临时目录tmp释放出足够空间即可。
正常运行安装程序成功后弹出oracle10G安装主界面,在安装界面中,Oracle Home Location路径是刚才给oracle编辑HTUprofileUTH时添加的,UNIX DBA Group默认为oinstall.如下图:
接着,配置Oracle安装主路径和添加信任用户组
安装系统自动检查ORACLE安装必备条件是否具备,具备则通过检查继续安装,检查界面如下
接下来安装程序开始安装ORACLE,安装过程如下列图示
开始数据库orcl的创建
完成数据库orcl的创建
Password Management
Orcl数据库创建向导成功完成后,以root账户执行两个脚本
执行/oracle/app/oraInentory/orainstRoot.sh脚本结果如下:
执行/oracle/oracle/product/10.2.0/db_1/root.sh脚本结果如下:
完成整个oracle安装
通过上边的URL地址我们可以访问到Isql*PlusEnterprise MangagerWEB界面工具。
 
6、 还原Centos5.2发行标识
根据备份文件/etc/redhat-release.bak还原/etc/redhat-release文件内容到安装ORALE前的状态。

创建数据库的时候如果报 unable to create shared memory segment

这和linux的hugepage有关,我的版本是centos6.3,可能在创建共享段时需要用到hugepage,有权限限制,解决方法

[root@localhost oradisk]# id oracle
uid=500(oracle) gid=500(oinstall) groups=500(oinstall),501(dba)
[root@localhost oradisk]#

 

用root执行下面的命令,将dba组添加到系统内核中

[root@localhost oradisk]# echo 501 > /proc/sys/vm/hugetlb_shm_group

 

这样启动数据库,问题消失;但是如果系统重启了,还需要执行上面的命令,治标不治本。一劳永逸的办法就是修改文件sysctl.conf,方法如下:

[root@localhost oradisk]# vi /etc/sysctl.conf 
....
vm.hugetlb_shm_group  = 501
....

[root@localhost oradisk]# sysctl -p


Linux下Oracle 10g自动启动与关闭的实现

 

环境:RHEL 5.5 + Oracle 10g + VMWare 5.5

 

尝试在linux下进行oracle的自动启动与关闭,经过多次摸索,完整实现如下:

1、修改oratab文件,使数据库自动启动

#vi /etc/oratab

sid:/opt/app/ora10g/oracle/product/10.2.0/db_1:Y   -----即把原来的N修改为Y。

 

2、修改dbstart、dbshut脚本,使之能够自动启动、关闭LISTENER

将dbstart与dbshut两个脚本中的ORACLE_HOME_LISTNER=$1改为

ORACLE_HOME_LISTNER=$ORACLE_HOME即可(我这个版本好像只修改dbstart,dbshut中没有什么要修改)

 

3、编写启动脚本/etc/rc.d/init.d/oracle

 

[c-sharp] view plaincopy
  1. #!/bin/bash   
  2.   
  3. #################FUNCTION#############   
  4.   
  5. AutoStart Oracle and listener   
  6. AutoStop Oracle and listener   
  7.   
  8. #####################################   
  9.   
  10. Created  by ZhouYS       2003-11-26   
  11. Modified by XiaoFengBin  2010-09-13  
  12.   
  13. chkconfig: 2345 99 01   
  14. description: oracledb starts/stops the Oracle server   
  15.   
  16. case "$1" in   
  17. start)   
  18. echo "Starting Oracle Databases ... "   
  19. echo "-------------------------------------------------" >> /var/log/oracle   
  20. date +%T %a %D Starting Oracle Databases as part of system up." >> /var/log/oracle   
  21. echo "-------------------------------------------------" >> /var/log/oracle   
  22. su oracle -c "dbstart" >> /var/log/oracle   
  23. echo "Done."   
  24. echo "Starting Oracle Listeners ... "   
  25. echo "-------------------------------------------------" >> /var/log/oracle   
  26. date +%T %a %D Starting Oracle Listeners as part of system up." >> /var/log/oracle   
  27. echo "-------------------------------------------------" >> /var/log/oracle   
  28. su oracle -c "lsnrctl start" >> /var/log/oracle   
  29. echo "Done."   
  30. echo "Starting EM ... "   
  31. echo "-------------------------------------------------" >> /var/log/oracle   
  32. date +%T %a %D Starting EM as part of system up." >> /var/log/oracle   
  33. echo "-------------------------------------------------" >> /var/log/oracle   
  34. su oracle -c "emctl start dbconsole" >> /var/log/oracle   
  35. echo "Done."   
  36. echo "Starting isqlplus ... "   
  37. echo "-------------------------------------------------" >> /var/log/oracle   
  38. date +%T %a %D Starting isqlplus as part of system up." >> /var/log/oracle   
  39. echo "-------------------------------------------------" >> /var/log/oracle   
  40. su oracle -c "isqlplusctl start" >> /var/log/oracle   
  41. echo "Done."   
  42. echo ""   
  43. echo "-------------------------------------------------" >> /var/log/oracle   
  44. date +%T %a %D Finished." >> /var/log/oracle   
  45. echo "-------------------------------------------------" >> /var/log/oracle   
  46. touch /var/lock/subsys/oracle   
  47.   
  48. ;;   
  49. stop)   
  50. echo "Stoping EM ... "   
  51. echo "-------------------------------------------------" >> /var/log/oracle   
  52. date +%T %a %D Stoping EM as part of system down." >> /var/log/oracle   
  53. echo "-------------------------------------------------" >> /var/log/oracle   
  54. su oracle -c "emctl stop dbconsole" >>/var/log/oracle   
  55. echo "Done."  
  56. echo "Stoping isqlplus ... "   
  57. echo "-------------------------------------------------" >> /var/log/oracle   
  58. date +%T %a %D Stoping isqlplus as part of system down." >> /var/log/oracle   
  59. echo "-------------------------------------------------" >> /var/log/oracle   
  60. su oracle -c "isqlplusctl stop" >>/var/log/oracle   
  61. echo "Done."  
  62. echo "Stoping Oracle Listeners ... "   
  63. echo "-------------------------------------------------" >> /var/log/oracle   
  64. date +%T %a %D Stoping Oracle Listener as part of system down." >> /var/log/oracle   
  65. echo "-------------------------------------------------" >> /var/log/oracle   
  66. su oracle -c "lsnrctl stop" >> /var/log/oracle   
  67. echo "Done."   
  68. echo "Stoping Oracle Databases ... "   
  69. echo "-------------------------------------------------" >> /var/log/oracle   
  70. date +%T %a %D Stoping Oracle Databases as part of system down." >> /var/log/oracle   
  71. echo "-------------------------------------------------" >> /var/log/oracle   
  72. su oracle -c "dbshut" >>/var/log/oracle   
  73. echo "Done."   
  74. echo ""   
  75. echo "-------------------------------------------------" >> /var/log/oracle   
  76. date +%T %a %D Finished." >> /var/log/oracle   
  77. echo "-------------------------------------------------" >> /var/log/oracle   
  78. rm -f /var/lock/subsys/oracle   
  79.   
  80. ;;   
  81. restart)   
  82. $0 stop   
  83. $0 start   
  84.   
  85. ;;   
  86. *)   
  87. echo "Usage: oracle {start|stop|restart}"   
  88. exit   
  89. esac   
  90. exit  

 

4、添加服务
[root@by init.d]# chmod 755 oracle
[root@by init.d]# chmod +x /etc/rc.d/init.d/oracle
[root@by init.d]# chkconfig --add oracle
[root@by init.d]# chkconfig --list oracle
oracle          0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭

 

如果出现:bash: chkconfig: command not found,那么一般是chkconfig包没装或者装了路径没设置对。

[root@by init.d]# PATH="$PATH":/sbin
[root@by init.d]# echo $PATH
/sbin:/usr/kerberos/sbin:/opt/oracle/product/10.2.0/db_1/bin:/usr/sbin:/usr/lib/qt-3.3/bin:/usr/kerberos/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/home/oracle/bin:/sbin

 

5、测试服务

[root@by init.d]# service oracle stop

 

如果出现如下错误:
Stoping EM ... 
/home/oracle/.bash_profile: line 23: ulimit: open files: cannot modify limit: 不允许的操作
Done.

 

可在

[root@by init.d]# vi /etc/security/limits.conf
添加如下内容:
oracle              soft    nproc   2047
oracle              hard    nproc   16384
oracle              soft    nofile  1024
oracle              hard    nofile  65536

Ok,一切完成。关闭系统,重启,最后验证,都自动启动了。


<!-- 正文结束 -->

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23421774/viewspace-1116862/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2010-02-28