个人工具

Oracle 11g for Ubuntu 8.04

来自Ubuntu中文

跳转至: 导航, 搜索

本文大部分内容来自wiki.ubuntu.org.cn上的孙高勇先生所著的Oracle 10g for ubuntu安装指南, 只是根据ubuntu8.04上安装oracle 11g的实际情况作了修改.

首先安装必须的包:
apt-get install build-essential libaio1 gawk ksh libmotif3 alien libtool lsb-rpm

而JAVA环境可以直接通过 apt-get install java 来得到, 这儿得到的是java6的运行环境.

现在开始创建用户和组, oracle 安装需要两个 unix 用户组和一个运行时的 oracle 用户。

  1. addgroup oinstall
    #addgroup dba
    #addgroup nobody
    #useradd -g oinstall -G dba -p passwd -d /home/oracle -s /bin/bash oracle
    #usermod -g nobody nobody
    #mkdir /home/oracle
    #chown -R oracle:oinstall /home/oracle
    #chmod 775 /home/oracle

创建oracle安装目录, 有很多文档,建议您将 oracle 安装到一个独立的分区上面。比如:/opt。请您根据您的需要
选择合适自己的安装目录。在本文档中,我们假设 Oracle 的安装目录为/opt/ora10。确保有至少 3.0G 的可用空间。

  1. mkdir -p /opt/oraInventory
    #mkdir -p /opt/ora
    #chown -R oracle:oinstall /opt/ora*
    #chmod -R 775 /opt/ora*

设置内核参数, 在ubuntu7.10上,我的内核参数都是够的,但在ubuntu8.04上,内核参数是不够了, 所以这步,希望大家还
是要作一下为好.

添加如下的行到/etc/sysctl.conf中,如果有些行存在的话,请把原来的行去除.
fs.file-max = 6553600
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 1024 65535
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 262144

修改limits.conf, 添加下面的行到/etc/security/limits.conf 以修改你的资源限制:

oracle soft nofile 65536
oracle hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384

让修改生效:

  1. sysctl -p

创建程序链接

  1. ln -s /usr/bin/awk /bin/awk
    #ln -s /usr/bin/rpm /bin/rpm
    #ln -s /usr/bin/basename /bin/basename

设置 Oracle 用户环境:

以 oracle 用户登录:

~$su oracle

修改~/.bash_profile 文件,去掉下列三行的注释符,使.bashrc 文件生效:

  1. if [ -f ~/.bashrc ]; then
    # . ~/.bashrc
    #fi

ununtu 默认是没有注释的,debian 用户需要取消掉这个。
添加下列行到~/.bashrc:

export GST_ID3_TAG_ENCODING=[GBK,GB13000,UTF-8]
export JAVA_HOME=/usr/lib/jvm/java-6-sun
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH

export ORACLE_BASE=/opt/ora
export ORACLE_HOME=/opt/ora/11g
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/Apache/bin:$PATH
export ORACEL_OWNER=oracle
export ORACLE_SID=orcl
export ORACLE_TERM=gnome-terminal

export LC_ALL=zh_CN.UTF-8
export LANG=zh_CN.UTF-8
export LANGUAGE=zh_CN:zh:en_CN:en
export NLS_LANG="SIMPLIFIED CHINESE"_CHINA.UTF8

执行安装, 在root权限下运行 xhost + ,这样就可以不用用oracle用户登录x也可以直接以 su oracle的方法来运行图形界面了.
在很多的安装文档中都说要建立一个/etc/redhat-release文件,但在8.04下,如果你这样子作了,会发现安装时的系统配置检查
过不去, 所以这步不要作. 如果你直接以./runInstall的话, 会发现界面上都是框框框, 这是因为没有配置redhat-release, 所以
oracle自带的jre找不到字体. 所以要以 ./runInstall -jreLoc $JRE_HOME 的形式来运行, 就会发现框框变成了实际的中文.
在安装时,请注意一下, 只安装oracle软件就好了, 不要安装数据库, 我们在安装软件完后, 再来安装数据库,要不然,你会发
现, 在安装软件时一切OK, 而到了数据库阶段, 又会变成框框框了, 这是因为在配置数据库时,所用的JRE还是oracle自带的,,
字体问题还没解决.

在安装完软件后. 我们来安装数据库. 首先,
#mkdir /usr/share/fonts/zh_CN
#mkdir /usr/share/fonts/zh_CN/TrueType
#ln -s /usr/share/fonts/truetype/wqy/wqy-zenhei.ttf /usr/share/fonts/zh_CN/TrueType/zysong.ttf
来建立所需的字体. 然后以oracle的身份
$mv /opt/ora/11g/jdk/jre/lib/fontconfig.RedHat.properties.src /opt/ora/11g/jdk/jre/lib/fontconfig.properties.src
$mv /opt/ora/11g/jdk/jre/lib/fontconfig.RedHat.bfc /opt/ora/11g/jdk/jre/lib/fontconfig.bfc
这样, 字体问题就解决了.

现在来运行 netca 来建立 listener. 然后用 dbca 来建立数据库, 在建立数据库时, 要注意选择字符集时, 用
AL16UTF8, 而本地字符集用AL32UTF16好像是这两个, 大家自己看一下, 就可以正确的显示与保存中文了.

下面就与10g上的一样了.大家自己看吧.

  • 启动数据库
    o 启动

$ sqlplus " scott/tiger as sysdba"

将出现如下连接数据库信息:

SQL*Plus: Release 10.1.0.2.0 - Production on 星期三 3 月 24 16:23:27 2004
Copyright (c) 1982, 2004, Oracle. All rights reserved.
连接到:
Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL>

表明登录数据库系统成功,运行 startup 命令启动数据库。

SQL> startup
ORACLE instance started.
Total System Global Area 336356520 bytes
Fixed Size 279720 bytes
Variable Size 268435456 bytes
Database Buffers 67108864 bytes
Redo Buffers 532480 bytes
Database mounted.
Database opened.
SQL>

表示数据库正常启动。


  • o 关闭 Oracle10g 数据库

$ sqlplus "scott/tiger as sysdba" //以 sysdba 用户登录数据库

成功登录数据库系统后,运行 shudown 命令关闭数据库。

SQL> shutdown


  • o 启动 Oracle10g 监听程序
    Oracle 的监听程序主要是为客户端的连接提供接口,在控制台窗口键入如下命令:

$ lsnrctl

将出现如下监听程序信息:

LSNRCTL for 32-bit Windows: Version 10.1.0.2.0 - Production on 24-3 月 -2004 16:59:51
Copyright (c) 1991, 2004, Oracle. All rights reserved.
欢迎来到 LSNRCTL, 请键入"help"以获得信息。
LSNRCTL>

表明登录监听程序控制台成功,运行 start 命令启动监听程序。

LSNRCTL> start

将出现监听程序的一系列启动和配置情况信息列表。信息行的最后一行是“The command completed successfully”字样时,监听程序启动成功。


  • o 关闭 Oracle10g 监听程序
    运行 stop 命令关闭监听程序。

LSNRCTL> stop

  • 创建自启动脚本
    创建 oracledb 脚本到/etc/init.d/oracledb,内容如下
  1. !/bin/bash
    #
    # /etc/init.d/oracledb
    #
    # Run-level Startup script for the Oracle Instance, Listener, and
    # Web Interface
    export ORACLE_HOME=/opt/ora/11g
    export ORACLE_SID=orcl
    export PATH=$PATH:$ORACLE_HOME/bin
    ORA_OWNR="oracle"
    # if the executables do not exist -- display error
    if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]
    then
    echo "Oracle startup: cannot start"
    exit 1
    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 -n "Starting Oracle: "
    su $ORA_OWNR -c "$ORACLE_HOME/bin/lsnrctl start"
    su $ORA_OWNR -c $ORACLE_HOME/bin/dbstart
    touch /var/lock/oracle
    su $ORA_OWNR -c $ORACLE_HOME/bin/emctl start dbconsole
    echo "OK"
    ;;
    stop)
    # Oracle listener and instance shutdown
    echo -n "Shutdown Oracle: "
    su $ORA_OWNR -c "$ORACLE_HOME/bin/lsnrctl stop"
    su $ORA_OWNR -c $ORACLE_HOME/bin/dbshut
    rm -f /var/lock/oracle
    su $ORA_OWNR -c $ORACLE_HOME/bin/emctl stop dbconsole
    echo "OK"
    ;;
    reload|restart)
    $0 stop
    $0 start
    ;;
    ***)
    echo "Usage: `basename $0` start|stop|restart|reload"
    exit 1
    esac
    exit 0

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

  1. chmod 755 /etc/init.d/oracledb
    #update-rc.d oracledb defaults 99
  • 使用企业管理器
    启动控制台
  1. emctl start dbconsole

访问数据库控制器http://localhost.localdomain:1158/em/ 要提供 sys/passwd as sysdba; 你要从一个客户端浏览器访问 em 数据库控制器,必须要运行 dbconsole 进程.安装之后,dbconsole 进程是自动会启动的.然后,如果这个集成没有启动,你可以向下面的命令行手工的启动它:

  1. cd $ORACLE_HOME/bin
    #emctl start dbconsole

这样你就可以打开 web 浏览器,输入下面的 http://hostnameortnumber/em 来访问 em db control. host 那么是你的计算机的名字或地址.portnumber 是 em db control http 的端口号,这是在安装的时候指定的.默认的是 1158 ,你可以在$ORACLE_HOME/install/portlist.ini 文件中找到这个值.
如果实例启动了,EM 就会显示 db control 登录页.你必须使用授权访问 db control 的用户登录到数据库.一开始是 sys 用户,使用在安装的时候你确定的 sys 用户的密码.从 connect as 下拉框选 sysdba,然后点登录.这样就会出现 dbcontrol 的主页.这是同 Oracle 9i 的不同的。其它的大家共同学习吧!