在Ubuntu上安装Oracle相关软件(数据库/客户端/工具)的通用流程及注意事项
系统要求
安装基础依赖
在终端执行以下命令,安装Oracle软件所需的系统依赖:
sudo apt update
sudo apt install -y alien libaio1 unixODBC wget unzip
alien用于转换RPM包为DEB格式(若需安装Oracle提供的RPM包);libaio1是Oracle必需的异步I/O库;unixODBC用于数据库连接驱动。
若需安装Oracle 10g Express Edition(XE),可通过Oracle官方源快速部署:
/etc/apt/sources.list,添加以下行:deb http://oss.oracle.com/debian unstable main non-free
wget http://oss.oracle.com/el4/RPM-GPG-KEY-oracle
sudo apt-key add RPM-GPG-KEY-oracle
sudo apt update
sudo apt install -y oracle-xe-client
注:Oracle 11g及以上版本的Database软件未提供Ubuntu原生APT包,需通过官方下载页面获取RPM/压缩包安装。
.zip或.rpm格式);# 创建用户组(dba:数据库管理员;oper:数据库操作员)
sudo groupadd -g 503 dba
sudo groupadd -g 504 oper
# 创建oracle用户(属主为oinstall组,附加dba、oper权限)
sudo useradd -u 501 -g oinstall -G dba,oper -s /bin/bash -m oracle
sudo passwd oracle # 设置密码
# 创建安装目录并赋权
sudo mkdir -p /u01/app/oracle/product/19.0.0/dbhome_1 # 替换为实际版本目录
sudo chown -R oracle:oinstall /u01
sudo chmod -R 775 /u01
/home/oracle/.bashrc(oracle用户的配置文件),添加以下内容:export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.0.0/dbhome_1 # 替换为实际版本目录
export ORACLE_SID=orcl # 数据库实例名(默认)
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export PATH=$ORACLE_HOME/bin:$PATH
使配置生效:source /home/oracle/.bashrc
su - oracle
cd /path/to/oracle/database/install/dir # 替换为下载的软件包路径
./runInstaller # 图形化安装(需安装X11转发或远程桌面)
若为无图形界面的服务器,可使用静默安装模式(需提前准备响应文件):./runInstaller -silent -responseFile /path/to/response_file.rsp
安装过程中需选择“自定义安装”,配置数据库字符集(如AL32UTF8)、实例名等参数。Oracle Instant Client是轻量级客户端库,用于应用程序连接Oracle数据库(无需安装完整数据库)。
.zip格式),解压至/opt目录:sudo mkdir -p /opt/oracle
sudo unzip instantclient-basic-linux.x64-21.1.0.0.0.zip -d /opt/oracle
sudo mv /opt/oracle/instantclient_21_1 /opt/oracle/instantclient
/home/oracle/.bashrc(或应用使用的环境配置文件),添加以下内容:export LD_LIBRARY_PATH=/opt/oracle/instantclient:$LD_LIBRARY_PATH
export PATH=/opt/oracle/instantclient:$PATH
使配置生效:source /home/oracle/.bashrc
ls命令确认文件存在(如libclntsh.so),或通过sqlplus测试连接(需提前配置TNS信息)。若需通过Python应用连接Oracle数据库,需安装cx_Oracle模块(纯Python扩展,依赖Oracle客户端库)。
pip安装cx_Oracle(推荐使用虚拟环境):sudo apt install -y python3-pip
python3 -m venv myenv # 创建虚拟环境
source myenv/bin/activate
pip install cx_Oracle
test_oracle.py):import cx_Oracle
conn = cx_Oracle.connect("username/password@hostname:1521/orcl") # 替换为实际连接信息
cursor = conn.cursor()
cursor.execute("SELECT * FROM dual")
print(cursor.fetchone())
conn.close()
运行脚本:python3 test_oracle.py
若输出('X',)则表示连接成功。环境变量未生效:
确保~/.bashrc或/etc/environment中的变量设置正确,执行source命令刷新;若仍无效,检查变量是否拼写错误(如LD_LIBRARY_PATH而非LD_LIBRARY_PAHT)。
ORA-21561: OID generation failed:
编辑/etc/hosts文件,添加主机名与IP地址的映射(如127.0.0.1 localhost your_hostname),保存后重启系统或执行sudo hostnamectl set-hostname your_hostname。
依赖缺失错误:
若安装过程中提示缺少libnnz19.so、libaio.so.1等库,通过apt安装对应依赖(如sudo apt install libaio1),或手动下载并放置至/usr/lib目录。