2

最近工作中用到了Oracle作为Intel测试的数据库,在装Oracle LinuxOracle Database 11g R2折腾了很久,这篇文章就这两点对大家分享一些我安装过程中遇到的问题和注意点,RAC暂时还未配置,稍后找时间补上 ~~~

现在网上找一篇好的文章好难,往往要在一个话题或技术上找多方资源东拼西凑,互相借鉴才能达成目的,原因就是很多细节部分描述不清或者忽略,这样往往会给读者带来负效应,本文旨为读者呈现每一步的细节操作和异常处理,如有不足,请指正,谢谢!

友情提醒: 本文参照link较多,请细心并且耐心地进行每一步操作

Resource Link

Oracle Linux Installation

参考列表:

以下操作步骤基本是按上面两条link走的,有一些地方不一样或者是没必要的我会在下面详细讲解,我装的时候以link1为主线,然后参照link2word文档进行,没有特殊标记的一般都是根据link1操作,大家也可以这样操作,可以少遇一些坑,节省一些时间~~~

注意点:

  • Base server这一步很关键

    • 勾选Oracle Linux Server, Resilient StorageScalable Filesystem Support(参照link2

    • 勾选Customize Now,这一步依然非常关键,只有勾选了才可以装一些Oracle Linux需要的套件

    • 需要手动添加安装的套件(系统默认勾选的不要删掉,这边的操作只添加勾选):

      • Base SystemCompatibility librariesLegacy UNIX compatibility

      • Servers: System administration tools

      • Desktops: DesktopDesktop PlatformFontsGeneral Purpose DesktopGraphical Administration ToolsInput MethodsX Window System

      • Development: Additional DevelopmentDevelopment Tools

      • Appilication: Internet Browser

  • 安装应该是1390个包,装好直接reboot

  • 这时候创建普通用户的时候,千万不要创建oracle用户,否则之后会有很多麻烦

Oracle Linux Configuration(important and complicated)

下面讲的主要是和两个文档不同的地方(依然以link1为主线):

1. selinux需要dsiable

2. /etc/sysctl.conf参照link2kernel.shmmax = 536870912(这行参照link2

3. /etc/security/limits.conf

  oracle soft nproc 16384
  oracle hard nproc 16384
  oracle soft nofile 4096
  oracle hard nofile 65536
  oracle soft stack 10240

4. oracle linux 6.5光盘下载包(我是通过yum安装,没有安装的大部分都是系统已经安装了,少部分是没必要安装)

  • 需要安装:

    • ksh

    • libaio-devel.i686

    • libaio-devel.x86_64

    • libaio.i686

    • libstdc++.i686

    • libstdc++-4.4.7-18.el6.i686

    • compat-libstdc++-33.i686

  • 不需要安装:

    • numactl-devel-2*x86_64*

由于我本地的是libstdc++-4.4.7-4.el6.x86_64,而安装的是libstdc++-4.4.7-18.el6.i686,版本不匹配会造成yum报错,而这个库作为众多库的依赖还不能删除,所以只能强行升级:yum install libstdc++-4.4.7-18.el6.i686,然后再安装i686文件

5. 路径、权限与环境变量配置

这一步参照: Automating Database Startup and Shutdown on Linux
附上脚本和~/.bash_profile:
start_all.sh

#!/bin/bash
. /home/oracle/scripts/setEnv.sh

export ORAENV_ASK=NO
. oraenv
export ORAENV_ASK=YES

dbstart $ORACLE_HOME

stop_all.sh

#!/bin/bash
. /home/oracle/scripts/setEnv.sh

export ORAENV_ASK=NO
. oraenv
export ORAENV_ASK=YES

dbshut $ORACLE_HOME

setenv.sh

# Oracle Settings
export TMP=/tmp
export TMPDIR=$TMP

export ORACLE_HOSTNAME=tonydb.localdomain
export ORACLE_UNQNAME=sampledb
export ORACLE_BASE=/home/oracle/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=sampledb

export PATH=/usr/sbin:/usr/local/bin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

~/.bash_profile最后一行追加:

. /home/oracle/scripts/setenv.sh

6. 安装FTP并上传zip文件(这一步有需求就执行,我是通过windows传输到linux上)

安装包在页面最上方Resource Link的第二个link,有两个zip包,都是需要的,这就是Oracle Database 11g R2的包,下面就开始安装数据库了,离成功也就不远了

Oracle Database 11g R2 Installation

参照: Oracle Database 11g Release 2 Installation on RHEL/CentOS 6.x/5.x/4.x,以这个link的步骤为主,link1link2为辅

1. 如果出现next button闪退的现象,进入preference里面调节屏幕分辨率即可

2. check时候报错,如果你在上面安装了那么就ignore吧,因为这些包都安装了,只不过版本比它check的高:

libaio-0.3.105
compat-libstdc++-33-3.2.3
libaio-devel-0.3.105
libgcc-3.4.6
libstdc++-3.4.6
unixODBC-2.2.11
unixODBC-2.2.11
unixODBC-devel-2.2.11
unixODBC-devel-2.2.11
pdksh-5.2.14

Oracle Listener Configuration

参照: Oracle Listener

最后test不成功也没关系,先保存设置进行下一步,这边把lsnrcetl起起来就可以了,先不要进入oracle命令行,需要等下一步创建了数据库再进行startup等操作

问题1:使用netmgr命令进入页面更改配置最后保存的时候报错Save Network Configuration entry failed
解决:点击detail可知具体错误原因,可以看到报错信息最后是permission denied,这是因为第一次你是用的root用户登录netmgr,所以造成tnsnames.ora权限是root用户权限,所以你更改配置信息失败,所以chown oracle:oinstall tnsnames.ora搞定

问题2:lsnrctl start失败报错permission denied
解决:问题和上面一样,只不过这次是listener.ora的权限不对,所以向上面的做法再做一次,这一点可以看出拍错很重要,要多看detail信息

创建数据库

dbca进入创建向导,填写正确的sidsid不用填ORCL,就用同步生成的就好,不同的数据库可以拥有不同的sid,按照默认的配置不断地next就好

  • 安装后的默认数据库为orcl,如需创建新的数据库

    • 使用辅助工具(Linux UI mode)

    root@oracledb: xhost local:oracledb
    root@oracledb: su - oracle
    oracle@oracledb: dbca

    • 使用em管理WebUI

  • 创建表空间

    • 使用sqlplus

    su - oracle (Windows下此步骤省略)
    sqlplus / as sysdba
    create tablespace test_space datafile '/opt/oracle/oradata/test_data.dbf' size 500M

    • 使用em管理WebUI

  • 创建用户

    • 使用sqlplus

    su - oracle (Windows下此步骤省略)
    sqlplus / as sysdba
    create user test identified by test default tablespace test_space;

    • 使用em管理WebUI

  • 授权用户权限

    • 使用sqlplus

    su - oracle (Windows下此步骤省略)
    sqlplus / as sysdba
    grant connect, resource to test;

    • 使用em管理WebUI

  • 授权DBA权限(RMAN需要dba权限来运行)

    • 使用sqlplus

    su - oracle (Windows下此步骤省略)
    sqlplus / as sysdba
    grant sysdba to test;

    • 使用em管理WebUI

数据库启动/关闭

  • 切换用户

root@oracledb: su - oracle

  • 启动监听

lsnrctl start

  • 启动实例

su - oracle (Windows下此步骤省略)
sqlplus /nolog
conn /as sysdba
startup

  • 关闭实例

su - oracle (Windows下此步骤省略)
sqlplus /nolog
conn /as sysdba
shutdown immediate
exit

  • 关闭监听

lsnrctl stop

归档日志模式启动/关闭

  • 启动归档日志模式

sqlplus /as sysdba
shutdown immediate
startup mount
alter database archivelog
alter database open

  • 关闭归档日志模式

sqlplus /as sysdba
shutdown immediate
startup mount
alter database noarchivelog
alter database open

所有相关参考:

作者: Tony

日期: 2017/06/26


Tony_Zby
7.1k 声望154 粉丝

世界太大,没事瞄一瞄


下一篇 »
Linux Udev