现在的位置: 首页 > 综合 > 正文

虚拟机red hat linux下oracle9.2i的安装配置

2013年08月26日 ⁄ 综合 ⁄ 共 6480字 ⁄ 字号 评论关闭
  1. 下载,准备
    http://download.oracle.com/otn/linux/oracle9i/9204/ship_9204_linux_disk1.cpio.gz
    http://download.oracle.com/otn/linux/oracle9i/9204/ship_9204_linux_disk2.cpio.gz
    http://download.oracle.com/otn/linux/oracle9i/9204/ship_9204_linux_disk3.cpio.gz
    我建议将安装文件放在windows的盘符下,共享文件夹,通过mount -t smbfs方式来让linux访问windows下共享的文件夹来进行安装,对虚拟linux来说,就不需要占用那么大的空间.
    需要保证虚拟就机linux和windows之间的网络畅通,用root用户给linux设置ip地址,方法:root登录图形界面,"开始菜单"->"system settings"->"network"
    虚拟linux磁盘空间8G以上,linux 2.8G,oracle 2.85G,数据库2G;
    虚拟机内存,我自己安装分配了512M,速度还比较块,我看别人用256M,很慢.
    如果上面的具备了,可以进行下面的步骤了.
  2. 环境配置,安装
    1)添加用户组,用root用户登录
    groupadd orainstall
    groupadd oradba
    groupadd oraoper
    useradd ora -G orainstall,oradba
    可以根据自己的情况用不同的用户名字和组,根据自己喜好.

    2)切换到root用户
    vi /etc/sysctl.conf
    然后在最后添加一行
    kernel.shmmax = 261986254
    该参数的值必须小于或等于物理内存的值,否则设置不会生效。含义是单个共享内存段的最大尺寸,一般设置为物理内存的一半.
    如果遗漏这步,安装的最后一步、或者dbca创建数据库的时候会报ORA-27123: unable to attach to shared memory segment错误.

    3)在.bash_profile中添加环境变量
    然后用ora用户登录,在该文件中添加如下的内容:
    #ORACLE
    export LD_ASSUME_KERNEL=2.4.1
    export ORACLE_BASE=/home/ora/ora9
    export ORACLE_HOME=/home/ora/ora9/oracle
    export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
    #NoUse
    export ORACLE_SID=linuxdb
    export ORACLE_TERM=xterm
    export TNS_ADMIN=$ORACLE_HOME/network/admin
    export NLS_LANG=AMERICAN_AMERICA.US7ASCII
    #LIB,CLASS
    LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
    LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
    export LD_LIBRARY_PATH
    export PATH=$PATH:$ORACLE_HOME/bin
    CLASSPATH=$CLASSPATH:$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
    CLASSPATH=$CLASSPATH:$ORACLE_HOME/network/jlib
    export CLASSPATH
    修改.bash_profile之后,重新登录,或者source .bash_profile就可以是上面配置的环境变量生效.

    4)解压缩文件
    在windows下,将存放安装文件的文件夹oracle共享,设置共享权限为可读可写,然后执行如下命令:
    mount -t smbfs -o username=cl,password=chenli,ip=192.168.1.100 -l //chenli/oracle /home/ora/setup
    命令解释:
    上面命令中,username=cl,password=chenli中cl是windows用户,chenli是cl用户的密码
    ip=192.168.1.100 中192.168.1.100 是windows主机的ip地址
    //chenli/oracle 中,chenli是windows主机的主机名,oracle是共享文件夹
    /home/ora/setup 是linux下的目录路径,必须存在,可以根据自己的需要,设定不同的路径.

    解压文件,顺序执行下面的命令:
    cd /home/ora/setup
    gunzip ship_9204_linux_disk1.cpio.gz
    gunzip ship_9204_linux_disk2.cpio.gz
    gunzip ship_9204_linux_disk3.cpio.gz
    cpio -idmv < ship_9204_linux_disk1.cpio
    cpio -idmv < ship_9204_linux_disk2.cpio
    cpio -idmv < ship_9204_linux_disk3.cpio
    执行完了之后,会出现Disk1,Disk2,Disk3三个目录

    5)安装
    用ora用户登录到linux的图形化界面
    进入/home/ora/setup/Disk1目录
    执行./runInstaller
    注意,有些时候显示的安装界面是乱码的,我的red hat linux 9的简体中文版,安装程序都是英文的,这个时候可以通过执行如下命令来解决问题:
    export LC_ALL=C 
    export LANG=C
    然后再执行./runInstaller就不会有乱码了.

    我在执行./runInstaller的时候出现过一次如下错误:
    ./runInstaller: line 58: ./runInstaller: cannot execute binary file
    很快我想到,估计是否安装软件错了,一看文件名是A64位的,重新下载,然后安装就没问题了。
    所以在下载的时候,一定要注意,看看安装软件是否和你的操作系统匹配。

    后面就不断选择"next"就行了。
    出现如下窗口的时候,输入前面创建的组oradba。
    选择数据库组

    出现如下窗口的时候。
    创建组权限文件
    按提示,用root用户在/tmp目录下与运行脚本orainstRoot.sh。结果如下:

    出现如下窗口
    创建环境文件
    根据提示,用root用户到对应目录下,执行脚本root.sh,结果如下:

    最后设置好sys,system等的密码之后,就完成了。

  3. 错误总结:
    我在安装过程中出现了一些问题,在这儿跟大家分享.
    1)弹出对话框,显示错误信息:thrown when the ip address of a host cannot be determined
      这时候需要用root用户打开/etc/hosts 编辑该文件,ip地址和主机名字的对应关系,尽量简单,在第二列,即主机名列,不要出现ip地址形式x.x.x.x的主机名

    2)在安装的最后,安装agent工具的时候出现如下的错误信息:
        Parameter "orahome" = /oracle/product/9.2.0
       Parameter "nodeinfo" = NO_VALUE
       Agent Service Failed
      这个问题是没有打补丁引起的,不过该问题不会影响到数据库的使用,只是agent工具不可用.
      下载p2617419_220_GENERIC.zip  p3006854_9204_LINUX.zip  p3238244_9204_LINUX.zip
      然后安装,需要重新执行oracle的安装./runInstaller,所以最好在安装前打一下这个补丁.

  4. 启动数据库
    用ora用户登录linux
    首先执行命令:sqlplus "/ as sysdba"
    显示SQL>执行命令startup,启动数据库;执行shutdown,关闭数据库.

    启动监控程序,在普通命令行模式下执行如下命令
    lsnrctl start 启动监控
    lsnrctl stop 停止监控

  5. 使用数据库
    用ora用户登录主机
    执行sqlplus "/as sysdba" 以系统dba的身份登录数据库.
    然后创建表空间,创建用户,给用户授予权限

    1)然后创建表空间
    create   tablespace   devbase      
             datafile   '/home/ora/tbspace/devbase_20080121.dbf'   size   500M  
             autoextend   on  
             next   100M  
             maxsize   1000M;
      要确保/home/ora/tbspace目录存在,有权限,足够的空间存放表空间文件

    2)创建用户
    create   user   dev  
             identified   by   dev123
             default   tablespace   devbase  
             temporary   tablespace   temp;
    创建用户dev,密码是否dev123,默认表空间为devbase  
    注意,这个时候还不能用dev登录数据库,因为dev用户还没有create session,connect,resource权限,还不能登录;

    3)给用户授予权限
      grant   resource,connect   to dev;
     grant create session to dev;
     grant create table to  dev;
     grant create tablespace to  dev;
     grant create view to  dev;
    这时你可以用dev用户进行登录了.

    4)修改用户密码
    用sys或者system用户登录,执行如下的sql修改用户密码
    alter user dev identified by chenli;

    最后还因为注意一个小问题,修改ORACLE_HOME/network/admin/tnsnames.ora,将配置该文件中所有HOST的值,全部由ip地址替换,这样在登录数据库的过程总,减少了主机名字=>ip地址的解析过程,有些时候,会提高一下登录的速度.

  6. 在普通linux用户下建立开发环境
    配置环境变量,搜索路径中可以找到oracle程序.
    vi .bash_profile 添加如下的配置
    #oracle
    export ORACLE_BASE=/home/ora/ora9
    export ORACLE_HOME=/home/ora/ora9/oracle
    export ORACLE_SID=linuxdb
    export ORACLE_TERM=xterm

    #LD_LIBRARY_PATH
    LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib:/usr/local/lib:$ORACLE_HOME/rdbms/demo

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

    建立普通用户在路径$ORACLE_HOME/bin,$ORACLE_HOME/include,$ORACLE_HOME/lib上所有目录的xr读执行权限,这样该登录用户才能使用$ORACLE_HOME/bin目录下的一些oracel程序.并且要保证在开发过程中,可以使用oracle下的头文件,库文件.

    1)创建seq对象
    create sequence SEQ_STAFF_ID
    minvalue 1
    maxvalue 9999999
    start with 1
    increment by 1
    cache 20;

    2)创建表
    create table staff_info
    (
    staff_id number(10),
    staff_name varchar2(20),
    addr       varchar2(200)
    );

    ok,一个基本的oracle数据库就可以使用了.

  7. 在windows建立oracle开发环境端开发
    在你的电脑上安装oracle(最低要求是oracle客户端),在oracle安装界面上自己选择安装模式。
    然后在oracle安装目录下找到network/admin路径,在该目录下有一个tnsnames.ora,添加如下的内容:
    local_dev =
       (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
              (CONNECT_DATA =
            (SERVER = DEDICATED)
          (SERVICE_NAME = linuxdb)
       )
    )

    保存后,打开控制台,输入命令sqlplus dev/chenli@local_dev,就可以登录linux下的linuxdb数据库了。
    这样你就可以在windows上面用plsqldeveloper等软件进行开发了。也可以用c/c++,java等程序通过tns连接oracle数据库了。

  8. 怎样获取oracle帮助
    如果在oracle开发过程中遇到错误,通过如下方法可以很快地获取出错信息:
    用oracle安装用户登录主机,然后执行命令:oerr ora errno,errno是错误代码。
    如如果你遇到一个错误信息代码1102,oracle安装用户下执行如下命令:

    就得到了错误代码1102的错误信息。

抱歉!评论已关闭.