在 Debian 下配置 Oracle 数据库通常不是官方支持的组合(Oracle 官方主要支持 RHEL / OEL / SUSE),但在实际中是可以跑起来的。下面我按常见场景给你一个清晰路线。
下面以 Oracle Database XE(最常用、最省事) 和 Oracle 客户端配置 为主说明。
Oracle XE 有官方 RPM 包,Debian 需用 alien 转换。
sudo apt update
sudo apt install -y alien libaio1 unixodbc vim
从 Oracle 官网下载:
.rpm 文件(如 oracle-database-xe-21c-1.0-1.ol8.x86_64.rpm)sudo alien -d oracle-database-xe-21c-1.0-1.ol8.x86_64.rpm
sudo dpkg -i oracle-database-xe_21c-2_amd64.deb
sudo /etc/init.d/oracle-xe-21c configure
按提示设置:
最稳、最省心
docker run -d \
-p 1521:1521 \
-p 5500:5500 \
-e ORACLE_PWD=yourpassword \
--name oracle \
container-registry.oracle.com/database/enterprise:21.3.0
然后:
docker logs -f oracle
编辑 ~/.bashrc 或 /etc/profile:
export ORACLE_HOME=/opt/oracle/product/21c/dbhomeXE
export ORACLE_SID=XE
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
source ~/.bashrc
sqlplus / as sysdba
SQL> startup;
SQL> shutdown immediate;
监听:
lsnrctl start
lsnrctl status
sudo apt install -y libaio1
下载 basic + sqlplus 的 zip:
unzip instantclient-basic-linux.x64.zip
export LD_LIBRARY_PATH=$PWD/instantclient_21_1
连接:
sqlplus user/pass@//ip:1521/XE
sudo apt install libaio1
sysctl -w kernel.shmmax=2147483648
✅ 用 Docker 或 XE 可规避
| 场景 | 建议 |
|---|---|
| 学习 | Oracle XE |
| 开发 | Docker |
| 生产 | OEL / RHEL |
| 只连库 | Instant Client |
如果你能告诉我:
我可以直接给你一份可复制执行的命令清单。