系统要求
build-essential、gcc、make等编译工具(用于Oracle安装过程中的编译操作)。安装依赖包
Oracle数据库运行依赖以下关键库,需通过以下命令安装:
sudo apt update
sudo apt install alien libaio1 unixodbc build-essential libmotif3 libaio-dev unzip wget
注:
libaio1(异步I/O库)、unixodbc(ODBC驱动)是Oracle安装的必用依赖,libmotif3用于解决部分版本安装时的界面兼容问题。
创建用户组与用户
Oracle推荐使用专用用户管理数据库,避免使用root权限:
sudo groupadd oinstall # 归属组(安装相关文件)
sudo groupadd dba # 数据库管理员组
sudo useradd -g oinstall -G dba -m -s /bin/bash oracle # 创建oracle用户,归属oinstall和dba组
sudo passwd oracle # 设置oracle用户密码(需牢记)
创建安装与数据目录
建议将Oracle软件与数据分开存储,提升管理效率:
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对系统内核参数有严格要求,需修改以下文件调整配置:
编辑/etc/sysctl.conf
添加或修改以下参数(满足Oracle内存与进程需求):
kernel.shmall = 2097152 # 共享内存总页数(每页4KB,总计8GB)
kernel.shmmax = 2147483648 # 单个共享内存段最大大小(8GB)
kernel.shmmni = 4096 # 共享内存段最大数量
kernel.sem = 250 32000 100 128 # 信号量参数(SEMMSL、SEMMNS、SEMOPM、SEMMNI)
fs.file-max = 65536 # 系统最大文件描述符数
net.ipv4.ip_local_port_range = 9000 65500 # 本地端口范围(避免与Oracle端口冲突)
生效配置:
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文件/u01/app/oracle为实际安装路径):export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.0.0/dbhome_1
export ORACLE_SID=orcl # 数据库实例名(可自定义,如orcl、testdb)
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export LANG=C # 设置语言环境(避免安装时乱码)
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK # 字符集(根据需求调整,如UTF-8)
生效配置:source ~/.bashrc
下载Oracle安装包
从Oracle官方网站下载适用于Linux的Oracle Database安装包(如19c、21c版本),选择“Linux x86-64”平台。例如:
linuxx64_19c_database.ziplinuxx64_21c_database.zip解压并运行安装程序
将安装包解压到软件目录,以oracle用户身份运行安装脚本:
cd /u01/app/oracle
unzip /path/to/linuxx64_19c_database.zip -d product/19.0.0/dbhome_1
cd product/19.0.0/dbhome_1
./runInstaller
安装向导步骤:
/u01/app/oracle/product/19.0.0/dbhome_1/root.sh脚本(需root权限)。以sysdba身份登录
使用sqlplus工具登录数据库(默认无密码,首次登录需设置):
sqlplus / as sysdba
创建数据库实例
执行以下命令创建数据库(以orcl为例):
CREATE DATABASE orcl
USER SYS IDENTIFIED BY Oracle123
USER SYSTEM IDENTIFIED BY Oracle123
LOGFILE GROUP 1 ('/u01/app/oracle/oradata/orcl/redo01.log') SIZE 100M,
GROUP 2 ('/u01/app/oracle/oradata/orcl/redo02.log') SIZE 100M,
GROUP 3 ('/u01/app/oracle/oradata/orcl/redo03.log') SIZE 100M
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXLOGHISTORY 1
MAXDATAFILES 100
CHARACTER SET AL32UTF8
NATIONAL CHARACTER SET AL16UTF16
EXTENT MANAGEMENT LOCAL
DATAFILE '/u01/app/oracle/oradata/orcl/system01.dbf' SIZE 325M REUSE
SYSAUX DATAFILE '/u01/app/oracle/oradata/orcl/sysaux01.dbf' SIZE 325M REUSE
DEFAULT TABLESPACE users
DATAFILE '/u01/app/oracle/oradata/orcl/users01.dbf'
SIZE 500M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED
DEFAULT TEMPORARY TABLESPACE temp
TEMPFILE '/u01/app/oracle/oradata/orcl/temp01.dbf'
SIZE 20M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;
完成数据库配置
执行脚本创建数据字典视图:
@?/rdbms/admin/catalog.sql
@?/rdbms/admin/catproc.sql
设置数据库开机自启
创建systemd服务文件,实现Oracle数据库随系统启动:
sudo vim /etc/systemd/system/oracle.service
添加以下内容(替换路径为实际安装路径):
[Unit]
Description=Oracle Database 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
[Install]
WantedBy=multi-user.target
生效服务配置:
sudo systemctl daemon-reload
sudo systemctl enable oracle
启动数据库
sqlplus / as sysdba
STARTUP
连接数据库
使用sqlplus工具连接数据库(默认SID为orcl):
sqlplus sys/Oracle123 as sysdba
若能正常登录并执行SELECT * FROM v$version;查询版本信息,则说明安装成功。
安装卡在68%
可能缺少libmotif3、libaio-dev等依赖包,需重新安装对应依赖:
sudo apt install libmotif3 libaio-dev
无法连接到数据库
lsnrctl status;sudo ufw allow 1521。以上步骤涵盖了Ubuntu下Oracle数据库搭建的全流程,需根据实际环境调整路径与参数。建议参考Oracle官方文档(如《Oracle Database安装指南》)获取更详细的配置说明。