在 Debian 上配置 Oracle 数据库(通常指 Oracle Database)并不像在 RHEL/CentOS 上那么“官方友好”,因为 Oracle 官方主要支持 RHEL、Oracle Linux、SUSE。但在 Debian 上也是可行的,常见做法有两种:
适合:Java / Python / PHP / C++ 连接 Oracle
sudo apt install -y wget gnupg
wget https://download.oracle.com/otn_software/linux/instantclient/219000/oracle-instantclient-basic-21.9.0.0.0-1.x86_64.rpm
Debian 用 rpm 不方便,建议直接用 zip 版:
wget https://download.oracle.com/otn_software/linux/instantclient/219000/instantclient-basic-linux.x64-21.9.0.0.0.zip
unzip instantclient-basic-linux.x64-21.9.0.0.zip -d /opt
export ORACLE_HOME=/opt/instantclient_21_9
export LD_LIBRARY_PATH=$ORACLE_HOME:$LD_LIBRARY_PATH
export PATH=$ORACLE_HOME:$PATH
sqlplus user/pass@host:1521/service
⚠️ 仅建议测试/学习环境
sudo apt update
sudo apt install -y alien libaio1 unixodbc vim
创建用户:
sudo groupadd oinstall
sudo groupadd dba
sudo useradd -m -g oinstall -G dba oracle
sudo passwd oracle
sudo vim /etc/sysctl.conf
添加:
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmax = 4294967295
kernel.shmall = 1048576
sudo sysctl -p
从 Oracle 官网下载:
LINUX.X64_193000_db_home.zip解压:
unzip LINUX.X64_193000_db_home.zip -d /u01/app/oracle/product/19.3.0/dbhome_1
export DISPLAY=:0
./runInstaller
或静默安装(复杂,需要 response 文件)
docker run -d \
-p 1521:1521 \
-e ORACLE_PASSWORD=oracle \
container-registry.oracle.com/database/express:21
或:
docker run -d -p 1521:1521 gvenzl/oracle-xe
| 问题 | 解决 |
|---|---|
| libaio 缺失 | apt install libaio1 |
| 中文乱码 | 设置 NLS_LANG |
| Debian 不被识别 | 修改 /etc/os-release |
| 内存不足 | 至少 2G RAM |
如果你告诉我:
我可以给你一步一步的具体命令。