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
用户及其所属的 oinstall
或 dba
组成员读写文件,同时防止其他用户访问。
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=enforcing
或 SELINUX=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 向导步骤解析:
-
Select Configuration Option:
Create and configure a single instance database
: 安装软件并立即创建一个数据库。Set up software only
: 只安装数据库软件,稍后手动创建数据库。- 推荐选择
Set up software only
。 这种方式将软件安装与数据库创建分离,更灵活,也更容易进行故障排除。先确保软件安装成功,再进行数据库配置。
-
System Class:
Desktop class
: 用于个人或开发环境,资源占用较少。Server class
: 用于服务器环境,配置更适合生产或大型开发环境。- 选择
Server class
。
-
Grid Infrastructure Options:
- 如果你要安装 RAC 或 ASM,需要先安装 Grid Infrastructure。对于单实例文件系统存储的数据库,选择
Skip Grid Infrastructure configuration
。
- 如果你要安装 RAC 或 ASM,需要先安装 Grid Infrastructure。对于单实例文件系统存储的数据库,选择
-
Database Edition:
- 选择你要安装的数据库版本,如
Enterprise Edition
或Standard Edition
。功能最全的是 Enterprise Edition,但需要相应的许可。选择你拥有许可或许可允许的版本。
- 选择你要安装的数据库版本,如
-
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 通常会根据你运行安装程序的目录自动填充。
-
Inventory Directory and Group:
Inventory Directory
: 验证或指定oraInventory
目录的路径 (例如/u01/app/oraInventory
)。oraInventory Group Name
: 验证或指定拥有oraInventory
目录写权限的组 (例如oinstall
)。
-
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
即可。
-
Prerequisite Checks:
- 安装程序会检查系统是否满足所有先决条件,包括操作系统版本、内核参数、软件包、内存、交换空间等。
- 非常重要! 仔细检查检查结果。如果出现失败,必须解决问题后再继续。OUI 会提供失败项的详细信息和建议的解决办法。常见的失败包括内核参数不正确、软件包缺失、内存或 SWAP 不足、文件句柄限制太低等。解决问题后,可以点击 “Check Again” 重新检查。
-
Summary:
- 显示你选择的所有配置项的摘要。仔细核对,确保没有错误。
- 点击 “Install” 开始安装软件。
-
Install:
- 安装程序会开始复制文件、执行脚本等。这个过程需要一些时间。
- 在安装过程中,OUI 会提示你以
root
用户身份执行两个脚本:orainstRoot.sh
和root.sh
。 - 这是关键步骤! 打开一个新的终端窗口,切换到
root
用户,严格按照 OUI 的提示,到指定的路径执行这两个脚本。orainstRoot.sh
: 用于设置oraInventory
的权限和文件。root.sh
: 用于配置权限、启动后台进程等。
- 执行完一个脚本后,回到 OUI 窗口点击 “OK” 或 “Continue”。
- 脚本执行成功是安装继续的前提。
-
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 向导步骤解析:
-
Database Operation:
Create Database
: 创建一个新的数据库。Manage Templates
: 管理数据库模板。Delete Database
: 删除现有数据库。Configure Database Options
: 配置现有数据库的选项。- 选择
Create Database
。
-
Creation Mode:
Typical Configuration
: 使用默认设置快速创建一个简单数据库,配置项较少。适合初学者或测试。Advanced Configuration
: 提供更多配置选项,可以自定义数据库的各个方面,如存储、内存、字符集等。适合生产或对配置有特定要求的环境。- 推荐选择
Advanced Configuration
,以便更好地控制数据库的创建过程。
-
Database Template:
- 选择基于哪个模板创建数据库。模板预定义了数据库的结构和参数。
Data Warehouse
: 针对数据仓库优化的模板。General Purpose or Transaction Processing
: 通用的OLTP (在线事务处理) 模板,适合大多数业务应用。Custom Database
: 从头开始完全自定义数据库。- 选择
General Purpose or Transaction Processing
通常是合适的。
-
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。
-
Management Options:
Configure Enterprise Manager (EM) Database Express
: 建议勾选。EM Express 是一个轻量级的 Web 管理工具。Specify port
: 指定 EM Express 的 HTTPS 端口,默认是 5500。Configure Cluster Management (for RAC)
: 如果是 RAC 环境才勾选。
-
Database Credentials:
- 设置数据库管理用户的密码。
Use the same password for all accounts
: 可以为SYS
,SYSTEM
,PDBADMIN
用户设置同一个密码 (不推荐用于生产)。Use different passwords
: 推荐选择此项,为每个管理用户设置不同的、安全的密码。- 设置
SYS
(最高权限)、SYSTEM
(日常管理)、PDBADMIN
(管理 PDB) 用户的密码。
-
Network Configuration:
Configure a listener
: DBCA 可以帮助配置或验证监听器。通常在软件安装后,NETCA (Net Configuration Assistant) 已经运行并配置了默认监听器 (监听 1521 端口)。DBCA 会检测到现有监听器,确认使用即可。如果没有监听器,可以勾选此项并创建。
-
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。创建后无法修改。
-
Database Options:
Sample Schemas
: 是否创建示例模式 (如 HR, OE, SH 等)。对于学习或测试环境可以勾选,生产环境通常不勾选。Configure additional options
: 可以选择配置 Database Vault, Label Security, Spatial, Text, Multimedia 等组件。根据需要勾选。
-
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_target
和pga_aggregate_target
参数。常用且灵活。Manual Shared Memory Management
: 手动管理 SGA 各组件大小。复杂。- 选择 ASMM 或 AMM,根据服务器物理内存大小设置合适的
sga_target
和pga_aggregate_target
或memory_target
。 通常 SGA 占总内存的 40%-60% 是一个好的起点。
Sizing
: 设置进程数、会话数等。Character Sets
: 选择数据库字符集。推荐使用AL32UTF8
,支持多语言。选择后通常不能修改。Connection Mode
: 选择连接模式。Dedicated Server Mode
: 每个客户端连接对应一个服务器进程 (推荐)。Shared Server Mode
: 多个客户端连接共享少量服务器进程 (适用于大量连接且每个连接不活跃的场景)。
File Location Variables
: 查看或修改一些文件路径变量。
-
Creation Options:
Create Database
: 勾选此项,DBCA 将根据前面的配置创建数据库。Generate Database Creation Scripts
: 勾选此项,DBCA 会生成一个包含创建数据库所需 SQL 语句的脚本,但不执行。这对于自动化创建或审计很有用。
-
Summary:
- 显示所有配置的摘要。仔细检查,特别是数据库名、SID、文件路径、内存设置和字符集。
- 点击 “Finish” 开始创建数据库。
-
Progress:
- DBCA 会显示数据库创建的进度条。这个过程包括创建配置文件、启动实例、创建数据库文件、运行内部脚本、创建数据字典、安装组件等,需要较长时间。
-
Finish:
- 数据库创建成功后,DBCA 会显示成功的消息,并给出数据库连接信息,包括 EM Express 的 URL。记下这些信息。
恭喜!你已经成功创建了一个 Oracle 数据库实例。
第五章:安装后的配置和验证
数据库实例创建完成后,还需要进行一些验证和基本的配置。
5.1 验证安装
-
检查监听器状态:
切换到oracle
用户,运行lsnrctl status
命令。确保监听器正在运行,并且监听器中已经注册了你刚刚创建的数据库服务 (Service Name)。
bash
su - oracle
lsnrctl status
如果监听器未运行,使用lsnrctl start
启动。如果服务未注册,检查数据库实例是否正常启动,或者查看listener.ora
和tnsnames.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
)。使用SYSTEM
或SYS
用户以及设置的密码登录,验证是否可以访问 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_HOME
和 ORACLE_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.ora
和tnsnames.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 数据库的旅程中一切顺利!