ubuntu

Ubuntu中Oracle数据库如何搭建

小樊
32
2025-10-02 00:47:40
栏目: 云计算

Ubuntu系统中Oracle数据库搭建指南

一、前期准备

1. 系统要求

2. 安装必要依赖包

Oracle数据库运行需要依赖多个系统库,需提前安装:

sudo apt update
sudo apt install -y alien libaio1 unixodbc build-essential gcc make binutils libcap1 libstdc++6 libgcc1 libmotif4 unixodbc-dev

注:部分旧版本Oracle可能需要ia32-libs(64位系统),可通过sudo apt install -y lib32z1 lib32ncurses5 lib32stdc++6替代。

二、创建Oracle专用用户与目录

1. 创建用户组与用户

Oracle推荐使用专用用户管理数据库,避免使用root:

sudo groupadd -g 501 oinstall  # 安装组
sudo groupadd -g 502 dba       # 数据库管理员组
sudo useradd -u 501 -g oinstall -G dba -d /home/oracle -s /bin/bash oracle  # 创建oracle用户
sudo passwd oracle             # 设置oracle用户密码(需牢记)

2. 创建安装与数据目录

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                                # 设置目录权限

3. 配置Oracle环境变量

编辑oracle用户的~/.bashrc文件,添加以下内容:

export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.0.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

三、下载并解压Oracle安装包

  1. 从Oracle官方网站下载适用于Linux的Oracle Database安装包(如19C/21C版本,选择“Linux x86-64”架构);
  2. 将下载的压缩包(如linuxx64_19c_database_1of2.ziplinuxx64_19c_database_2of2.zip)上传至Ubuntu服务器;
  3. 解压安装包至安装目录:
cd /opt
sudo unzip /path/to/linuxx64_19c_database_1of2.zip
sudo unzip /path/to/linuxx64_19c_database_2of2.zip
sudo mv database/* /u01/app/oracle/product/19.0.0/dbhome_1/

四、配置系统内核参数

Oracle对系统内核参数有严格要求,需修改/etc/sysctl.conf文件:

sudo vim /etc/sysctl.conf

添加以下内容(根据服务器配置调整数值):

kernel.shmall = 2097152
kernel.shmmax = 4294967296  # 物理内存的一半(单位:字节)
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 6815744
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576

使配置生效:

sudo sysctl -p

修改用户限制文件/etc/security/limits.conf

sudo vim /etc/security/limits.conf

添加以下内容:

oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

五、运行Oracle安装程序

  1. 切换至oracle用户:
su - oracle
  1. 进入安装目录并运行安装脚本:
cd /u01/app/oracle/product/19.0.0/dbhome_1
./runInstaller
  1. 按照安装向导操作:
    • 选择“安装数据库软件”;
    • 选择“单实例数据库安装”;
    • 选择“创建和配置数据库”(或仅安装软件);
    • 设置root用户和oracle用户的密码;
    • 完成安装后,根据提示运行/u01/app/oraInventory/orainstRoot.sh/u01/app/oracle/product/19.0.0/dbhome_1/root.sh脚本。

六、创建数据库实例(可选)

若安装时未创建数据库,可通过以下命令手动创建:

  1. 以sysdba身份登录:
sqlplus / as sysdba
  1. 创建数据库:
CREATE DATABASE orcl
USER SYS IDENTIFIED BY oracle
USER SYSTEM IDENTIFIED BY oracle
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
UNDO TABLESPACE undo
    DATAFILE '/u01/app/oracle/oradata/orcl/undo01.dbf'
    SIZE 200M REUSE AUTOEXTEND ON MAXSIZE 500M;
  1. 完成数据库创建:
ALTER DATABASE OPEN;

七、配置开机自启(可选)

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

八、验证安装

  1. 登录数据库:
sqlplus sys/oracle as sysdba
  1. 查看数据库状态:
SELECT status FROM v$instance;

若返回OPEN,则表示数据库启动成功。

注意事项

0
看了该问题的人还看了