温馨提示×

Ubuntu Oracle数据库配置指南

小樊
44
2025-11-11 05:28:44
栏目: 云计算

Ubuntu上Oracle数据库配置指南

一、安装前准备

1. 操作系统要求

确保Ubuntu系统为64位版本,满足Oracle数据库的最低硬件要求:

  • 内存:至少1GB(生产环境建议4GB以上);
  • Swap空间:建议为物理内存的1-2倍(如内存1GB则Swap设为1-2GB);
  • 磁盘空间:Oracle安装目录至少需要10GB可用空间(数据文件需额外预留空间)。

2. 安装依赖包

更新系统软件包并安装Oracle所需的依赖包,避免安装过程中出现缺失依赖错误:

sudo apt update && sudo apt upgrade -y
sudo apt install -y alien libaio1 unixodbc build-essential gcc make binutils

这些依赖包用于支持Oracle数据库的编译、运行及网络连接。

二、创建Oracle用户与目录

1. 创建用户组与用户

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冲突。

2. 创建安装与数据目录

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目录有读写权限,避免后续安装或运行时报权限错误。

三、配置系统环境参数

1. 调整内核参数

编辑/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

2. 设置用户资源限制

编辑/etc/security/limits.conf文件,增加oracle用户的资源限制(避免进程因资源不足被终止):

oracle soft nproc 2047           # 用户最多可创建的进程数(软限制)
oracle hard nproc 16384          # 用户最多可创建的进程数(硬限制)
oracle soft nofile 1024          # 用户最多可打开的文件数(软限制)
oracle hard nofile 65536         # 用户最多可打开的文件数(硬限制)

3. 配置Oracle用户环境变量

编辑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数据库

1. 下载Oracle安装包

从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

2. 运行Oracle安装程序

切换到oracle用户,进入安装目录并运行安装脚本:

su - oracle
cd /u01/app/oracle/product/19.0.0/dbhome_1
./runInstaller

按照安装向导的提示完成以下步骤:

  • 选择“安装数据库软件”模式(不创建数据库);
  • 选择“单实例数据库安装”;
  • 接受许可协议;
  • 选择安装类型(如“企业版”);
  • 等待安装完成(安装过程中会提示执行root脚本,需切换到root用户执行)。

五、创建Oracle数据库实例

安装完成后,使用dbca(数据库配置助手)创建数据库实例:

dbca

按照向导配置以下信息:

  • 选择操作:创建数据库;
  • 数据库模板:选择“通用数据库”(适合大多数场景);
  • 数据库标识符:设置全局数据库名(如orcl)和SID(与ORACLE_SID一致);
  • 管理选项:启用“使用Enterprise Manager Database Express”(Web管理界面);
  • 数据库认证:设置SYS、SYSTEM用户的密码(需记住,后续登录用);
  • 存储选项:选择“文件系统”(默认路径为/u01/app/oracle/oradata);
  • 恢复配置:禁用归档日志模式(测试环境可选);
  • 完成:等待数据库创建完成。

六、配置Oracle自动启动

1. 修改/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

2. 创建systemd服务文件

创建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

3. 启用并启动服务

重新加载systemd配置,启用Oracle服务并立即启动:

sudo systemctl daemon-reload
sudo systemctl enable oracle
sudo systemctl start oracle

检查服务状态,确认Oracle已启动:

sudo systemctl status oracle

七、验证Oracle安装

使用sqlplus工具连接Oracle数据库,验证安装是否成功:

sqlplus / as sysdba

若成功登录,将显示Oracle数据库版本信息。执行以下命令查看数据库状态:

SELECT status FROM v$instance;

若状态为OPEN,则表示数据库已正常运行。

八、常见问题排查

  • 权限问题:若安装或运行时报权限错误,需检查/u01目录的所有权是否为oracle:oinstall,并确保权限为755;
  • 内核参数不足:若启动时报“kernel parameter error”,需检查/etc/sysctl.conf中的参数是否设置正确,并执行sudo sysctl -p使配置生效;
  • 监听器未启动:若无法远程连接,需检查监听器状态(lsnrctl status),并启动监听器(lsnrctl start)。

0