温馨提示×

Ubuntu Oracle数据库安装步骤

小樊
36
2025-12-10 20:16:30
栏目: 云计算

Ubuntu 上安装 Oracle 数据库的两种可靠方式


方式一 Docker 快速部署

  • 安装 Docker
    • 更新索引并安装:sudo apt-get update && sudo apt-get install -y docker.io
    • 启动并设置开机自启:sudo systemctl enable --now docker
  • 拉取并运行 Oracle 镜像(示例为 19.3.0.0 企业版)
    • 拉取:docker pull store/oracle/database-enterprise:19.3.0.0
    • 运行:
      docker run -d \
        --name oracle-db \
        -p 1521:1521 \
        -p 5500:5500 \
        -e ORACLE_PWD=YourStrongPassword \
        store/oracle/database-enterprise:19.3.0.0
      
    • 说明:容器首次启动会自动创建数据库,耗时较长;控制台端口 5500 可用于 EM Express。将 YourStrongPassword 替换为强口令。
  • 验证
    • 查看容器:docker ps
    • 进入容器:docker exec -it oracle-db bash
    • 以 sysdba 登录:sqlplus / as sysdba,执行 SELECT name, open_mode FROM v$database;
  • 常用管理
    • 停止/启动:docker stop/start oracle-db
    • 查看日志:docker logs -f oracle-db
  • 提示
    • 若需持久化数据,挂载卷到 /opt/oracle/oradata(示例:在 run 命令中添加 -v /your/data:/opt/oracle/oradata)。

方式二 手动安装 Oracle Database 19c XE(轻量、适合测试与开发)

  • 准备环境
    • 更新系统:sudo apt-get update
    • 安装依赖:sudo apt-get install -y alien libaio1 unixodbc bc libstdc++6-12-dev libgcc-s1
    • 创建用户与组:
      sudo groupadd -r oinstall
      sudo groupadd -r dba
      sudo useradd -m -g oinstall -G dba -s /bin/bash oracle
      sudo passwd oracle
      
    • 创建目录并授权:
      sudo mkdir -p /u01/app/oracle
      sudo chown -R oracle:oinstall /u01
      sudo chmod -R 775 /u01
      
  • 获取并安装 Oracle Database 19c XE
    • 从 Oracle 官网下载 Oracle Database 19c Express Edition for Linux x64DEB 包(例如:oracle-database-xe-19c_19.3.0-1_amd64.deb),上传至 Ubuntu。
    • 安装:
      sudo apt-get install -y ./oracle-database-xe-19c_19.3.0-1_amd64.deb
      
    • 执行配置(设置 SYS/SYSTEM 口令、监听端口等,默认监听 1521):
      sudo /etc/init.d/oracle-xe-19c configure
      
  • 配置环境变量(oracle 用户)
    • 编辑 /home/oracle/.bashrc
      export ORACLE_BASE=/u01/app/oracle
      export ORACLE_HOME=$ORACLE_BASE/product/19.0.0/dbhomeXE
      export ORACLE_SID=XE
      export PATH=$ORACLE_HOME/bin:$PATH
      export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
      
    • 使生效:source /home/oracle/.bashrc
  • 启动与验证
    • 服务管理:
      sudo systemctl start oracle-xe-19c
      sudo systemctl enable oracle-xe-19c
      
    • 登录验证:
      sqlplus / as sysdba
      SELECT name, open_mode FROM v$database;
      
  • 常见问题
    • 端口被占用:修改 /etc/sysconfig/oracle-xe-19c 中的 LISTENER_PORT,然后重启服务。
    • 内存不足:XE 默认使用较大内存,可在 /etc/init.d/oracle-xe-19c 中调整 -Xmx/-Xms 参数后再启动。

方式三 手动安装 Oracle Database 19c(通用企业版,GUI 或静默安装)

  • 准备系统与依赖
    • 安装常用构建工具与依赖:
      sudo apt-get update
      sudo apt-get install -y build-essential libaio1 unixodbc bc libstdc++6-12-dev \
        libgcc-s1 libnss3 libpam0g libssl3 libx11-6 libxext6 libxtst6 \
        libxi6 libaio-dev rpm
      
    • 创建用户与目录(同方式二)。
  • 内核参数与资源限制(示例值,按内存与业务调整)
    • 编辑 /etc/sysctl.conf
      fs.file-max = 6815744
      fs.aio-max-nr = 1048576
      kernel.shmall = 2097152
      kernel.shmmax = 2147483648
      kernel.shmmni = 4096
      kernel.sem = 250 32000 100 128
      net.ipv4.ip_local_port_range = 9000 65500
      net.core.rmem_default = 262144
      net.core.rmem_max = 4194304
      net.core.wmem_default = 262144
      net.core.wmem_max = 1048576
      
    • 使生效:sudo sysctl -p
    • 编辑 /etc/security/limits.conf
      oracle soft nproc 2047
      oracle hard nproc 16384
      oracle soft nofile 1024
      oracle hard nofile 65536
      
  • 准备安装介质
    • 从 Oracle 官网下载 Linux x86-64ZIP 安装包(两个压缩包需全部下载并放在同一目录),解压后目录内包含 runInstaller
  • 图形化安装(有桌面环境)
    • 切换到 oracle 用户并设置显示:
      sudo -iu oracle
      export DISPLAY=:0
      xhost +
      
    • 运行安装程序并按向导完成(建议选择“仅软件安装”,随后使用 dbca 建库)。
  • 静默安装(无图形界面)
    • 示例响应文件要点(保存为 response.rsp):
      oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v19.0.0
      oracle.install.option=INSTALL_DB_SWONLY
      UNIX_GROUP_NAME=oinstall
      INVENTORY_LOCATION=/u01/app/oraInventory
      ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
      ORACLE_BASE=/u01/app/oracle
      oracle.install.db.InstallEdition=EE
      oracle.install.db.OSDBA_GROUP=dba
      oracle.install.db.OSOPER_GROUP=dba
      oracle.install.db.OSBACKUPDBA_GROUP=dba
      oracle.install.db.OSDGDBA_GROUP=dba
      oracle.install.db.OSKMDBA_GROUP=dba
      oracle.install.db.OSRACDBA_GROUP=dba
      
    • 执行安装:
      ./runInstaller -silent -responseFile /path/response.rsp
      
    • 安装完成后按提示以 root 执行 $ORACLE_HOME/root.sh
  • 建库与监听
    • 使用 dbca 建库(图形或静默),或参考官方静默模板。
    • 启动监听:lsnrctl start
    • 登录验证:sqlplus / as sysdba
  • 环境变量与自启(oracle 用户)
    • ~/.bashrc 中设置 ORACLE_BASE/ORACLE_HOME/ORACLE_SID/PATH/LD_LIBRARY_PATH,并执行 source ~/.bashrc
    • 如需 systemd 自启,可创建服务单元(示例):
      sudo tee /etc/systemd/system/oracle.service >/dev/null <<'EOF'
      [Unit]
      Description=Oracle Database Service
      After=network.target
      
      [Service]
      Type=simple
      User=oracle
      Group=oinstall
      Environment="ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1"
      Environment="ORACLE_SID=ORCLCDB"
      ExecStart=$ORACLE_HOME/bin/dbstart $ORACLE_HOME
      ExecStop=$ORACLE_HOME/bin/dbshut $ORACLE_HOME
      Restart=on-failure
      
      [Install]
      WantedBy=multi-user.target
      EOF
      sudo systemctl daemon-reload
      sudo systemctl enable --now oracle
      
    • /etc/oratab 中将实例行末尾改为 :Y,以便 dbstart/dbshut 生效。

连接与验证

  • 监听状态:lsnrctl status(应看到 1521 端口与对应服务名)
  • 数据库状态:sqlplus / as sysdbaSELECT name, open_mode FROM v$database;
  • 远程连接串示例:
    jdbc:oracle:thin:@//<服务器IP>:1521/XE
    
    或(服务名方式):
    jdbc:oracle:thin:@<服务器IP>:1521/ORCLPDB1
    
  • 常用账号口令:安装或首次配置时设置的 SYS/SYSTEM 口令;XE 默认 SID 为 XE

常见问题与排错要点

  • 依赖缺失:安装 libaio1、bc、unixodbc、libstdc++ 等基础包;若 GUI 安装失败,优先尝试静默安装。
  • 内核参数与文件句柄:按上文示例设置 shmmax/shmall/sem/file-max/nofile,并执行 sysctl -p 生效。
  • 权限与目录:确保 /u01 及子目录属主为 oracle:oinstall,权限 775
  • 端口冲突:检查 1521 是否被占用(例如已有数据库或监听),必要时调整监听端口或停止占用进程。
  • 图形化问题:无桌面环境时使用 静默安装X11 转发(ssh -X)。
  • 容器数据持久化:务必挂载 /opt/oracle/oradata 到宿主机目录,避免容器重建后数据丢失。

0