CentOS 6.5下安装Oracle 11g

分类:CentOS运维 阅读:65610 次

最近开始学习CentOS使用,做些记录。

参考文献:Cent OS 6_5(x86_64)下安装Oracle 11g

一、硬件要求

1、内存&swap

Minimum:1 GB of RAM
Recommended: 2 GB of RAM or more

CentOS 6.5下安装Oracle 11g

检查内存情况

  1. #grepMemTotal/proc/meminfo
  2. #grepSwapTotal/proc/meminfo

2、硬盘

由于CentOS安装后差不多有4~5G,再加上Oracle等等的安装,所以请准备至少10G的硬盘空间。

检查磁盘情况

#df -h

二、软件

系统平台:CentOS6.5(x86_64)

(我这里安装的是DeskTop版。安装精简版的需要单独yum桌面程序)

Oracle版本:Oracle11g

p13390677_112040_Linux-x86-64_1of7.zip、p13390677_112040_Linux-x86-64_2of7.zip

三、系统安装注意

系统安装时一定要安装桌面模式,否则无法安装oracle,另外请勿开启SELinux,oracle官方不建议使用SELinux,防火墙也请暂时关闭,减少安装时的困扰。为防止Oracle安装过程中出现乱码,建议使用英文作为系统语言,进行Oracle的安装工作。

本文中所描述的系统命令,未经特殊标示,均为“#”代表root权限,“$”代表oracle权限。

四、安装Oracle前的系统准备工作

首先,请先以root账号登入作一些前置设定作业。

1.关闭、防火墙(SELinux临时关闭命令:setenforce 0 防火墙临时关闭命令:serviceiptablesstop)

2.安装依赖包

以下RPM包拷贝到/opt目录下,进行opt目录,执行以下命令。

  1. #rpm-ivhlibstdc++-devel-4.4.7-4.el6.x86_64.rpm
  2. #rpm-ivhmpfr-2.4.1-6.el6.x86_64.rpm
  3. #rpm-ivhcpp-4.4.7-4.el6.x86_64.rpm
  4. #rpm-ivhppl-0.10.2-11.el6.x86_64.rpm
  5. #rpm-ivhcloog-ppl-0.15.7-1.2.el6.x86_64.rpm
  6. #rpm-ivhgcc-4.4.7-4.el6.x86_64.rpm
  7. #rpm-ivhgcc-c++-4.4.7-4.el6.x86_64.rpm
  8. #rpm-ivhcompat-libcap1-1.10-1.x86_64.rpm
  9. #rpm-ivhcompat-libstdc++-33-3.2.3-69.el6.x86_64.rpm
  10. #rpm-ivhlibaio-devel-0.3.107-10.el6.x86_64.rpm
  11. #rpm-ivhpdksh-5.2.14-37.el5_8.1.x86_64.rpm
  12. #rpm-ivhelfutils-libelf-devel-0.152-1.el6.x86_64.rpm

3.创建用户和组

(1)建立群组oinstall、dba

  1. #groupaddoinstall
  2. #groupadddba

(2)新增使用者oracle并将其加入dba群组

  1. #useradd-m-goinstall-Gdbaoracle

(4)测试oracle账号是否建立完成

  1. #idoracle

(5)建立oracle的新密码

  1. #passwdoracle

CentOS 6.5下安装Oracle 11g

4.将oracle使用者加入到sudo群组中

  1. #vi/etc/sudoers

找到
rootALL=(ALL)ALL
这行,并且在底下再加入

  1. oracleALL=(ALL)ALL
输入wq!(由于这是一份只读文档所以需要再加上!)并且按下Enter

5、配置系统内核参数

  1. #vi/etc/sysctl.conf

修改和添加以下内容:

  1. fs.aio-max-nr=1048576
  2. fs.file-max=6815744
  3. #kernel.shmall=2097152
  4. #官方文档kernel.shmmax=536870912,实际软件中需要kernel.shmmax=980742144
  5. #kernel.shmmax=980742144
  6. kernel.shmmni=4096
  7. kernel.sem=25032000100128
  8. net.ipv4.ip_local_port_range=900065500
  9. net.core.rmem_default=262144
  10. net.core.rmem_max=4194304
  11. net.core.wmem_default=262144
  12. net.core.wmem_max=1048586
  13. vm.hugetlb_shm_group=501
  14. #oracle用户组dbaid为501,以彻底解决ORA-27125错误。
  15. #idoracle

可以看到oracledbaid501

会有一些与目前的参数重复的,就修改成文件上提供的。

编辑完之后,储存,然后执行:

  1. #sysctl–p

启用刚刚所做的变更。

6、编辑/etc/security/limits.conf

  1. #vi/etc/security/limits.conf

添加以下四行

  1. oraclesoftnproc2047
  2. oraclehardnproc16384
  3. oraclesoftnofile1024
  4. oraclehardnofile65536

7、编辑/etc/pam.d/login

  1. #vi/etc/pam.d/login

添加以下两行

  1. sessionrequired/lib64/security/pam_limits.so
  2. sessionrequiredpam_limits.so

8、修改/etc/profile

  1. #vi/etc/profile

将以下代码新增到profile档案中。

  1. if[$USER="oracle"];then
  2. if[$SHELL="/bin/ksh"];then
  3. ulimit-p16384
  4. ulimit-n65536
  5. else
  6. ulimit-u16384-n65536
  7. fi
  8. fi

10、创建Oracle安装文件夹以及数据存放文件夹

  1. #mkdir/opt/oracle
  2. #mkdir/opt/oracle/112
  3. #mkdir/opt/oraInventory
  4. #chown-Roracle:dba/opt/oracle
  5. #chown-Roracle:dba/opt/oraInventory
  6. #chown-Roracle:dba/opt

11、配置Linux主机

检查/etc/hosts文件中是否有localhost的记录(指向127.0.0.1即可),若没有的话,在后面配置Oracle监听的时候会出现一些问题,导致无法启动监听,在此手工添加此记录即可。

增加以下配置IP地址加主机名称 映射

  1. 192.168.1.101CentOS-Oracle

(此处前面的192.168.1.101为安装机器的IP地址CentOS-Oracle为安装机器的主机名称 请各位根据自己的情况填写)

第一阶段到此完毕,接下来,完成这些设定之后,请先注销root账号,并且以oracle账号再次登入系统。

12、配置oracle用户环境变量

  1. #suoracle
  2. $cd/home/oracle
  3. $vi.bash_profile

修改并加入以下?热?/span>

  1. ORACLE_BASE=/opt/oracle#上面创建的Oracle安装文件夹
  2. ORACLE_HOME=$ORACLE_BASE/112
  3. ORACLE_SID=orcl
  4. LD_LIBRARY_PATH=$ORACLE_HOME/lib
  5. PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin
  6. exportORACLE_BASEORACLE_HOMEORACLE_SIDLD_LIBRARY_PATHPATH
  7. #PATH=$PATH:$HOME/bin
  8. #exportPATH

保存后使用如下命令,使设置生效:

  1. $source/home/oracle/.bash_profile

五、安装Oracle,并进行相关设置

1、解压缩安装文件

将下载的p13390677_112040_Linux-x86-64_1of7.zip、p13390677_112040_Linux-x86-64_2of7.zip放至即将安装oracle的文件夹/opt/oracle

回到终端模式并且进入到oracle文件夹:

  1. $cd/opt/oracle
解压缩
  1. $unzipp13390677_112040_Linux-x86-64_1of7.zip
  2. $unzipp13390677_112040_Linux-x86-64_2of7.zip

接着会看到一连串的解压缩动作。

解压缩完成会在同一个文件夹中看到database的文件夹,请进入到database文件夹中:

  1. $cddatabase
准备执行数据库安装,如果你的操作系统是中文环境,安装时会出现中文乱码,请使用以下指令

$export LANG=en_US.UTF-8

一定不能少了.UTF-8,否则会提示以下错误:

  1. [oracle@databasedatabase]$exportLANG=en_US
  2. [oracle@databasedatabase]$./runInstaller
  3. ERROR:Unabletoconvertfrom"UTF-8"to"ISO-8859-1"forNLS!
  4. redhat-3,SuSE-9,redhat-4,UnitedLinux-1.0,asianux-1orasianux-2
  5. /tmp/OraInstall2013-09-06_09-17-04AM.[oracle@databasedatabase]$
接着执行(这里建议切换为oracle登录桌面再执行)

$./runInstaller

(下面的问题基本是由于远程工具安装本地安装基本不会出现)

如果无法看到安装界面,请使用root帐户执行如下命令后再运行安装程序:

#export DISPLAY=:0.0

# xhost +

切换回ORACLE用户

$./runInstaller

开始执行安装程序。

最后出现InstallSummary画面,此时只要按下Install按钮,系统即开始安装。

选择“高级安装”,以指定字符集ZH16GBK。

2、安装过程(略)

3、安装完成登录EM控制台

地址:https://db:1158/em

CentOS 6.5下安装Oracle 11g

使用SYS、SYSTEM登录验证安装成功。

六、参考

6.1、设置Oracle服务开机自启动

1.修改Oracle系统配置文件:/etc/oratab,只有这样,Oracle自带的dbstart和dbshut才能够发挥作用。

  1. #vi/etc/oratab
  2. orcl:/opt/oracle/102:Y
  3. #Entriesareoftheform:
  4. #$ORACLE_SID:$ORACLE_HOME:<N|Y>:

2./etc/init.d/下创建文件oracle,内容如下:

  1. #vi/etc/init.d/oracle
  1. #!/bin/bash
  2. #chkconfig:358010
  3. #description:Oracleautostart-stopscript.
  4. #
  5. #SetORA_HOMEtobeequivalenttothe$ORACLE_HOME
  6. #fromwhichyouwishtoexecutedbstartanddbshut;
  7. #
  8. #SetORA_OWNERtotheuseridoftheownerofthe
  9. #OracledatabaseinORA_HOME.
  10. ORA_HOME=/opt/oracle/1<spanstyle="font-family:宋体;">1</span>2
  11. ORA_OWNER=oracle
  12. if[!-f$ORA_HOME/bin/dbstart]
  13. then
  14. echo"Oraclestartup:cannotstart"
  15. exit
  16. fi
  17. case"$1"in
  18. 'start')
  19. #StarttheListener:
  20. echo"StartingOracleListeners..."
  21. echo"-------------------------------------------------">>/var/log/oracle
  22. date+"%T%a%D:StartingOracleListenersaspartofsystemup.">>/var/log/oracle
  23. echo"-------------------------------------------------">>/var/log/oracle
  24. su-$ORA_OWNER-c"$ORA_HOME/bin/lsnrctlstart">>/var/log/oracle
  25. echo"Done."
  26. echo"-------------------------------------------------">>/var/log/oracle
  27. date+"%T%a%D:Finished.">>/var/log/oracle
  28. echo"-------------------------------------------------">>/var/log/oracle
  29. touch/var/lock/subsys/oracle
  30. #StarttheOracledatabases:
  31. echo"StartingOracleDatabases..."
  32. echo"-------------------------------------------------">>/var/log/oracle
  33. date+"%T%a%D:StartingOracleDatabasesaspartofsystemup.">>/var/log/oracle
  34. echo"-------------------------------------------------">>/var/log/oracle
  35. su-$ORA_OWNER-c"$ORA_HOME/bin/dbstart">>/var/log/oracle
  36. echo"Done"
  37. #Startthedbconsole:
  38. echo"StartingOracledbconsole..."
  39. echo"-------------------------------------------------">>/var/log/oracle
  40. date+"%T%a%D:StartingOracledbconsoleaspartofsystemup.">>/var/log/oracle
  41. echo"-------------------------------------------------">>/var/log/oracle
  42. su-$ORA_OWNER-c"$ORA_HOME/bin/emctlstartdbconsole">>/var/log/oracle
  43. echo"Done."
  44. echo"-------------------------------------------------">>/var/log/oracle
  45. date+"%T%a%D:Finished.">>/var/log/oracle
  46. echo"-------------------------------------------------">>/var/log/oracle
  47. touch/var/lock/subsys/oracle
  48. ;;
  49. 'stop')
  50. #StoptheOracledbconsole:
  51. echo"StopingOracledbconsole..."
  52. echo"-------------------------------------------------">>/var/log/oracle
  53. date+"%T%a%D:StopingOracledbconsoleaspartofsystemdown.">>/var/log/oracle
  54. echo"-------------------------------------------------">>/var/log/oracle
  55. su-$ORA_OWNER-c"$ORA_HOME/bin/emctlstopdbconsole">>/var/log/oracle
  56. echo"Done."
  57. #StoptheOracleDatabase:
  58. echo"StopingOracleDatabases..."
  59. echo"-------------------------------------------------">>/var/log/oracle
  60. date+"%T%a%D:StopingOracleDatabasesaspartofsystemdown.">>/var/log/oracle
  61. echo"-------------------------------------------------">>/var/log/oracle
  62. su-$ORA_OWNER-c"$ORA_HOME/bin/dbshut">>/var/log/oracle
  63. echo"Done."
  64. echo""
  65. echo"-------------------------------------------------">>/var/log/oracle
  66. date+"%T%a%D:Finished.">>/var/log/oracle
  67. echo"-------------------------------------------------">>/var/log/oracle
  68. #StoptheOracleListener:
  69. echo"StopingOracleListeners..."
  70. echo"-------------------------------------------------">>/var/log/oracle
  71. date+"%T%a%D:StopingOracleListeneraspartofsystemdown.">>/var/log/oracle
  72. echo"-------------------------------------------------">>/var/log/oracle
  73. su-$ORA_OWNER-c"$ORA_HOME/bin/lsnrctlstop">>/var/log/oracle
  74. echo"Done."
  75. rm-f/var/lock/subsys/oracle
  76. ;;
  77. 'restart')
  78. $0stop
  79. $0start
  80. ;;
  81. <styletype="text/css">P{margin-bottom:0.08in;direction:ltr;text-align:justify;}</style><styletype="text/css">P{margin-bottom:0.08in;direction:ltr;text-align:justify;}</style>esac

3.改变文件权限

  1. #chmod755/etc/init.d/oracle

4.添加服务

  1. #chkconfig--level35oracleon

5.需要在关机或重启机器之前停止数据库,做一下操作

  1. #ln-s/etc/init.d/oracle/etc/rc0.d/K01oracle//关机
  2. #ln-s/etc/init.d/oracle/etc/rc6.d/K01oracle//重启

6.使用方法

  1. #serviceoraclestart//启动oracle
  2. #serviceoraclestop//关闭oracle
  3. #serviceoraclerestart//重启oracle

7.测试

  1. a.开机自启动
  2. b.serviceoraclestop
  3. c.serviceoraclestart
  4. d.serviceoraclerestart

至此,Oracle服务启动&停止脚本与开机自启动设置完毕。