如何在 Ubuntu 14.04 上安装 Oracle 11gR2?

如何在 Ubuntu 14.04 上安装 Oracle 11gR2?

请为我提供在 Ubuntu 14.04 上安装 oracle 11gr2 的指导。

答案1

1.下载Oracle 数据库快捷版。

2. 安装Oracle数据库前的说明

  1. 复制下载的文件并将其粘贴到主目录中。

  2. 使用下载的 .zip 文件解压缩:

     unzip oracle-xe-11.2.0-1.0.x86_64.rpm.zip 
    
  3. 安装所需的软件包:

     sudo apt-get install alien libaio1 unixodbc # still works in 22.04
    
  4. 将目录更改为 Disk1 目录:

     cd Disk1/
    
  5. 将.rpm 包格式转换为.deb 包格式(Ubuntu 使用的格式):

     sudo alien --scripts -d oracle-xe-11.2.0-1.0.x86_64.rpm
    
  6. 创建所需的 chkconfig 脚本:

     sudo nano /sbin/chkconfig
    

    nano 文本编辑器启动后,命令显示在屏幕底部。现在将以下内容复制并粘贴到文件中并保存:

     #!/bin/bash
     # Oracle 11gR2 XE installer chkconfig hack for Ubuntu
     file=/etc/init.d/oracle-xe
     if [[ ! `tail -n1 $file | grep INIT` ]]; then
         echo >> $file
         echo '### BEGIN INIT INFO' >> $file
         echo '# Provides: OracleXE' >> $file
         echo '# Required-Start: $remote_fs $syslog' >> $file
         echo '# Required-Stop: $remote_fs $syslog' >> $file
         echo '# Default-Start: 2 3 4 5' >> $file
         echo '# Default-Stop: 0 1 6' >> $file
         echo '# Short-Description: Oracle 11g Express Edition' >> $file
         echo '### END INIT INFO' >> $file
     fi
     update-rc.d oracle-xe defaults 80 01
    
  7. 更改chkconfig文件的权限:

     sudo chmod 755 /sbin/chkconfig  
    
  8. 设置内核参数。Oracle 11gR2 XE 需要额外的内核参数,您需要使用以下命令进行设置:

     sudo nano /etc/sysctl.d/60-oracle.conf
    
  9. 将以下内容复制到文件中并保存:

     # Oracle 11g XE kernel parameters 
     fs.file-max=6815744  
     net.ipv4.ip_local_port_range=9000 65000  
     kernel.sem=250 32000 100 128 
     kernel.shmmax=536870912 
    
  10. 验证更改:

    sudo cat /etc/sysctl.d/60-oracle.conf 
    
  11. 您应该会看到之前输入的内容。现在加载内核参数:

    sudo service procps start # If this doesn't work try sudo systemctl start procps 
    
  12. 验证新参数是否已加载:

    sudo sysctl -q fs.file-max
    

您应该会看到之前输入的文件最大值。

  1. 设置/dev/shmOracle 的挂载点。创建以下文件:

    sudo nano /etc/rc2.d/S01shm_load
    
  2. 将以下内容复制到文件中并保存。

    #!/bin/sh
    case "$1" in
    start)
        mkdir /var/lock/subsys 2>/dev/null
        touch /var/lock/subsys/listener
        rm /dev/shm 2>/dev/null
        mkdir /dev/shm 2>/dev/null
    *)
        echo error
        exit 1
        ;;
    
    esac 
    
  3. 更改文件的权限:

    sudo chmod 755 /etc/rc2.d/S01shm_load
    
  4. 运行以下命令:

    sudo ln -s /usr/bin/awk /bin/awk 
    sudo mkdir /var/lock/subsys 
    sudo touch /var/lock/subsys/listener
    sudo reboot
    

3.安装Oracle数据库

  1. 安装 Oracle DBMS:

    sudo dpkg --install oracle-xe_11.2.0-2_amd64.deb
    
  2. 配置 Oracle:

    sudo /etc/init.d/oracle-xe configure 
    
  3. 通过编辑 .bashrc 文件来设置环境变量:

    nano ~/.bashrc
    
  4. 将以下行添加到文件末尾:

     export ORACLE_HOME=/u01/app/oracle/product/11.2.0/xe
     export ORACLE_SID=XE
     export NLS_LANG=`$ORACLE_HOME/bin/nls_lang.sh`
     export ORACLE_BASE=/u01/app/oracle
     export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
     export PATH=$ORACLE_HOME/bin:$PATH
    
  5. 通过执行您的配置文件来加载更改:

    . ~/.bashrc
    
  6. 启动 Oracle 11gR2 XE:

     sudo service oracle-xe start
    
  7. 使用以下命令将用户 YOURUSERNAME 添加到组 dba:

    sudo usermod -a -G dba YOURUSERNAME
    

4. 使用 Oracle XE 命令 shell

  1. 启动 Oracle XE 11gR2 服务器:

    sudo service oracle-xe start
    
  2. 以系统管理员身份启动命令行 shell:

    sqlplus sys as sysdba
    

    输入之前配置 Oracle 时提供的密码。现在您将进入一个仅能理解 SQL 命令的 SQL 环境。

  3. 使用 SQL 命令在 Oracle 中创建常规用户帐户:

    create user USERNAME identified by PASSWORD;
    

    将 USERNAME 和 PASSWORD 替换为您选择的用户名和密码。请记住此用户名和密码。如果您在执行上述操作时出错并出现有关 resetlogs 的消息,请执行以下 SQL 命令并重试:

    alter database open resetlogs;
    
  4. 使用 SQL 命令向用户帐户授予权限:

    grant connect, resource to USERNAME;
    

    将 USERNAME 和 PASSWORD 替换为您选择的用户名和密码。请记住此用户名和密码。

  5. 使用 SQL 命令退出系统管理 shell:

    exit;
    
  6. 使用以下命令以普通用户身份启动命令行 shell:

    sqlplus
    

现在您可以运行 SQL 命令。

答案2

一切正常,但我收到以下错误:

sudo /etc/init.d/oracle-xe start
[....] Starting oracle-xe (via systemctl): oracle-xe.serviceJob for oracle-xe.service failed because the control process exited with error code. See "systemctl status oracle-xe.service" and "journalctl -xe" for details.
 failed!

深入研究:

systemctl status oracle-xe.service
Jan 27 10:01:05 <myusername> su[29699]: No passwd entry for user 'oracle'

我通过简单地添加一个用户解决了这个问题:

sudo adduser oracle

希望这对某人有帮助。

相关内容