系统更新
运行sudo apt update && sudo apt upgrade,确保系统包为最新版本,避免兼容性问题。
安装依赖包
Oracle数据库需要特定依赖库支持,执行以下命令安装:
sudo apt install alien libaio1 unixodbc build-essential(部分教程提及gcc make binutils,可根据安装包要求调整)。
Oracle需以专用用户身份运行,避免权限冲突:
sudo groupadd -g 503 oinstall(操作系统安装组)、sudo groupadd -g 504 dba(数据库管理员组);sudo useradd -u 501 -g oinstall -G dba -d /home/oracle -s /bin/bash oracle(指定主目录与默认shell);sudo passwd oracle(按提示输入并确认密码)。创建Oracle目录结构
建议将Oracle软件与数据存储在独立分区(如/u01),提升管理与性能:
sudo mkdir -p /u01/app/oracle/product/12.2.0/dbhome_1(路径根据实际版本调整);
设置权限:sudo chown -R oracle:oinstall /u01(所有权归oracle用户与oinstall组)、sudo chmod -R 755 /u01(允许组内成员读取)。
调整内核参数
编辑/etc/sysctl.conf,添加以下配置以优化系统资源限制:
kernel.shmmax = 3147483648 # 最大共享内存段大小(3GB)
kernel.shmmni = 4096 # 共享内存段最大数量
kernel.shmall = 2097152 # 共享内存总页数
kernel.sem = 250 32000 100 128 # 信号量参数
fs.file-max = 65536 # 最大文件描述符数
net.ipv4.ip_local_port_range = 1024 65000 # 本地端口范围
执行sudo sysctl -p使配置生效。
设置用户资源限制
编辑/etc/security/limits.conf,添加以下内容以增加Oracle用户的进程与文件句柄限制:
oracle soft nofile = 65536
oracle hard nofile = 65536
oracle soft nproc = 16384
oracle hard nproc = 16384
Oracle提供手动安装与Docker容器两种主流方式,以下分别说明:
linux.x64_12c_database_1of2.zip、linux.x64_12c_database_2of2.zip);/u01/app/oracle/product/12.2.0/dbhome_1目录;su - oracle),执行./runInstaller,按照向导完成安装(选择“创建数据库”或“仅安装软件”);/u01/app/oracle/product/12.2.0/dbhome_1/root.sh脚本,完成root用户配置。sudo apt install docker.io,并启动服务:sudo systemctl start docker、sudo systemctl enable docker;docker pull store/oracle/database-enterprise:19.3.0.0;docker run -d --name oracle-db -p 1521:1521 -p 5500:5500 store/oracle/database-enterprise:19.3.0.0;docker exec -it oracle-db bash,后续可通过sqlplus工具连接数据库。设置Oracle环境变量
编辑oracle用户的~/.bashrc文件,添加以下内容(路径根据实际版本调整):
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/12.2.0/dbhome_1
export ORACLE_SID=orcl # 数据库实例名(需与安装时一致)
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
执行source ~/.bashrc使配置生效。
创建数据库实例
以sysdba身份登录(sqlplus / as sysdba),执行以下命令创建数据库(以orcl为例):
CREATE DATABASE orcl
USER SYS IDENTIFIED BY your_sys_password
USER SYSTEM IDENTIFIED BY your_system_password
CONTROLFILE REUSE
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 700M REUSE
SYSAUX DATAFILE '/u01/app/oracle/oradata/orcl/sysaux01.dbf' SIZE 500M REUSE
DEFAULT TABLESPACE users
DATAFILE '/u01/app/oracle/oradata/orcl/users01.dbf' SIZE 500M REUSE
DEFAULT TEMPORARY TABLESPACE temp
TEMPFILE '/u01/app/oracle/oradata/orcl/temp01.dbf' SIZE 20M REUSE
UNDO TABLESPACE undotbs
DATAFILE '/u01/app/oracle/oradata/orcl/undotbs01.dbf' SIZE 200M REUSE;
执行STARTUP命令启动数据库实例。
/etc/systemd/system/oracle.service,添加以下内容(路径根据实际版本调整):[Unit]
Description=Oracle Database Service
After=network.target
[Service]
Type=forking
User=oracle
Group=oinstall
ExecStart=/u01/app/oracle/product/12.2.0/dbhome_1/bin/dbstart $ORACLE_HOME
ExecStop=/u01/app/oracle/product/12.2.0/dbhome_1/bin/dbshut $ORACLE_HOME
Restart=on-failure
RestartSec=30s
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reloadsudo systemctl enable oraclesudo systemctl start oracle连接数据库
使用sqlplus工具连接(本地连接无需指定主机):
sqlplus sys/your_sys_password@orcl as sysdba
若提示“Connected to Oracle Database 12c Enterprise Edition Release 12.2.0.1.0”,则说明安装成功。
检查服务状态
查看Oracle服务是否运行:ps -ef | grep pmon(应存在ora_pmon_orcl进程);
检查端口是否监听:netstat -tulnp | grep 1521(应显示1521端口处于监听状态)。
以上步骤覆盖了Ubuntu环境下Oracle数据库的完整搭建流程,具体操作需根据Oracle版本(如11g、19c、21c)与系统环境调整。建议参考Oracle官方文档(如《Oracle Database Installation Guide for Linux》)获取最新细节。