zoukankan      html  css  js  c++  java
  • Ubuntu 中安装 Oracle 10g

    .

    .

    .

    .

    现在,心情说不出的激动~

    最近为了在 Linux 里面安装 Oracle 数据库可以说是费尽了心思,结果总是出现各种各样的问题。。最开始是不支持 Ubuntu 系统安装,可是我个人比较习惯使用 Ubuntu 进行 Java 开发,所以不想换成 RedHat 系统,但是在网上查了半天资料也没找到在 Ubuntu 上面安装的办法;于是在虚拟机中换成了 RedHat 系统做安装测试,结果好不容易装上了 RedHat4 后发现提示了一大堆错误,其中包括“不支持该内核版本”、缺少 N 多带有依赖关系的软件包等等等等。。。。。(下面还有一大堆错误,已经不敢往下看了。。。)

    于是乎换回了 Ubuntu 11.04 系统,继续想办法,经过了两天的奋斗后,终于找到了解决办法,现在将整个安装步骤共享出来,希望能够让遇到同样头疼的问题的童鞋迅速找到解决方案。

    好了,废话少说,现在我们言归正传。

    首先配置 Oracle 所需的安装环境。

    配置 Oracle 的安装环境参考本文完成:http://wiki.ubuntu.org.cn/Ubuntu%E4%B8%8AOracle10g%E5%AE%89%E8%A3%85%E6%8C%87%E5%8D%97

    安装各种依赖的软件包。

    apt-get install gcc make binutils lesstif2 libc6 libc6-dev rpm libmotif3 libaio1 libstdc++6 alien
    

    创建用户。

    # adduser oracle
    正在添加用户"oracle"...
    正在添加新组"oracle" (1001)...
    正在添加新用户"oracle" (1002) 到组"oracle"...
    创建主目录"/home/oracle"...
    正在从"/etc/skel"复制文件...
    输入新的 UNIX 密码: 
    重新输入新的 UNIX 密码: 
    passwd:已成功更新密码
    Changing the user information for oracle
    Enter the new value, or press ENTER for the default
    	Full Name []: oracle
    	Room Number []: 
    	Work Phone []: 
    	Home Phone []: 
    	Other []: 

    adduser 命令系统会自动创建oracle用户的文件。

    添加如下的行到/etc/sysctl.conf 中:

    kernel.shmmax = 3147483648
    kernel.shmmni = 4096
    kernel.shmall = 2097152
    kernel.sem = 250 32000 100 128
    fs.file-max = 65536
    net.ipv4.ip_local_port_range = 1024 65000

    添加如下的行到/etc/security/limits.conf中:

    * soft nproc 2407
    * hard nproc 16384
    * soft nofile 1024
    * hard nofile 65536
    

    修改了以上文件後,必须让其生效,或重启系统。


    创建一个文件如 kk,内容如下:

    #!/bin/bash
    ln -s /usr/bin/awk /bin/awk
    ln -s /usr/bin/rpm /bin/rpm
    ln -s /usr/bin/basename /bin/basename
    mkdir /etc/rc.d
    ln -s /etc/rc0.d /etc/rc.d/rc0.d
    ln -s /etc/rc2.d /etc/rc.d/rc2.d
    ln -s /etc/rc3.d /etc/rc.d/rc3.d
    ln -s /etc/rc4.d /etc/rc.d/rc4.d
    ln -s /etc/rc5.d /etc/rc.d/rc5.d
    ln -s /etc/rc6.d /etc/rc.d/rc6.d
    ln -s /etc/init.d /etc/rc.d/init.d
    

    创建後,切换到 root 用户去执行一下。

    创建 RedHat 的版本声明文件。

    sudo gedit /etc/redhat-release

    在/etc/redhat-release中添加以下语句,以使安装程序认为正在一个RedHat的系统上安装:

    Red Hat Linux release 3.1 (drupal)
    

    配置环境变量。

    编辑 /home/oracle/.bashrc,增加以下export 的内容。

    export ORACLE_HOME=/opt/orcl10
    export ORACLE_OWNER=oracle
    export ORACLE_SID=orcl
    export ORACLE_TERM=xterm
    export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin:$PATH


    配置好 Oracle 的安装环境之后开始安装 JDK 环境,我下载的是 jdk-6u26-i586.bin 这个文件,版本是 jdk1.6 的。

    安装 JDK 是参考这篇文章安装的:http://forum.ubuntu.org.cn/viewtopic.php?t=183803

    把下载的 JDK 安装文件复制到 /usr/lib/jvm/java 中:  

    sudo mkdir -p /usr/lib/jvm/java
    cp ~/下载/jdk-6u26-i586.bin /usr/lib/jvm/java
    

    修改文件权限:

    sudo chmod u+x /usr/lib/jvm/java/jdk-6u26-i586.bin

    然后进行安装:

    cd /usr/lib/jvm/java
    ./jdk-6u26-i586.bin
    

    等待安装完成。

    等执行完成后,在当前目录得到 jdk1.6.0_26 目录,此 JDK 已经安装完成,下面进行配置。

    sudo vi /etc/environment
    

    在 environment 文件中进行如下修改。

    PATH="......:/usr/lib/jvm/java/jdk1.6.0_26/bin"
    CLASSPATH=.:/usr/lib/jvm/java/jdk1.6.0_26/lib
    JAVA_HOME=/usr/lib/jvm/java/jdk1.6.0_26
    

    切换到 Root 权限,然后执行。

    sudo -i
    source /home/你当前的用户名/.bashrc
    

    此时,环境变量设置成功(设置环境变量的方法很多,不一一列举)
    由于ubuntu中可能会有默认的jdk,如openjdk,所以,为了使默认使用的是我们安装的jdk,还要进行如下工作。
    执行

    update-alternatives --install /usr/bin/java java /usr/lib/jvm/java/jdk1.6.0_26/bin/java 300
    update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/java/jdk1.6.0_26/bin/javac 300
    

    通过这一步将我们安装的jdk加入java选单。
    然后执行

    update-alternatives --config java
    

    配置字体,否则 Oracle 安装向导会乱码。

    首先选择一个中文字体,我选择的是/usr/share/fonts/truetype/arphic/ukai.ttc

    cd /usr/lib/jvm/java/jdk1.6.0_26/jre/lib/fonts
    sudo mkdir fallback
    cd fallback
    sudo ln -s /usr/share/fonts/truetype/arphic/ukai.ttc
    sudo mkfontdir
    sudo mkfontscale

    创建安装目录。

    sudo mkdir /opt/orcl10
    
    sudo chmod 777 /opt/orcl10

    安装完 JDK 环境之后开始配置 Tomcat,我下载的是 Tomcat 7。

    安装 Tomcat 参照的文章是:http://forum.ubuntu.org.cn/viewtopic.php?t=183813

    将其移动至/usr/share/tomcat7

    sudo mkdir -p /usr/share/tomcat7
    sudo chmod 777 /usr/share/tomcat7
    mv ~/下载/apache-tomcat-7.0.16.tar.gz /usr/share/tomcat7
    

    然后进行解压缩:

    cd /usr/share/tomcat7
    tar -zxvf apache-tomcat-7.0.16.tar.gz
    

    此时得到一个文件夹:apache-tomcat-7.0.16

    然后配置环境变量:

    sudo gedit /usr/share/tomcat7/apache-tomcat-7.0.16/bin/catalina.sh
    

    在文件开头注释后插入:

    JAVA_HOME="/usr/lib/jvm/java/jdk1.6.0_26"
    

    然后启动 Tomcat 服务器:

    /usr/share/tomcat7/apache-tomcat-7.0.16/bin/startup.sh

    这样,就可以成功启动tomcat.


    开始安装:注销原来的用户,改用oracle用户登录。用env查看一下环境变量是否生效。

    断开网络链接。

    解压缩下载的 Oracle 安装包。

    cd ~/下载
    unzip 10201_database_linux32.zip
    

    进入解压缩的目录开始安装。

    cd databases
    ./runInstaller -jreLoc /usr/lib/jvm/java/jdk1.6.0_26/jre
    

    此时出现安装向导。

    选择高级安装,并等待安装完成。

    创建自启动脚本 创建 oracledb 脚本到/etc/init.d/oracledb

    sudo gedit /etc/init.d/oracledb


    内容如下

    #!/bin/bash
    #
    # /etc/init.d/oracledb
    #
    # Run-level Startup script for the Oracle Instance, Listener, and
    # Web Interface
    
    export ORACLE_HOME=/opt/ora10 #这里修改成你的 Oracle 安装目录
    export ORACLE_SID=ora1 #这里写你的 Oracle 数据库实例的 SID
    export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin:$PATH
    
    ORA_OWNR="oracle"
    # if the executables do not exist -- display error
    if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]
    then
    echo "[Oracle Error] dbstart command does not exist, quitting..."
    exit 1
    else
    echo "[Oracle Info] dbstart existance check OK"
    fi
    
    # depending on parameter -- startup, shutdown, restart
    # of the instance and listener or usage display
    case "$1" in
    start)
    # Oracle listener and instance startup
    echo "[Oracle Info] Starting oracle"
    echo "[Oracle Info] su $ORA_OWNR -c ""$ORACLE_HOME/bin/lsnrctl start"
    su $ORA_OWNR -c "$ORACLE_HOME/bin/lsnrctl start"
    if [ $? -ne 0 ] 
    then
    	echo "[Oracle Error] listener failed to start"
    exit 1
    else 
    	echo "[Oracle Info] listener start OK"
    fi
    
    su $ORA_OWNR -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"
    echo "[Oracel Info] su $ORA_OWNR -c ""$ORACLE_HOME/bin/dbstart $ORACLE_HOME"
    if [ $? -ne 0 ] 
    then
    	echo "[Oracle Error] dbstart failed to start"
    exit 1
    else
    	echo "[Oracle Info] dbstart OK"
    fi
    touch /var/lock/oracle
    echo "[Oracle Info]su $ORA_OWNR -c ""$ORACLE_HOME/bin/emctl start dbconsole"
    su $ORA_OWNR -c "$ORACLE_HOME/bin/emctl start dbconsole"
    if [ $? -ne 0 ] 
    then
    	echo "[Oracle Error] dbconsole failed to start"
    exit 1
    else
    	echo "[Oracle Info] dbconsole start OK"
    fi
    echo "[Oracle Info] Starting oracle ended OK"
    ;;
    stop)
    # Oracle listener and instance shutdown
    echo "[Oracle Info] Shutdown Oracle: "
    echo "[Oracle Info] su $ORA_OWNR -c ""$ORACLE_HOME/bin/lsnrctl stop"
    su $ORA_OWNR -c "$ORACLE_HOME/bin/lsnrctl stop"
    echo "[Oracle Info] su $ORA_OWNR -c ""$ORACLE_HOME/bin/dbshut $ORACLE_HOME"
    su $ORA_OWNR -c "$ORACLE_HOME/bin/dbshut $ORACLE_HOME"
    rm -f /var/lock/oracle
    echo "[Oracle Info]su $ORA_OWNR -c ""$ORACLE_HOME/bin/emctl stop dbconsole"
    su $ORA_OWNR -c "$ORACLE_HOME/bin/emctl stop dbconsole"
    echo "[Oracle Info] Shutdown Oracle ended OK"
    ;;
    reload|restart)
    echo "[Oracle Info]: $1 oracle"
    $0 stop
    $0 start
    ;;
    *)
    echo "[Oracle Error] Unknown context: $1"
    echo "[Oracle Info]  Usage: `basename $0` start|stop|restart|reload"
    exit 1
    esac
    exit 0
    

    设置权限,放到启动脚本中去

    sudo chmod 755 /etc/init.d/oracledb
    sudo update-rc.d oracledb defaults 99
    

    还需要编辑一下/etc/oratab,把其中的N改成Y,不然上述脚本中所调用的$ORACLE_HOME/bin/dbstart在执行时不会自动启动相应的数据库实例(这里的数据库实例是ora1)。

    sudo gedit /etc/oratab

    文件内容如下:

    #
    
    
    
    # This file is used by ORACLE utilities.  It is created by root.sh
    # and updated by the Database Configuration Assistant when creating
    # a database.
    
    # A colon, ':', is used as the field terminator.  A new line terminates
    # the entry.  Lines beginning with a pound sign, '#', are comments.
    #
    # Entries are of the form:
    #   $ORACLE_SID:$ORACLE_HOME:<N|Y>:
    #
    # The first and second fields are the system identifier and home
    # directory of the database respectively.  The third filed indicates
    # to the dbstart utility that the database should , "Y", or should not,
    # "N", be brought up at system boot time.
    #
    # Multiple entries with the same $ORACLE_SID are not allowed.
    #
    #
    ora1:/opt/ora10:Y



  • 相关阅读:
    MYSQL的一些命令
    微信支付细节说明(服务商版本)
    MYSQL的一些概念
    MYSQL内置数据库之information_schema
    Lua5.1 三色标记gc
    LUA计算table大小getn
    游戏排行榜系统设计 -- 有感
    nginx如何跑起来
    C# winform datagridview数据绑定问题
    windows共享路径访问SMB安装
  • 原文地址:https://www.cnblogs.com/0xcafebabe/p/2158885.html
Copyright © 2011-2022 走看看