如何安装 Oracle 数据库?详细步骤解析 – wiki基地


Oracle 数据库安装完全指南:从准备到验证的详细步骤解析

Oracle 数据库作为全球领先的关系型数据库管理系统之一,广泛应用于企业级应用、数据仓库和各种关键业务场景。其强大的功能、稳定性和可扩展性使其成为许多组织IT基础设施的核心。然而,对于初学者或者非专业人士来说,Oracle 数据库的安装过程可能会显得复杂和繁琐。

本文将提供一个全面、详细的 Oracle 数据库安装指南,重点讲解在 Linux 操作系统上安装 Oracle Database 19c (19.3) 单实例版本的步骤。19c 是一个长期支持(LTS)版本,流程相对成熟稳定,且与后续版本的安装流程非常相似。我们将从系统准备、软件下载、操作系统配置、软件安装到数据库创建和安装后验证,对每个环节进行深入解析。

重要提示: Oracle 数据库的安装涉及对操作系统环境的严格要求。在开始安装之前,请务必仔细阅读 Oracle 官方文档,了解特定版本和操作系统的详细兼容性列表和安装要求。本文提供的是一个通用的指导,具体细节可能因操作系统版本、Oracle 版本、安装类型(单实例、RAC、Exadata等)和业务需求而有所不同。在生产环境中进行安装时,强烈建议由有经验的数据库管理员(DBA)来执行或监督。

第一章:安装前的准备工作

成功的 Oracle 数据库安装,至少有 80% 依赖于充分和正确的准备工作。这一阶段主要包括理解系统需求、下载软件、规划文件系统和用户等。

1.1 理解系统需求

安装 Oracle 数据库对硬件和操作系统有特定的要求。忽略这些要求是导致安装失败的最常见原因。

  • 操作系统 (OS): Oracle 19c 支持多种 Linux 发行版,包括 Oracle Linux (推荐)、Red Hat Enterprise Linux (RHEL)、SUSE Linux Enterprise Server (SLES) 等。确保你使用的 OS 版本在 Oracle 的认证列表中。例如,本文以 Oracle Linux 7 或 8 为例。
  • CPU: 需要满足最低 CPU 内核数的要求。通常建议至少双核或更多,以获得更好的性能。
  • 内存 (RAM): Oracle 数据库需要大量的内存。最低要求通常在 2GB-4GB 之间(取决于版本和配置),但生产环境强烈建议 8GB 或更多,并配置足够的 SWAP 空间(通常建议是物理内存的 1-1.5 倍,最大不超过 32GB)。SWAP 空间不足是安装过程中容易遇到的问题。
  • 磁盘空间: 需要足够的磁盘空间来存储数据库软件、数据库文件(数据文件、控制文件、日志文件)、恢复区(FRA)、跟踪文件、诊断文件等。
    • 数据库软件本身需要几 GB。
    • 数据库文件空间取决于你将要存储的数据量,需要提前规划。
    • FRA 空间用于存储备份和归档日志,其大小取决于备份策略和日志生成速度。建议预留足够的空间,例如总数据量的 25% – 50% 或更多。
    • /tmp 目录需要至少 1GB-4GB 的临时空间用于安装过程。
  • 网络配置:
    • 服务器需要配置一个静态 IP 地址。动态 IP 可能导致数据库服务启动问题。
    • 正确配置主机名 (hostname)。
    • 确保 /etc/hosts 文件包含服务器的 IP 地址和主机名的映射,或者 DNS 服务配置正确。这一点对于集群环境尤其重要,但在单实例环境中也是良好的实践。

1.2 下载 Oracle 数据库软件

Oracle 数据库软件可以从 Oracle Technology Network (OTN) 网站下载。

  • 访问 Oracle 官方网站 (www.oracle.com)。
  • 导航到 Downloads -> Databases。
  • 选择你需要下载的 Oracle Database 版本,例如 Oracle Database 19c。
  • 同意许可协议。
  • 选择适合你操作系统架构 (通常是 x86-64) 的安装文件。对于 Linux,通常是一个或多个 .zip 文件,例如 LINUX.X64_193000_db_home.zip
  • 下载文件到你的本地机器。
  • 将下载的 .zip 文件上传到将要安装数据库的 Linux 服务器上。通常建议上传到 /tmp 目录或专门的软件存放目录。

1.3 规划文件系统结构和用户/组

为了数据库的安全、管理和维护,建议遵循 Oracle 推荐的文件系统结构和用户管理规范。

  • Oracle Base Directory (ORACLE_BASE): 这是 Oracle 软件安装的根目录,也是 Oracle 产品的基本安装目录。例如,/u01/app/oracle 是一个常见的选择。
  • Oracle Inventory Directory (oraInventory): 用于记录服务器上安装的所有 Oracle 软件及其版本信息。这个目录通常位于 ORACLE_BASE 的父目录下的 oraInventory 子目录中,例如 /u01/app/oraInventory。如果这是服务器上安装的第一个 Oracle 产品,安装程序会自动创建它。
  • Oracle Home Directory (ORACLE_HOME): 这是特定 Oracle 软件版本(如 Database 19c)的安装目录。它通常位于 ORACLE_BASE 下的特定路径,例如 /u01/app/oracle/product/19.0.0/dbhome_1
  • 数据库文件存放位置: 数据文件、控制文件、联机重做日志文件等。可以使用 Oracle 管理的文件(OMF)或者指定特定的文件系统路径,例如 /u02/oradata/ORCL
  • 恢复区 (Fast Recovery Area – FRA): 用于存放备份、归档日志、闪回日志等。例如 /u03/fast_recovery_area/ORCL
  • 用户和组:
    • 创建一个 oinstall 组:用于拥有 Oracle Inventory 目录的写权限。所有安装在服务器上的 Oracle 软件都属于这个组。
    • 创建一个 dba 组:用于拥有数据库的 SYSDBA 权限。属于这个组的操作系统用户可以通过 OS 认证以 SYSDBA 身份连接数据库。
    • 创建一个 oracle 用户:这是专门用于安装和运行 Oracle 数据库软件的操作系统用户。这个用户必须属于 oinstall 组作为主组,并属于 dba 组作为附加组。

建议为不同的数据库文件类型(数据文件、日志、FRA)使用不同的挂载点(文件系统),这样可以提高 I/O 性能、便于管理和分离故障。例如,/u01 用于软件,/u02 用于数据文件,/u03 用于 FRA。

第二章:操作系统层面的准备

在 Oracle 数据库安装之前,需要在 Linux 操作系统上进行一系列配置。这是确保安装成功的关键步骤。

2.1 创建必要的操作系统用户和组

使用 root 用户执行以下命令创建用户和组:

“`bash

创建 oinstall 组(如果不存在)

groupadd oinstall

创建 dba 组(如果不存在)

groupadd dba

创建 oracle 用户,主组为 oinstall,附加组为 dba

useradd -g oinstall -G dba oracle

设置 oracle 用户的密码

passwd oracle
“`

记住为 oracle 用户设置一个安全的密码。

2.2 配置内核参数

Oracle 数据库对系统的内核参数有特定的要求,以优化内存管理、进程间通信 (IPC) 和文件句柄限制等。通常通过修改 /etc/sysctl.conf 文件来设置。Oracle 官方文档提供了详细的推荐值列表。以下是一些关键参数的示例:

“`bash

编辑 /etc/sysctl.conf 文件

vim /etc/sysctl.conf
“`

添加或修改以下行(具体值需要根据你的系统内存大小和 Oracle 版本进行调整,以下为示例值,请参考 Oracle 文档获取准确值):

“`conf

Controls the maximum shared memory segment size, in bytes

kernel.shmmax = <根据物理内存计算的值,通常接近或等于物理内存的一半,但不超过系统架构限制>

Controls the maximum number of shared memory segments, in pages

kernel.shmall =

Controls the maximum number of open files allowed for a process

fs.file-max = 6815744

Controls the maximum number of file handles available in the system

fs.aio-max-nr = 1048576

Controls the maximum number of processes allowed for a user

kernel.pid_max = 4194303

Controls the maximum number of queued messages on a single message queue

kernel.msgmnb = 65536

Controls the maximum message size in bytes

kernel.msgmax = 65536

Controls the maximum number of message queue identifiers allowed per user

kernel.msgmni = 2878

Controls the maximum number of semaphores set identifiers allowed per user

kernel.sem = 250 32000 100 128

Controls the minimum and maximum ephemeral port range used by TCP/IP

net.ipv4.ip_local_port_range = 9000 65500

Sets the default size of the receive buffer used by TCP sockets

net.core.rmem_default = 262144

Sets the maximum size of the receive buffer used by TCP sockets

net.core.rmem_max = 4194304

Sets the default size of the send buffer used by TCP sockets

net.core.wmem_default = 262144

Sets the maximum size of the send buffer used by TCP sockets

net.core.wmem_max = 1048576

Controls the maximum number of connections that can be waiting to be accepted

net.core.somaxconn = 1024
“`

保存文件后,运行以下命令使配置生效:

bash
sysctl -p

2.3 设置 Shell 限制 (Limits)

oracle 用户设置硬限制和软限制,特别是关于打开文件数 (nofile) 和进程数 (nproc)。这些限制通常通过修改 /etc/security/limits.conf 文件来设置。

“`bash

编辑 /etc/security/limits.conf 文件

vim /etc/security/limits.conf
“`

添加或修改以下行:

conf
oracle soft nofile 1024 # 软限制:每个进程可以打开的最大文件描述符数
oracle hard nofile 65536 # 硬限制:每个进程可以打开的最大文件描述符数
oracle soft nproc 2047 # 软限制:每个用户可以创建的最大进程数
oracle hard nproc 16384 # 硬限制:每个用户可以创建的最大进程数
oracle soft stack 10240 # 软限制:栈大小(kB)
oracle hard stack 32768 # 硬限制:栈大小(kB)

为了让这些限制对 oracle 用户生效,还需要确保 /etc/pam.d/login 文件中包含以下行(通常默认已存在):

session required pam_limits.so

修改 limits.conf 后,需要注销并重新登录 oracle 用户才能使设置生效。

2.4 配置存储和目录权限

确保你规划好的 Oracle Base, Oracle Home, 数据文件, FRA 等目录已经创建,并且 oracle 用户拥有这些目录的所有权和写入权限。

“`bash

创建安装目录结构 (如果不存在)

mkdir -p /u01/app/oracle/product/19.0.0/dbhome_1
mkdir -p /u01/app/oraInventory # oraInventory 通常在 /u01/app 下

创建数据库文件目录 (如果使用 OMF,这些目录由 Oracle 创建,但上级目录需要存在)

mkdir -p /u02/oradata
mkdir -p /u03/fast_recovery_area

将目录所有权赋予 oracle:oinstall

chown -R oracle:oinstall /u01 /u02 /u03

设置目录权限

chmod -R 775 /u01 /u02 /u03
“`

这些权限设置允许 oracle 用户及其所属的 oinstalldba 组成员读写文件,同时防止其他用户访问。

2.5 设置 Oracle 用户的环境变量

切换到 oracle 用户,配置其 shell 环境,以便安装和管理数据库。通常在 ~/.bash_profile~/.bashrc 文件中添加以下内容:

“`bash

切换到 oracle 用户

su – oracle

编辑 ~/.bash_profile 文件

vim ~/.bash_profile
“`

添加以下内容:

“`bash

Oracle Settings

export TMP=/tmp
export TMPDIR=$TMP

export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.0.0/dbhome_1 # 根据你的安装路径修改

在安装数据库软件后,再设置 ORACLE_SID

export ORACLE_SID=your_database_sid

export PATH=$ORACLE_HOME/bin:$ORACLE_BASE/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

设置umask,建议为 022 或 027

umask 022
“`

保存文件后,运行 source ~/.bash_profile 使环境变量生效。在执行安装程序 (runInstaller) 之前,务必确认这些环境变量已正确设置。

2.6 关闭防火墙和 SELinux (测试环境简化,生产环境请谨慎)

防火墙 (firewalld 或 iptables) 和 SELinux 可能会阻止安装程序或数据库服务的正常通信。在测试或开发环境中,为了简化安装过程,可以临时关闭它们。在生产环境中,建议配置规则允许 Oracle 所需的端口和服务。

关闭 firewalld (root 用户执行):

bash
systemctl stop firewalld
systemctl disable firewalld # 禁止开机启动

关闭 SELinux (root 用户执行):

“`bash

编辑 SELinux 配置文件

vim /etc/selinux/config
“`

SELINUX=enforcingSELINUX=permissive 修改为 SELINUX=disabled

conf
SELINUX=disabled

保存文件。修改 SELinux 配置需要重启服务器才能生效。

2.7 (推荐) 使用 Oracle 提供的预安装包

对于 Oracle Linux 用户,Oracle 提供了预安装 RPM 包 (如 oracle-database-preinstall-19c),可以自动化执行大部分操作系统层面的准备工作,包括创建用户/组、设置内核参数、设置 limits 以及安装必要的操作系统包依赖。强烈建议使用此方法,可以显著减少配置错误。

使用 root 用户执行:

“`bash

确保你的系统配置了 yum/dnf 仓库,并且可以访问到 Oracle 仓库

对于 Oracle Linux 7

yum install oracle-database-preinstall-19c -y

对于 Oracle Linux 8/9

dnf install oracle-database-preinstall-19c -y
“`

运行此命令后,它会创建 oracle 用户和必要的组,配置 /etc/sysctl.d 下的 Oracle 相关内核参数文件,并设置 limits。你只需要确保文件系统权限和目录结构正确即可。如果之前手动执行了创建用户、设置内核参数等步骤,使用预安装包可能会覆盖或冲突,建议选择其中一种方式。

第三章:安装数据库软件

完成操作系统的准备工作后,就可以开始安装 Oracle 数据库软件本身了。这一步主要将软件二进制文件解压并部署到 ORACLE_HOME

3.1 解压安装文件

切换到 oracle 用户,将下载的数据库软件压缩包解压到你规划的 ORACLE_HOME 目录。

“`bash
su – oracle

进入存放下载文件的目录,例如 /tmp

cd /tmp

假设下载的文件名为 LINUX.X64_193000_db_home.zip

解压到 ORACLE_HOME 目录

unzip LINUX.X64_193000_db_home.zip -d /u01/app/oracle/product/19.0.0/dbhome_1
“`

解压完成后,ORACLE_HOME 目录下应该会包含安装程序和其他软件文件。

3.2 运行安装程序 (runInstaller)

进入解压后的 ORACLE_HOME 目录,找到并运行安装程序。

bash
cd /u01/app/oracle/product/19.0.0/dbhome_1
./runInstaller

运行 ./runInstaller 会启动 Oracle Universal Installer (OUI) 的图形界面向导。如果你在没有图形界面的服务器上安装,需要配置 X11 Forwarding (SSH -X) 或使用 VNC 等工具将图形界面转发到你的本地机器。或者,你可以选择执行静默安装 (Silent Install),但这需要提前准备响应文件,对于初学者来说图形界面更直观。本文主要介绍图形界面安装。

OUI 向导步骤解析:

  1. Select Configuration Option:

    • Create and configure a single instance database: 安装软件并立即创建一个数据库。
    • Set up software only: 只安装数据库软件,稍后手动创建数据库。
    • 推荐选择 Set up software only 这种方式将软件安装与数据库创建分离,更灵活,也更容易进行故障排除。先确保软件安装成功,再进行数据库配置。
  2. System Class:

    • Desktop class: 用于个人或开发环境,资源占用较少。
    • Server class: 用于服务器环境,配置更适合生产或大型开发环境。
    • 选择 Server class
  3. Grid Infrastructure Options:

    • 如果你要安装 RAC 或 ASM,需要先安装 Grid Infrastructure。对于单实例文件系统存储的数据库,选择 Skip Grid Infrastructure configuration
  4. Database Edition:

    • 选择你要安装的数据库版本,如 Enterprise EditionStandard Edition。功能最全的是 Enterprise Edition,但需要相应的许可。选择你拥有许可或许可允许的版本。
  5. Oracle Base and Software Location:

    • Oracle Base: 验证自动检测到的或手动输入 ORACLE_BASE 路径 (例如 /u01/app/oracle)。
    • Software Location: 验证自动检测到的或手动输入 ORACLE_HOME 路径 (例如 /u01/app/oracle/product/19.0.0/dbhome_1)。OUI 通常会根据你运行安装程序的目录自动填充。
  6. Inventory Directory and Group:

    • Inventory Directory: 验证或指定 oraInventory 目录的路径 (例如 /u01/app/oraInventory)。
    • oraInventory Group Name: 验证或指定拥有 oraInventory 目录写权限的组 (例如 oinstall)。
  7. Operating System Groups:

    • 指定拥有各种数据库管理权限的操作系统组。
    • Database Administrator (OSDBA Group): 选择 dba 组。拥有 SYSDBA 权限。
    • Database Operator (OSOPER Group): 可选,通常也设置为 dba 或创建新组。拥有 SYSOPER 权限。
    • Database Backup and Recovery (OSBACKUPDBA Group): 可选,12c 引入,用于更细粒度的权限。
    • Data Guard (OSDGDBA Group): 可选,用于 Data Guard 管理。
    • Encryption Key Management (OSKMDBA Group): 可选,用于 TDE 加密。
    • Real Application Clusters Management (OSRACDBA Group): 可选,用于 RAC。
    • 对于单实例基本安装,确保 OSDBA Group 设置为 dba 即可。
  8. Prerequisite Checks:

    • 安装程序会检查系统是否满足所有先决条件,包括操作系统版本、内核参数、软件包、内存、交换空间等。
    • 非常重要! 仔细检查检查结果。如果出现失败,必须解决问题后再继续。OUI 会提供失败项的详细信息和建议的解决办法。常见的失败包括内核参数不正确、软件包缺失、内存或 SWAP 不足、文件句柄限制太低等。解决问题后,可以点击 “Check Again” 重新检查。
  9. Summary:

    • 显示你选择的所有配置项的摘要。仔细核对,确保没有错误。
    • 点击 “Install” 开始安装软件。
  10. Install:

    • 安装程序会开始复制文件、执行脚本等。这个过程需要一些时间。
    • 在安装过程中,OUI 会提示你以 root 用户身份执行两个脚本:orainstRoot.shroot.sh
    • 这是关键步骤! 打开一个新的终端窗口,切换到 root 用户,严格按照 OUI 的提示,到指定的路径执行这两个脚本。
      • orainstRoot.sh: 用于设置 oraInventory 的权限和文件。
      • root.sh: 用于配置权限、启动后台进程等。
    • 执行完一个脚本后,回到 OUI 窗口点击 “OK” 或 “Continue”。
    • 脚本执行成功是安装继续的前提。
  11. Finish:

    • 软件安装完成后,OUI 会显示安装成功的消息。

至此,Oracle 数据库软件本体已经成功安装到指定的 ORACLE_HOME 目录。但此时还没有创建数据库实例。

第四章:创建数据库实例

安装完软件后,需要创建一个数据库实例来存储数据。这通常通过 Database Configuration Assistant (DBCA) 工具来完成。

4.1 运行 Database Configuration Assistant (DBCA)

切换回 oracle 用户(确保环境变量已加载),运行 DBCA 工具。

bash
su - oracle
dbca

运行 dbca 会启动 DBCA 的图形界面向导。同样,需要 X11 Forwarding 或 VNC。

DBCA 向导步骤解析:

  1. Database Operation:

    • Create Database: 创建一个新的数据库。
    • Manage Templates: 管理数据库模板。
    • Delete Database: 删除现有数据库。
    • Configure Database Options: 配置现有数据库的选项。
    • 选择 Create Database
  2. Creation Mode:

    • Typical Configuration: 使用默认设置快速创建一个简单数据库,配置项较少。适合初学者或测试。
    • Advanced Configuration: 提供更多配置选项,可以自定义数据库的各个方面,如存储、内存、字符集等。适合生产或对配置有特定要求的环境。
    • 推荐选择 Advanced Configuration,以便更好地控制数据库的创建过程。
  3. Database Template:

    • 选择基于哪个模板创建数据库。模板预定义了数据库的结构和参数。
    • Data Warehouse: 针对数据仓库优化的模板。
    • General Purpose or Transaction Processing: 通用的OLTP (在线事务处理) 模板,适合大多数业务应用。
    • Custom Database: 从头开始完全自定义数据库。
    • 选择 General Purpose or Transaction Processing 通常是合适的。
  4. Database Identification:

    • Global Database Name: 数据库的全局名称,格式通常是 database_name.domain_name,例如 orcl.example.com
    • SID: 数据库实例标识符。通常是全局数据库名的第一个部分,例如 orcl
    • Create as Container database: 勾选此选项,以创建 CDB (Container Database) 架构。这是 Oracle 12c 及以后版本推荐的架构,一个 CDB 可以包含多个 PDB (Pluggable Database)。
    • 如果选择了创建 CDB,还需要指定一个或多个 PDB 的信息。DBCA 默认会创建一个初始 PDB。
      • Pluggable database name: 指定初始 PDB 的名称,例如 orclpdb1
    • Create from a template: 选择使用模板创建,或者克隆现有 PDB。
  5. Management Options:

    • Configure Enterprise Manager (EM) Database Express: 建议勾选。EM Express 是一个轻量级的 Web 管理工具。
    • Specify port: 指定 EM Express 的 HTTPS 端口,默认是 5500。
    • Configure Cluster Management (for RAC): 如果是 RAC 环境才勾选。
  6. Database Credentials:

    • 设置数据库管理用户的密码。
    • Use the same password for all accounts: 可以为 SYS, SYSTEM, PDBADMIN 用户设置同一个密码 (不推荐用于生产)。
    • Use different passwords: 推荐选择此项,为每个管理用户设置不同的、安全的密码。
    • 设置 SYS (最高权限)、SYSTEM (日常管理)、PDBADMIN (管理 PDB) 用户的密码。
  7. Network Configuration:

    • Configure a listener: DBCA 可以帮助配置或验证监听器。通常在软件安装后,NETCA (Net Configuration Assistant) 已经运行并配置了默认监听器 (监听 1521 端口)。DBCA 会检测到现有监听器,确认使用即可。如果没有监听器,可以勾选此项并创建。
  8. Storage Locations:

    • Storage Type: File System 或 ASM (Automatic Storage Management)。选择 File System 进行基本安装。
    • Specify Storage Locations:
      • Use Common Location for All Database Files: 所有数据库文件放在一个根目录下,DBCA 会在下面创建子目录。
      • Use Oracle-Managed Files (OMF): 推荐勾选。Oracle 会自动命名和管理数据文件、日志文件等,简化管理。需要指定一个或多个 OMF 存放目录。
      • Specify File Locations: 手动指定每个文件类型(数据文件、控制文件、联机重做日志)的存放路径。
    • Specify Fast Recovery Area: 建议勾选,并指定 FRA 的路径 (例如 /u03/fast_recovery_area/ORCL) 和大小限制。
    • Block Size: 数据库块大小,通常 8KB 或 16KB。创建后无法修改。
  9. Database Options:

    • Sample Schemas: 是否创建示例模式 (如 HR, OE, SH 等)。对于学习或测试环境可以勾选,生产环境通常不勾选。
    • Configure additional options: 可以选择配置 Database Vault, Label Security, Spatial, Text, Multimedia 等组件。根据需要勾选。
  10. Initialization Parameters:

    • 配置数据库实例的内存、进程数、字符集等参数。
    • Memory:
      • Automatic Memory Management (AMM): Oracle 自动管理 SGA (System Global Area) 和 PGA (Program Global Area) 的总大小。需要设置 memory_target 参数。方便但不够灵活。
      • Automatic Shared Memory Management (ASMM): Oracle 自动分配 SGA 各组件的大小,PGA 手动或自动管理。需要设置 sga_targetpga_aggregate_target 参数。常用且灵活。
      • Manual Shared Memory Management: 手动管理 SGA 各组件大小。复杂。
      • 选择 ASMM 或 AMM,根据服务器物理内存大小设置合适的 sga_targetpga_aggregate_targetmemory_target 通常 SGA 占总内存的 40%-60% 是一个好的起点。
    • Sizing: 设置进程数、会话数等。
    • Character Sets: 选择数据库字符集。推荐使用 AL32UTF8,支持多语言。选择后通常不能修改。
    • Connection Mode: 选择连接模式。
      • Dedicated Server Mode: 每个客户端连接对应一个服务器进程 (推荐)。
      • Shared Server Mode: 多个客户端连接共享少量服务器进程 (适用于大量连接且每个连接不活跃的场景)。
    • File Location Variables: 查看或修改一些文件路径变量。
  11. Creation Options:

    • Create Database: 勾选此项,DBCA 将根据前面的配置创建数据库。
    • Generate Database Creation Scripts: 勾选此项,DBCA 会生成一个包含创建数据库所需 SQL 语句的脚本,但不执行。这对于自动化创建或审计很有用。
  12. Summary:

    • 显示所有配置的摘要。仔细检查,特别是数据库名、SID、文件路径、内存设置和字符集。
    • 点击 “Finish” 开始创建数据库。
  13. Progress:

    • DBCA 会显示数据库创建的进度条。这个过程包括创建配置文件、启动实例、创建数据库文件、运行内部脚本、创建数据字典、安装组件等,需要较长时间。
  14. Finish:

    • 数据库创建成功后,DBCA 会显示成功的消息,并给出数据库连接信息,包括 EM Express 的 URL。记下这些信息。

恭喜!你已经成功创建了一个 Oracle 数据库实例。

第五章:安装后的配置和验证

数据库实例创建完成后,还需要进行一些验证和基本的配置。

5.1 验证安装

  • 检查监听器状态:
    切换到 oracle 用户,运行 lsnrctl status 命令。确保监听器正在运行,并且监听器中已经注册了你刚刚创建的数据库服务 (Service Name)。
    bash
    su - oracle
    lsnrctl status

    如果监听器未运行,使用 lsnrctl start 启动。如果服务未注册,检查数据库实例是否正常启动,或者查看 listener.oratnsnames.ora 配置。

  • 连接数据库:
    使用 SQL*Plus 工具连接到数据库,验证是否可以正常登录和执行命令。
    bash
    su - oracle
    sqlplus / as sysdba

    如果成功,你应该会看到 SQL 提示符。可以运行一些命令验证:
    sql
    SQL> select name, open_mode from v$database;
    SQL> show pdbs; -- 如果是CDB架构,查看PDB状态
    SQL> alter pluggable database orclpdb1 open; -- 如果PDB未打开,将其打开
    SQL> show user;
    SQL> exit

  • 检查数据库进程:
    在 OS 层面,使用 ps 命令查看与 Oracle 实例相关的进程。
    bash
    ps -ef | grep ora_ | grep <YOUR_SID>
    ps -ef | grep pmon | grep <YOUR_SID> # 检查 PMON 进程
    ps -ef | grep smon | grep <YOUR_SID> # 检查 SMON 进程

    你应该看到许多以 ora_ 开头,后面跟着你的 SID 的进程。

  • 访问 EM Database Express:
    使用浏览器访问之前 DBCA 提示的 EM Express URL (例如 https://your_server_hostname:5500/em)。使用 SYSTEMSYS 用户以及设置的密码登录,验证是否可以访问 Web 管理界面。如果无法访问,检查防火墙、端口是否开放、数据库实例是否运行正常。

5.2 配置监听器 (如有需要)

虽然 DBCA 通常会配置监听器,但了解监听器配置仍然重要。监听器配置存储在 $ORACLE_HOME/network/admin/listener.ora 文件中。客户端连接信息存储在 $ORACLE_HOME/network/admin/tnsnames.ora 文件中。可以使用 Net Configuration Assistant (NETCA) 工具进行图形化配置,或者手动编辑这些文件。

bash
su - oracle
netca # 启动 NETCA

5.3 最终设置环境变量

确保 oracle 用户的 ~/.bash_profile 文件中正确设置了 ORACLE_HOMEORACLE_SID,以便每次登录时都能正确找到 Oracle 命令和连接默认数据库。

bash
su - oracle
vim ~/.bash_profile

确保包含类似以下行:
“`bash
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.0.0/dbhome_1
export ORACLE_SID=orcl # 根据你的数据库SID修改
export PATH=$ORACLE_HOME/bin:$ORACLE_BASE/bin:$PATH

… 其他环境变量

``
然后
source ~/.bash_profile`。

5.4 考虑应用补丁

Oracle 定期发布补丁集 (Patch Set Updates – PSU 或 Release Updates – RU) 来修复 bug 和安全漏洞。在生产环境部署数据库后,建议计划应用最新的稳定补丁。这需要使用 OPatch 工具。补丁安装是另一个复杂的过程,建议参考 Oracle 文档进行。

第六章:常见问题与故障排除

  • 先决条件检查失败: 这是最常见的问题。仔细阅读 OUI 提供的错误信息,它通常会明确指出是哪个内核参数、软件包、内存或限制不满足要求。根据错误信息进行调整。
  • Root 脚本执行失败: 确保以 root 用户身份在正确的目录下执行脚本,并且脚本执行过程中没有报错。权限问题或环境变量问题可能导致脚本失败。
  • 安装程序或 DBCA 界面无法显示 (X11): 确保 SSH 连接使用了 -X-Y 参数启用了 X11 Forwarding,并且服务器和客户端都安装了必要的 X11 库和字体。或者使用 VNC 远程桌面。
  • 监听器无法启动或服务未注册: 检查 listener.oratnsnames.ora 文件配置是否正确,确保数据库实例正在运行,并且监听器进程没有被防火墙阻止。
  • 数据库实例无法启动: 查看数据库的 alert log 文件 (位于 $ORACLE_BASE/diag/rdbms/<db_name>/<instance_name>/trace/alert_<instance_name>.log) 获取详细的启动错误信息。这通常是诊断数据库启动问题的最直接方法。
  • 权限问题: 确保 oracle 用户对 ORACLE_BASE, ORACLE_HOME, oraInventory 以及数据库文件存放目录拥有正确的所有权 (oracle:oinstall) 和权限 (775)。

结论

安装 Oracle 数据库是一个涉及多个步骤的复杂过程,从仔细的系统规划和准备,到软件安装和数据库创建,再到安装后的验证和配置。遵循本文提供的详细步骤,并结合 Oracle 官方文档进行操作,可以大大提高安装的成功率。记住,充分的前期准备是关键,特别是系统需求的满足和操作系统的正确配置。

安装完成后,你的 Oracle 数据库就可以投入使用了。接下来的工作将是进行基本的数据库管理,如创建用户、表空间,导入数据,以及配置备份恢复策略、监控和性能调优等。祝你在使用 Oracle 数据库的旅程中一切顺利!


发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部