Ubuntu 上安装与卸载 Oracle 的可行方案
在 Ubuntu 上部署 Oracle 常见有三种方式:使用 Docker 快速运行、安装 Oracle XE(轻量版)、以及手动安装 Oracle Database 11g/12c/19c。下面给出各自的安装与卸载要点,按你的场景选择其一即可。
方案一 Docker 运行 Oracle(最快、最干净)
- 安装 Docker
- 更新索引并安装:sudo apt-get update && sudo apt-get install -y docker.io
- 启动与开机自启:sudo systemctl enable --now docker
- 拉取并运行镜像(示例为 19.3 企业版)
- 拉取:docker pull store/oracle/database-enterprise:19.3.0.0
- 运行:将 1521(数据库)与 5500(EM Express)映射到宿主机
- docker run -d --name oracle-db -p 1521:1521 -p 5500:5500 store/oracle/database-enterprise:19.3.0.0
- 连接信息
- 主机:localhost
- 端口:1521
- SID/服务名:ORCLCDB(容器默认)
- EM Express:https://localhost:5500/em(首次登录常见账号 sys / as sysdba)
- 停止与删除
- 停止:docker stop oracle-db
- 删除容器:docker rm oracle-db
- 删除镜像:docker rmi store/oracle/database-enterprise:19.3.0.0
- 说明
- 适合开发/测试;数据持久化请挂载 -v 宿主目录:/opt/oracle/oradata。上述镜像与端口映射为官方示例用法。
方案二 安装 Oracle XE(轻量版,适合快速试用)
- 准备与依赖
- 安装转换工具与依赖:sudo apt-get update && sudo apt-get install -y alien libaio1
- 安装步骤(以 11g XE RPM 为例)
- 解压 RPM 包,转换为 DEB:alien -d --scripts oracle-xe-11.2.0-1.0.x86_64.rpm
- 安装 DEB:sudo dpkg -i oracle-xe-11.2.0-1.0.x86_64.deb
- 若安装脚本报错缺少 /sbin/chkconfig,编辑 /var/lib/dpkg/info/oracle-xe.postinst,将对应块注释后重新执行该脚本
- 配置与初始化
- 创建共享内存启动脚本(避免 ORA-00845):
- 新建:sudo tee /etc/init.d/oracle-shm <<‘EOF’
- #!/bin/sh
- case “$1” in
- start) if [ ! -e /dev/shm/.oracle-shm ]; then mkdir -p /dev/shm; mount -t tmpfs shmfs -o size=2048m /dev/shm; touch /dev/shm/.oracle-shm; fi ;;
- stop) ;;
- *) echo “Usage: $0 {start|stop}”; exit 1 ;;
- esac
- EOF
- 赋权并启用:sudo chmod 755 /etc/init.d/oracle-shm && sudo update-rc.d oracle-shm defaults 01 99
- 初始化数据库:sudo /etc/init.d/oracle-xe configure(设置 8080 管理端口、1521 监听端口、SYS 密码、是否自启)
- 连接与启停
- 命令行:sqlplus / as sysdba(启动/关闭用 STARTUP/SHUTDOWN IMMEDIATE)
- 服务:sudo service oracle-xe start|stop
- 卸载
- 卸载包:sudo apt-get remove --purge oracle-xe
- 清理配置与数据:sudo rm -rf /u01 /etc/default/oracle-xe
- 说明
- Oracle XE 为免费轻量版,适合开发/学习;上述步骤针对 11g XE 在 Ubuntu 上的常见做法。
方案三 手动安装 Oracle Database 11g/12c/19c(通用,但步骤较多)
- 准备
- 从 Oracle 官方下载 Linux x64 安装介质(ZIP 包),解压到安装目录
- 创建用户与组:sudo groupadd oinstall && sudo groupadd dba
- 创建用户:sudo useradd -g oinstall -G dba -m -s /bin/bash oracle
- 创建目录并授权:sudo mkdir -p /u01/app/oracle /u01/app/oracle/oradata
- 授权:sudo chown -R oracle:oinstall /u01 && sudo chmod -R 775 /u01
- 依赖与系统参数
- 依赖示例:sudo apt-get install -y alien libaio1 unixodbc build-essential
- 内核参数(示例,按内存调优):编辑 /etc/sysctl.conf
- fs.file-max = 65536
- kernel.shmall = 2097152
- kernel.shmmax = 2147483648
- kernel.shmmni = 4096
- kernel.sem = 250 32000 100 128
- net.ipv4.ip_local_port_range = 1024 65000
- 使生效:sudo sysctl -p
- 资源限制(/etc/security/limits.conf):
- oracle soft nproc 2047
- oracle hard nproc 16384
- oracle soft nofile 1024
- oracle hard nofile 65536
- Oracle 用户环境
- 编辑 /home/oracle/.bashrc 或 ~/.profile:
- export ORACLE_BASE=/u01/app/oracle
- export ORACLE_HOME=$ORACLE_BASE/product/19.0.0/dbhome_1
- export ORACLE_SID=orcl
- export PATH=$ORACLE_HOME/bin:$PATH
- 使生效:source ~/.bashrc
- 图形化安装(若无 GUI,可用 X11 转发)
- 以 oracle 用户执行:./runInstaller(按向导完成软件安装与建库)
- 监听与自启
- 启动监听:lsnrctl start
- 开机自启(示例 systemd 单元,路径按实际调整):
- /etc/systemd/system/oracle.service
- [Unit] Description=Oracle Auto Start Service; After=network.target
- [Service] Type=simple; User=oracle; Group=oinstall
- ExecStart=$ORACLE_HOME/bin/dbstart $ORACLE_HOME; ExecStop=$ORACLE_HOME/bin/dbshut $ORACLE_HOME; Restart=on-failure; RestartSec=30s
- [Install] WantedBy=multi-user.target
- 启用:sudo systemctl daemon-reload && sudo systemctl enable --now oracle
- 说明
- 手动安装适配面广(如 11g/12c/19c),但需自行处理依赖、内核参数、权限与环境变量等细节。
卸载 Oracle 的通用步骤
- 停止数据库与监听
- sqlplus / as sysdba → SHUTDOWN IMMEDIATE → exit
- lsnrctl stop
- 使用安装器卸载(若有 OUI)
- 进入 $ORACLE_HOME/oui/bin → 执行 ./runInstaller → 选择 Deinstall Products → 按向导移除
- 删除安装目录与数据
- 常见目录:/u01/app/oracle、/opt/oracle(按实际安装路径)
- 谨慎删除:sudo rm -rf /u01(确认无业务数据再执行)
- 清理配置与脚本
- 删除:/etc/oratab、/etc/oraInst.loc
- 删除启动脚本(若存在):sudo update-rc.d dbora remove
- 删除用户与组(可选)
- sudo userdel -r oracle
- sudo groupdel oinstall、sudo groupdel dba
- 清理环境变量
- 从 ~/.bashrc、/etc/profile 等移除 ORACLE_HOME/ORACLE_SID/LD_LIBRARY_PATH 等行
- 包管理清理(若通过 DEB/RPM 安装)
- DEB:sudo apt-get remove --purge oracle-xe
- RPM 转换安装:先找出包名(如 dpkg -l | grep oracle),再 sudo apt-get --purge remove 包名
- 清理缓存:sudo apt-get autoremove && sudo apt-get autoclean
- 说明
- 上述步骤覆盖手动安装、XE 与部分包管理安装场景;执行删除前务必确认数据已备份。