确保Ubuntu系统为64位版本,满足Oracle数据库的最低硬件要求:
更新系统软件包并安装Oracle所需的依赖包,避免安装过程中出现缺失依赖错误:
sudo apt update && sudo apt upgrade -y
sudo apt install -y alien libaio1 unixodbc build-essential gcc make binutils
这些依赖包用于支持Oracle数据库的编译、运行及网络连接。
Oracle需要专用的用户组(oinstall用于安装管理,dba用于数据库管理员权限)和用户(oracle):
sudo groupadd -g 503 oinstall
sudo groupadd -g 504 dba
sudo useradd -u 501 -g oinstall -G dba -d /home/oracle -m -s /bin/bash oracle
sudo passwd oracle # 设置oracle用户的登录密码
此处用户ID(UID)和组ID(GID)可根据实际情况调整,但需避免与系统中现有ID冲突。
Oracle的安装文件与数据文件需存放在专用目录(如/u01),并设置正确的权限:
sudo mkdir -p /u01/app/oracle/product/19.0.0/dbhome_1 # 替换为实际Oracle版本目录
sudo mkdir -p /u01/app/oracle/oradata # 数据库数据文件目录
sudo chown -R oracle:oinstall /u01
sudo chmod -R 755 /u01
确保oracle用户对/u01目录有读写权限,避免后续安装或运行时报权限错误。
编辑/etc/sysctl.conf文件,添加以下参数以优化系统内核性能(针对Oracle数据库需求):
kernel.shmmax = 3147483648 # 最大共享内存段大小(建议为物理内存的80%)
kernel.shmmni = 4096 # 共享内存段最大数量
kernel.shmall = 2097152 # 共享内存总页数(shmmax/页大小,页大小通常为4KB)
fs.file-max = 65536 # 系统最大文件描述符数
net.ipv4.ip_local_port_range = 1024 65000 # 本地端口范围(允许更多连接)
kernel.sem = 250 32000 100 128 # 信号量参数(用于进程间通信)
修改后使配置生效:
sudo sysctl -p
编辑/etc/security/limits.conf文件,增加oracle用户的资源限制(避免进程因资源不足被终止):
oracle soft nproc 2047 # 用户最多可创建的进程数(软限制)
oracle hard nproc 16384 # 用户最多可创建的进程数(硬限制)
oracle soft nofile 1024 # 用户最多可打开的文件数(软限制)
oracle hard nofile 65536 # 用户最多可打开的文件数(硬限制)
编辑oracle用户的~/.bashrc文件,添加Oracle环境变量(用于后续操作):
export ORACLE_BASE=/u01/app/oracle # Oracle基础目录
export ORACLE_HOME=$ORACLE_BASE/product/19.0.0/dbhome_1 # Oracle安装目录(替换为实际版本)
export ORACLE_SID=orcl # 数据库实例名(默认实例名为orcl,可自定义)
export PATH=$ORACLE_HOME/bin:$PATH # 将Oracle命令加入PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH # Oracle库文件路径
使配置生效:
source ~/.bashrc
从Oracle官方网站下载适用于Linux的Oracle Database安装包(如19c或21c版本),选择“Linux x86-64”平台。下载完成后,将安装包解压到/u01/app/oracle/product/19.0.0/dbhome_1目录(替换为实际版本):
cd /path/to/downloaded/package
unzip linux.x64_19c_database_1of2.zip -d /u01/app/oracle/product/19.0.0/dbhome_1
unzip linux.x64_19c_database_2of2.zip -d /u01/app/oracle/product/19.0.0/dbhome_1
切换到oracle用户,进入安装目录并运行安装脚本:
su - oracle
cd /u01/app/oracle/product/19.0.0/dbhome_1
./runInstaller
按照安装向导的提示完成以下步骤:
安装完成后,使用dbca(数据库配置助手)创建数据库实例:
dbca
按照向导配置以下信息:
orcl)和SID(与ORACLE_SID一致);/u01/app/oracle/oradata);/etc/oratab文件编辑/etc/oratab文件,将Oracle实例的“N”改为“Y”(允许数据库随系统启动):
sudo vi /etc/oratab
找到类似以下的行:
orcl:/u01/app/oracle/product/19.0.0/dbhome_1:N
将末尾的N改为Y:
orcl:/u01/app/oracle/product/19.0.0/dbhome_1:Y
创建Oracle自动启动的systemd服务文件:
sudo vi /etc/systemd/system/oracle.service
添加以下内容(替换为实际Oracle安装路径和SID):
[Unit]
Description=Oracle Database Auto Start Service
After=network.target
[Service]
Type=forking
User=oracle
Group=oinstall
Environment="ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1"
Environment="ORACLE_SID=orcl"
ExecStart=/u01/app/oracle/product/19.0.0/dbhome_1/bin/dbstart $ORACLE_HOME
ExecStop=/u01/app/oracle/product/19.0.0/dbhome_1/bin/dbshut $ORACLE_HOME
Restart=on-failure
RestartSec=30s
[Install]
WantedBy=multi-user.target
重新加载systemd配置,启用Oracle服务并立即启动:
sudo systemctl daemon-reload
sudo systemctl enable oracle
sudo systemctl start oracle
检查服务状态,确认Oracle已启动:
sudo systemctl status oracle
使用sqlplus工具连接Oracle数据库,验证安装是否成功:
sqlplus / as sysdba
若成功登录,将显示Oracle数据库版本信息。执行以下命令查看数据库状态:
SELECT status FROM v$instance;
若状态为OPEN,则表示数据库已正常运行。
/u01目录的所有权是否为oracle:oinstall,并确保权限为755;/etc/sysctl.conf中的参数是否设置正确,并执行sudo sysctl -p使配置生效;lsnrctl status),并启动监听器(lsnrctl start)。