• CentOS 6.5下安装Oracle 11g(转)


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

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

    一、硬件要求

    1、内存&swap

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

    检查内存情况

    [plain] view plaincopy
     
    1. #grep MemTotal /proc/meminfo  
    2.   
    3. #grep SwapTotal /proc/meminfo  

    2、硬盘

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

    检查磁盘情况

    #df -h

    二、软件

    系统平台:CentOS6.5(x86_64)

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

    Oracle版本:Oracle11g

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

    三、系统安装注意

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

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

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

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

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

    2.安装依赖包

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

     

    [plain] view plaincopy
     
    1. #rpm -ivh libstdc++-devel-4.4.7-4.el6.x86_64.rpm  
    2.   
    3. #rpm -ivh mpfr-2.4.1-6.el6.x86_64.rpm  
    4.   
    5. #rpm -ivh cpp-4.4.7-4.el6.x86_64.rpm  
    6.   
    7. #rpm -ivh ppl-0.10.2-11.el6.x86_64.rpm  
    8.   
    9. #rpm -ivh cloog-ppl-0.15.7-1.2.el6.x86_64.rpm  
    10.   
    11. #rpm -ivh gcc-4.4.7-4.el6.x86_64.rpm  
    12.   
    13. #rpm -ivh gcc-c++-4.4.7-4.el6.x86_64.rpm  
    14.   
    15. #rpm -ivh compat-libcap1-1.10-1.x86_64.rpm  
    16.   
    17. #rpm -ivhcompat-libstdc++-33-3.2.3-69.el6.x86_64.rpm  
    18.   
    19. #rpm -ivh libaio-devel-0.3.107-10.el6.x86_64.rpm  
    20.   
    21. #rpm -ivh pdksh-5.2.14-37.el5_8.1.x86_64.rpm  
    22.   
    23. #rpm -ivhelfutils-libelf-devel-0.152-1.el6.x86_64.rpm  

    3.创建用户和组

    (1)建立群组oinstall、dba

    [plain] view plaincopy
     
    1. #groupadd oinstall  
    2. #groupadd dba  

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

    [plain] view plaincopy
     
    1. #useradd -m -g oinstall -G dba oracle  

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

    [plain] view plaincopy
     
    1. #id oracle  

    (5)建立oracle的新密码

    [plain] view plaincopy
     
    1. #passwd oracle  

     

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

    [plain] view plaincopy
     
    1. #vi /etc/sudoers  

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

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

    5、配置系统内核参数

     

    [plain] view plaincopy
     
    1. #vi /etc/sysctl.conf  

     

    修改和添加以下内容:

    [plain] view plaincopy
     
    1. fs.aio-max-nr= 1048576  
    2.   
    3. fs.file-max= 6815744  
    4.   
    5. #kernel.shmall= 2097152  
    6.   
    7. #官方文档kernel.shmmax= 536870912,实际软件中需要kernel.shmmax= 980742144  
    8.   
    9. #kernel.shmmax = 980742144  
    10.   
    11. kernel.shmmni= 4096  
    12.   
    13. kernel.sem= 250 32000 100 128  
    14.   
    15. net.ipv4.ip_local_port_range= 9000 65500  
    16.   
    17. net.core.rmem_default= 262144  
    18.   
    19. net.core.rmem_max= 4194304  
    20.   
    21. net.core.wmem_default= 262144  
    22.   
    23. net.core.wmem_max= 1048586  
    24.   
    25. vm.hugetlb_shm_group= 501  
    26.   
    27. #oracle用户组dbaid 为501,以彻底解决ORA-27125错误。  
    28.   
    29. #id oracle  

     

    可以看到oracledbaid 501

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

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

     

    [plain] view plaincopy
     
    1. #sysctl –p  

     

    启用刚刚所做的变更。

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

     

    [plain] view plaincopy
     
    1. #vi /etc/security/limits.conf  

     

    添加以下四行

    [plain] view plaincopy
     
    1. oracle soft        nproc  2047  
    2. oracle  hard       nproc   16384  
    3. oracle  soft       nofile  1024  
    4. oracle  hard       nofile  65536  

     

     

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

     

    [plain] view plaincopy
     
    1. #vi /etc/pam.d/login  

     

    添加以下两行

    [plain] view plaincopy
     
    1. sessionrequired /lib64/security/pam_limits.so  
    2. session requiredpam_limits.so  

     

    8、修改/etc/profile

     

    [plain] view plaincopy
     
    1. #vi /etc/profile  

     

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

    [plain] view plaincopy
     
    1. if [ $USER = "oracle" ]; then  
    2.     if [ $SHELL = "/bin/ksh"]; then  
    3.         ulimit -p 16384  
    4.         ulimit -n 65536  
    5.     else  
    6.         ulimit -u 16384 -n 65536  
    7.     fi  
    8. fi  

     

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

     

    [plain] view plaincopy
     
    1. #mkdir/opt/oracle  
    2. #mkdir /opt/oracle/112  
    3. #mkdir/opt/oraInventory  
    4. #chown -R oracle:dba /opt/oracle  
    5. #chown-R oracle:dba /opt/oraInventory  
    6. #chown-R oracle:dba /opt  

     

    11、配置Linux主机

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

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

     

    [plain] view plaincopy
     
    1. 192.168.1.101CentOS-Oracle  

     

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

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

    12、配置oracle用户环境变量

     

    [plain] view plaincopy
     
    1. #su oracle  
    2.   
    3. $cd /home/oracle  
    4. $ vi .bash_profile  

    修改并加入以下內容

     

    [plain] view plaincopy
     
    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.   
    7. exportORACLE_BASE ORACLE_HOME ORACLE_SID LD_LIBRARY_PATH PATH  
    8.   
    9. #PATH=$PATH:$HOME/bin  
    10.   
    11. #exportPATH  

     

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

     

    [plain] view plaincopy
     
    1. $source /home/oracle/.bash_profile  

     

     

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

    1、解压缩安装文件

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

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

    [plain] view plaincopy
     
    1. $cd /opt/oracle  
    解压缩
    [plain] view plaincopy
     
    1. $unzip p13390677_112040_Linux-x86-64_1of7.zip  
    2. $unzip p13390677_112040_Linux-x86-64_2of7.zip  

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

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

    [plain] view plaincopy
     
    1. $cd database  

     

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

    $export LANG=en_US.UTF-8

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

     

    [plain] view plaincopy
     
    1. [oracle@databasedatabase]$ export LANG=en_US  
    2. [oracle@databasedatabase]$ ./runInstaller  
    3. ERROR:Unable to convert from "UTF-8" to "ISO-8859-1"for NLS!  
    4. redhat-3,SuSE-9, redhat-4, UnitedLinux-1.0, asianux-1 or asianux-2  
    5. /tmp/OraInstall2013-09-06_09-17-04AM.[oracle@database database]$  
    接着执行(这里建议切换为oracle登录桌面再执行)

    $./runInstaller

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

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

    #export DISPLAY=:0.0 

    # xhost + 

    切换回ORACLE用户

    $./runInstaller

    开始执行安装程序。

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

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

     

    2、安装过程(略)

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

     

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


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

    六、参考

     

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

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

     

    [plain] view plaincopy
     
    1. #vi /etc/oratab  
    2.   
    3. orcl:/opt/oracle/102:Y  
    4. #Entries are of the form:  
    5. #  $ORACLE_SID:$ORACLE_HOME:<N|Y>:  

     

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

    [plain] view plaincopy
     
    1. #vi /etc/init.d/oracle  

     

     

    [plain] view plaincopy
     
    1. #!/bin/bash  
    2. # chkconfig: 35 80 10  
    3. # description: Oracle auto start-stop script.  
    4.   
    5. #  
    6. # Set ORA_HOME to be equivalent to the $ORACLE_HOME  
    7. # from which you wish to execute dbstart and dbshut;  
    8. #  
    9. # Set ORA_OWNER to the user id of the owner of the  
    10. # Oracle database in ORA_HOME.  
    11. ORA_HOME=/opt/oracle/1<span style="font-family:宋体;">1</span>2  
    12. ORA_OWNER=oracle  
    13. if [ ! -f $ORA_HOME/bin/dbstart ]  
    14. then  
    15.     echo "Oracle startup: cannot start"  
    16.     exit  
    17. fi  
    18. case "$1" in  
    19. 'start')  
    20. # Start the Listener:  
    21. echo "Starting Oracle Listeners ... "  
    22. echo "-------------------------------------------------" >> /var/log/oracle  
    23. date +" %T %a %D : Starting Oracle Listeners as part of system up." >> /var/log/oracle  
    24. echo "-------------------------------------------------" >> /var/log/oracle  
    25. su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start" >>/var/log/oracle  
    26. echo "Done."  
    27. echo "-------------------------------------------------" >> /var/log/oracle  
    28. date +" %T %a %D : Finished." >> /var/log/oracle  
    29. echo "-------------------------------------------------" >> /var/log/oracle  
    30. touch /var/lock/subsys/oracle  
    31.   
    32. # Start the Oracle databases:  
    33. echo "Starting Oracle Databases ... "  
    34. echo "-------------------------------------------------" >> /var/log/oracle  
    35. date +" %T %a %D : Starting Oracle Databases as part of system up." >> /var/log/oracle  
    36. echo "-------------------------------------------------" >> /var/log/oracle  
    37. su - $ORA_OWNER -c "$ORA_HOME/bin/dbstart" >>/var/log/oracle  
    38. echo "Done"  
    39.   
    40. # Start the dbconsole:  
    41. echo "Starting Oracle dbconsole  ... "  
    42. echo "-------------------------------------------------" >> /var/log/oracle  
    43. date +" %T %a %D : Starting Oracle dbconsole as part of system up." >> /var/log/oracle  
    44. echo "-------------------------------------------------" >> /var/log/oracle  
    45. su - $ORA_OWNER -c "$ORA_HOME/bin/emctl start dbconsole" >>/var/log/oracle  
    46. echo "Done."  
    47. echo "-------------------------------------------------" >> /var/log/oracle  
    48. date +" %T %a %D : Finished." >> /var/log/oracle  
    49. echo "-------------------------------------------------" >> /var/log/oracle  
    50. touch /var/lock/subsys/oracle  
    51. ;;  
    52.   
    53. 'stop')  
    54. # Stop the Oracle dbconsole:  
    55. echo "Stoping Oracle dbconsole ... "  
    56. echo "-------------------------------------------------" >> /var/log/oracle  
    57. date +" %T %a %D : Stoping Oracle dbconsole as part of system down." >> /var/log/oracle  
    58. echo "-------------------------------------------------" >> /var/log/oracle  
    59. su - $ORA_OWNER -c "$ORA_HOME/bin/emctl stop dbconsole" >>/var/log/oracle  
    60. echo "Done."  
    61.   
    62. # Stop the Oracle Database:  
    63. echo "Stoping Oracle Databases ... "  
    64. echo "-------------------------------------------------" >> /var/log/oracle  
    65. date +" %T %a %D : Stoping Oracle Databases as part of system down." >> /var/log/oracle  
    66. echo "-------------------------------------------------" >> /var/log/oracle  
    67. su - $ORA_OWNER -c "$ORA_HOME/bin/dbshut" >>/var/log/oracle  
    68. echo "Done."  
    69. echo ""  
    70. echo "-------------------------------------------------" >> /var/log/oracle  
    71. date +" %T %a %D : Finished." >> /var/log/oracle  
    72. echo "-------------------------------------------------" >> /var/log/oracle  
    73.   
    74. # Stop the Oracle Listener:  
    75. echo "Stoping Oracle Listeners ... "  
    76. echo "-------------------------------------------------" >> /var/log/oracle  
    77. date +" %T %a %D : Stoping Oracle Listener as part of system down." >> /var/log/oracle  
    78. echo "-------------------------------------------------" >> /var/log/oracle  
    79. su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop" >>/var/log/oracle  
    80. echo "Done."  
    81. rm -f /var/lock/subsys/oracle  
    82. ;;  
    83.   
    84. 'restart')  
    85. $0 stop  
    86. $0 start  
    87. ;;  
    88. <style type="text/css">P { margin-bottom: 0.08in; direction: ltr; text-align: justify; }</style><style type="text/css">P { margin-bottom: 0.08in; direction: ltr; text-align: justify; }</style>esac  

     

    3.改变文件权限

    [plain] view plaincopy
     
    1. #chmod 755 /etc/init.d/oracle  

     

    4.添加服务

    [plain] view plaincopy
     
    1. #chkconfig --level 35 oracle on  

     

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

    [plain] view plaincopy
     
    1. #ln -s /etc/init.d/oracle /etc/rc0.d/K01oracle   //关机  
    2. #ln -s /etc/init.d/oracle /etc/rc6.d/K01oracle   //重启   

     

    6.使用方法

    [plain] view plaincopy
     
    1. #service oracle start       //启动oracle  
    2. #service oracle stop       //关闭oracle  
    3. #service oracle restart     //重启oracle  

     

    7.测试

     

    [plain] view plaincopy
     
    1. a. 开机自启动  
    2. b. service oracle stop  
    3. c. service oracle start  
    4. d. service oracle restart  

     

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

  • 相关阅读:
    Linux驱动入门(三)Led驱动
    Linux驱动入门(二)操作硬件
    mysql表的完整性约束
    数据库操作
    初识数据库
    mysql的安装、启动和基础配置 —— windows版本
    Socket网络编程
    python进阶之多线程(简单介绍协程)
    python进阶多进程(进程池,进程间通信)
    python基础之异常处理
  • 原文地址:https://www.cnblogs.com/moss_tan_jun/p/6612652.html
Copyright © 2020-2023  润新知