zoukankan      html  css  js  c++  java
  • ubuntu13.04装配oracle11gR2

     

    http://jingyan.baidu.com/album/bea41d435bc695b4c41be648.html?picindex=2

    http://www.360doc.com/content/12/1008/17/8825738_240269673.shtml

    http://hswong3i.net/blog/hswong3i/oracle-database-11g-release-2-ubuntu-12-04-howto

    在ubuntu13.04下安装企业版oracle11g前的准备:

    1.安装jdk并下载oracle11g安装文件,这2个都上oracle官网去下载吧,下载完成将oracle文件先放一边,将jdk解压出来待配置完环境变量就可以直接用了。这里为什么装jdk,下面有用到。

    jdk环境变量的配置:

    sudo gedit /etc/profile

     在打开的文件中添加:

    # java environment
    JAVA_HOME=/home/xhh/soft/jdk/jdk1.7.0_25

    # oracle
    export ORACLE_BASE=/home/xiahaihu/soft/oracle/oracle11gR2
    export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
    export NLS_LANG="AMERICAN_AMERICA.ZHS16GBK"
    export ORACLE_SID=hhxdb

    export PATH=$JAVA_HOME/bin:$ORACLE_HOME/bin:$PATH

     这里oracle的环境变量也一起配置了,ORACLE_BASE 为oracle安装目录,等下安装向导指向这个文件路径就行了,NLS_LANG设置编码和ORALCE_SID指定启动实例名称等下再做说明。

    注销或重启系统配置生效,终端输入:

    java -version

     就可以查看jdk的版本了,jdk准备完成。

    2.准备好2个shell文件,分别执行,待完成后开始下一步。

    (1)安装oracle相关的依赖包

    apt-get update

    apt-get install build-essential 
    apt-get install libaio1 
    apt-get install libaio-dev 
    apt-get install unixODBC 
    apt-get install unixODBC-dev 
    apt-get install pdksh 
    apt-get install expat 
    apt-get install sysstat 
    apt-get install libelf-dev 
    apt-get install elfutils 
    apt-get install lsb-cxx 
    apt-get install ksh 
    apt-get install libmotif3 
    apt-get install alien 
    apt-get install libtool 
    apt-get install lsb-rpm 
    apt-get install xterm g++ gcc make binutils lesstif2 libc6 libc6-dev rpm libmotif4 libaio1 libstdc++6 alie
    apt-get install gcc libaio1 lesstif2 lesstif2-dev make libc6 libc6-i386 libc6-dev-i386 libstdc++5 lib32stdc++6 lib32z1 ia32-libs

    (2)创建链接

    mkdir /usr/lib64
    sudo ln -s /usr/bin/awk /bin/awk 
    sudo ln -s /usr/bin/rpm /bin/rpm 
    sudo ln -s /usr/bin/basename /bin/basename 

    sudo ln -s /usr/lib/x86_64-linux-gnu/libc_nonshared.a /usr/lib64 
    sudo ln -s /usr/lib/x86_64-linux-gnu/libpthread_nonshared.a /usr/lib64 
    sudo ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.5 /usr/lib64 
    sudo ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/lib64 
    sudo ln -s /lib/x86_64-linux-gnu/libgcc_s.so.1 /lib64

     准备工作完毕,开始oracle11g安装

    1.将下载好的oracle11g安装文件:linux.x64_11gR2_database_1of2.zip 和 linux.x64_11gR2_database_2of2.zip解压出来,最终得到一个文件夹 database。

    安装命令

    /home/xhh/database/runInstaller -jreLoc /opt/jdk1.7.0_25/jre

     这样就可以跟着中文向导安装程序一步步安装oracle了,不会有乱码的问题。

    安装全流程演示可以参考文章最后的链接。

    向导安装需要注意的地方:

    (1)oracle实例编码的选择

    (2)oracle安装 先决条件检查 可能失败,没关系,本人的就是全失败,只要完成了前面的准备工作,就点击 全部忽略 吧。

    (3)安装过程中可能会弹出一些错误,别急这样解决,在不关闭安装程序的情况下打开一个新终端,输入以下命令:

    如果没有设置ORACLE_HOME,就先执行下面这一句,如则就可以跳过这一句

    export ORACLE_HOME=/home/xhh/soft/oracle/product/11.2.0/dbhome_1
    sed -i 's/^(s*$(MK_EMAGENT_NMECTL))s*$/1 -lnnz11/g' $ORACLE_HOME/sysman/lib/ins_emagent.mk
    sed -i 's/^($LD $LD_RUNTIME) ($LD_OPT)/1 -Wl,--no-as-needed 2/g' $ORACLE_HOME/bin/genorasdksh
    sed -i 's/^(s*)($(OCRLIBS_DEFAULT))/1 -Wl,--no-as-needed 2/g' $ORACLE_HOME/srvm/lib/ins_srvm.mk
    sed -i 's/^(TNSLSNR_LINKLINE.*$(TNSLSNR_OFILES)) ($(LINKTTLIBS))/1 -Wl,--no-as-needed 2/g' $ORACLE_HOME/network/lib/env_network.mk
    sed -i 's/^(ORACLE_LINKLINE.*$(ORACLE_LINKER)) ($(PL_FLAGS))/1 -Wl,--no-as-needed 2/g' $ORACLE_HOME/rdbms/lib/env_rdbms.mk

     执行完成,点击“重试”继续安装,如果出现这样一个错误:

    INFO: make: *** [ctxhx] 

    INFO: End output from spawned process.
    INFO: ----------------------------------
    INFO: Exception thrown from action: make
    Exception Name: MakefileException
    Exception String: Error in invoking target 'install' of makefile '/opt/app/oracle/product/11.2/db_1/ctx/lib/ins_ctx.mk'. See '/opt/app/oraInventory/logs/installActions2012-11-02_12-26-30PM.log' for details.
    Exception Severity: 1
     忽略吧,继续安装,本人就遇到了这个错误,google了大量的帖子才决定的,具体引发错误原因已经忘记了,呵呵。

    2.其他一些事情处理,主要针对自己在使用oracle时遇到的一些问题

    (1)手动启动数据库

    启动监听:

    lsnrctl start

     启动实例:

    sqlplus / as sysdba
    startup

     这样就启动了 ORALCE_SID 所配置的实例,本人oracle实例名和服务名是一样的。

     关闭监听命令

    lsnrctl stop

    (2)创建和删除实例

    执行:

    dbca

     如果向导是乱码,就先执行这一句:

    export LANG=en_US

     切换当前会话编码为英文吧。

    (3)启动多个实例

    假如先启动firstdb

    export ORACLE_SID=firstdb
    sqlplus / as sysdba
    startup
    再启动seconddb
    export ORACLE_SID=seconddb
    sqlplus / as sysdba
    startup
     这样2个实例就都起来了。
    关闭实例命令
    shutdown
     
    (4)执行sql文件创建表或存储过程中文乱码的问题
    这个是与sql文件来源编码相关的,就是说从firstdb导出的sql文件编码是以firstdb实例决定的,如果该sql文件导入seconddb实例,编码不同就会出现乱码。
    可以这样解决:
    设置NLS_LANG环境变量,就上面已经配置好了的这句
    export NLS_LANG="AMERICAN_AMERICA.ZHS16GBK"
    然后在sqlplus中执行sql文件
    sqlplus / as sysdba
    connect second/second@seconddb
    @/home/xhh/temp/sql.sql
     这样执行就不会出现中文乱码了,如果不是从sqlplus而是用其他工具执行sql文件可能还是会出现乱码的。
    (5)监听配置和启动oracle EM console
    监听管理
    netmgr
     如果乱码别忘了先执行这句
    export LANG=en_US
     启动oracle EM
    emctl start dbconsole
     仔细看命令窗会看到类是这样一个地址:https://xhh-ubuntu:1158/em/console/aboutApplication,我的就是这个,在浏览器打开就可以监视oracle了。
    (6)另外oracle官网的 SQL Developer 也比较强大linux下可以用这个,跟WIN下面的 PL/SQL Developer 差不多,如果启动监听看到这个 The listener supports no services 我就没管,照常使用。
     
     
     
  • 相关阅读:
    基于简单工厂模式的计算器程序
    Android网络请求之OkHttp框架
    利用Volley框架实现手机号归属地查询
    Android网络请求之HttpURLConnection/HttpClient
    HDU4001 最长上升子序列
    xml易混淆的几组属性
    HDU2444 二分图
    HDU2018 斐波那契
    HDU1427 速算24点
    工厂模式
  • 原文地址:https://www.cnblogs.com/lvdongjie/p/3771729.html
Copyright © 2011-2022 走看看