凌峰创科服务平台

linux服务器装oracle

下面我将为您提供一个以 Oracle Linux 8 为例,安装 Oracle Database 19c的详细、分步指南,这个流程同样适用于其他主流的 RHEL/CentOS 8 系统。

linux服务器装oracle-图1
(图片来源网络,侵删)

核心流程概览

  1. 准备工作:检查硬件、操作系统、下载安装介质。
  2. 系统环境配置:创建用户和组、配置内核参数、配置资源限制、创建安装目录。
  3. 安装依赖包:使用 yum 安装 Oracle 所需的软件包。
  4. 安装前检查:运行 runInstaller 进行预安装检查,并修复问题。
  5. 执行安装:运行图形化安装程序,完成数据库软件和数据库的创建。
  6. 安装后配置:配置监听器、网络,进行基本验证。

第一步:准备工作

硬件要求 (最低建议)

  • 内存:至少 4GB,建议 8GB 或以上。
  • 交换空间:通常建议为内存的 1-2 倍。
  • 硬盘空间
    • 软件安装:至少 8GB 的可用空间。
    • 数据文件:至少 20GB 的可用空间。
    • 总计建议至少 50GB+ 可用空间。

操作系统要求

  • 推荐版本:Oracle Linux 8 / RHEL 8 / CentOS 8。
  • 内核版本:确保系统为最新状态。

下载 Oracle 安装介质

访问 Oracle 官方网站下载:

  • Oracle Database 19c (下载 LINUX.X64_193000_db_home.zip)
  • Oracle Database 19c Companion (下载 LINUX.X64_193000_home.zip,用于安装 Oracle Preinstallation RPM 和依赖项,可选但推荐)

关闭防火墙和 SELinux

为了简化安装过程,我们先暂时关闭它们,生产环境中必须进行正确配置。

# 停止并禁用 firewalld
sudo systemctl stop firewalld
sudo systemctl disable firewalld
# 查看并临时禁用 SELinux (设置 enforcing 为 0)
# 注意:生产环境应配置正确的 SELinux 策略
sudo getenforce
# 输出应为 Enforcing
sudo setenforce 0
# 再次查看
sudo getenforce
# 输出应为 Permissive

第二步:系统环境配置

创建 Oracle 用户和组

Oracle 不建议使用 root 用户进行安装,我们需要创建专用的 oinstalldba 组,以及 oracle 用户。

# 创建组
sudo groupadd oinstall
sudo groupadd dba
# 创建用户,并将其加入 oinstall 和 dba 组
sudo useradd -g oinstall -G dba oracle
# 为 oracle 用户设置密码
sudo passwd oracle

配置内核参数

编辑 /etc/sysctl.conf 文件,添加或修改以下参数:

linux服务器装oracle-图2
(图片来源网络,侵删)
sudo vim /etc/sysctl.conf

在文件末尾添加以下内容:

# Oracle Settings
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmall = 2097152
kernel.shmmax = 4398046511104
kernel.shmmni = 4096
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
net.ipv4.ip_local_port_range = 9000 65500
fs.aio-max-nr = 1048576

保存文件后,使配置立即生效:

sudo sysctl -p

配置资源限制

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

sudo vim /etc/security/limits.conf

在文件末尾添加以下内容:

linux服务器装oracle-图3
(图片来源网络,侵删)
# Oracle Settings
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
oracle hard memlock unlimited
oracle soft memlock unlimited

创建安装目录

我们将使用 ASM (Automatic Storage Management) 或文件系统来存储数据,这里我们使用文件系统作为示例。

# 创建基础目录
sudo mkdir -p /u01/app/oracle
# 设置目录所有者为 oracle 用户,oinstall 组
sudo chown -R oracle:oinstall /u01
sudo chmod -R 775 /u01

配置 Oracle 用户环境变量

oracle 用户登录,并配置其 .bash_profile

su - oracle

编辑 .bash_profile 文件:

vim ~/.bash_profile

在文件末尾添加以下内容(请根据你的实际安装路径和版本进行修改):

# Oracle Settings
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19c/dbhome_1
export ORACLE_SID=ORCLCDB  # 全局数据库名 SID
export PATH=$ORACLE_HOME/bin:$PATH
# Optional: Set NLS_LANG for character set
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
# Optional: Set LD_LIBRARY_PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib

保存文件后,让配置立即生效:

source ~/.bash_profile

第三步:安装依赖包

root 用户身份执行。

# 切换到 root
sudo su -
# 更新系统
yum update -y
# 安装必要的软件包
yum install -y \
    binutils \
    compat-libcap1 \
    compat-libstdc++-33 \
    compat-libstdc++-33.i686 \
    gcc \
    gcc-c++ \
    glibc \
    glibc.i686 \
    glibc-devel \
    glibc-devel.i686 \
    ksh \
    libaio \
    libaio.i686 \
    libaio-devel \
    libaio-devel.i686 \
    libgcc \
    libgcc.i686 \
    libstdc++ \
    libstdc++.i686 \
    libstdc++-devel \
    libstdc++-devel.i686 \
    libXi \
    libXi.i686 \
    libXtst \
    libXtst.i686 \
    make \
    sysstat \
    unixODBC \
    unixODBC-devel

提示:安装 oracle-database-preinstall-19c RPM 包可以自动完成大部分上述配置(用户、组、内核参数、依赖包),极大地简化了流程,如果你的网络可以连接到 Oracle Yum 源,这是最推荐的方式。

yum localinstall oracle-database-preinstall-19c-1.0-1.el8.x86_64.rpm -y

第四步:执行安装

解压安装介质

将下载的 LINUX.X64_193000_db_home.zip 上传到服务器,/home/oracle/ 目录下,然后解压。

# 切换到 oracle 用户
exit
# 回到 oracle 用户目录
cd ~
# 解压
unzip LINUX.X64_193000_db_home.zip

解压后会生成一个 database 目录。

运行图形化安装程序

确保你的服务器安装了图形化界面,或者使用 X11 转发工具(如 Xmanager, Xming)从 Windows 客户端连接。

cd database/
./runInstaller

如果遇到 "cannot display" 错误,说明没有图形环境,可以使用 VNC 或 X11 转发。

安装图形界面步骤

  1. 配置安全更新:选择 "Skip Securing Updates"。
  2. 选择安装选项:选择 "Create and configure a database","Server Class"。
  3. 系统类型:选择 "Typical Install"。
  4. 选择单实例数据库:选择 "Single instance database installation"。
  5. 产品语言:选择 "English"。
  6. 网格选项:选择 "Do not use Grid Infrastructure for a standalone database"。
  7. 数据库标识
    • Global Database Name: ORCLCDB
    • Oracle Base: /u01/app/oracle (会自动识别)
    • Software Location: /u01/app/oracle/product/19c/dbhome_1 (会自动识别)
  8. 管理选项:选择 "Use Enterprise Manager for Database Management",设置一个密码。
  9. 数据库文件存储:选择 "File System",使用 "Use Oracle-Managed Files (OMF)"。
  10. 恢复配置:可以配置快速恢复区,也可以跳过。
  11. 初始化参数
    • Global Database Name: ORCLCDB
    • SID: ORCLCDB
    • 内存: 可以使用默认值,或根据服务器内存调整。
    • 字符集: 选择 AL32UTF8 (推荐)。
    • 示例方案: 可以选择安装。
  12. 管理选项:创建密码,为 SYS, SYSTEM, SYSBACKUP, SYSDG, SYSKM 等用户设置统一或不同的密码。
  13. 先决条件检查:安装程序会自动检查,如果失败,根据提示修复(通常是缺少某个依赖包或权限问题),然后点击 "Check Again"。
  14. 概要:确认所有配置无误后,点击 "Install"。
  15. 安装过程:需要以 root 身份执行两个脚本,安装程序会提示你打开一个新的终端,以 root 身份运行。
    • /u01/app/oraInventory/orainstRoot.sh
    • /u01/app/oracle/product/19c/dbhome_1/root.sh
  16. 完成:脚本执行完毕后,点击 "OK",安装完成。

第五步:安装后配置与验证

启动数据库和监听器

# 以 oracle 用户登录
su - oracle
# 启动监听器
lsnrctl start
# 连接到 SQL*Plus 并启动数据库
sqlplus / as sysdba
-- 在 SQL*Plus 中执行
SQL> startup
-- 等待数据库完全启动
SQL> exit

验证安装

  1. 检查监听器状态

    lsnrctl status

    应该能看到监听器正在运行,并监听 1521 端口。

  2. 连接到数据库

    sqlplus sys/ORACLE密码@//localhost:1521/ORCLCDB as sysdba

    成功登录后,执行以下命令查看数据库版本:

    SELECT * FROM v$version;
  3. 使用 Enterprise Manager

    在浏览器中访问 https://<你的服务器IP>:1158/em,使用 syssystem 用户和之前设置的密码登录。


常见问题与排错

  • 错误:/usr/bin/ld: cannot find -lpthread-ldl

    • 原因:缺少开发库。
    • 解决:确保安装了 glibc-devel, libaio-devel 等包。
  • 错误:PRVF-4603 或其他先决条件检查失败

    • 原因:通常是某个系统参数或包未满足要求。
    • 解决:仔细阅读错误信息,根据提示修改 /etc/sysctl.conf 或安装缺失的包,然后重启 runInstaller 的检查步骤。
  • 错误:Unable to auto-start Oracle Net Listener

    • 原因:监听器未启动或配置错误。
    • 解决:手动启动监听器 lsnrctl start,并检查 $ORACLE_HOME/network/admin/listener.ora 文件。
  • 错误:ORA-27102: out of memory

    • 原因shmmax 参数设置过小,或物理内存不足。
    • 解决:根据你的物理内存,适当调大 /etc/sysctl.conf 中的 shmmax 值,然后执行 sysctl -p 并重启数据库。
  • 无法显示图形界面

    • 原因:服务器无图形环境或 X11 转发未配置。
    • 解决
      1. 在服务器上安装 VNC 服务器。
      2. 或在客户端使用 SSH X11 转发:ssh -X oracle@<服务器IP>,然后再运行 ./runInstaller

生产环境建议

  • 安全:重新启用并正确配置防火墙和 SELinux。
  • 备份:制定并实施完整的备份和恢复策略。
  • 监控:设置操作系统和数据库的性能监控。
  • 归档日志:强烈建议启用归档日志模式。
  • ASM:在生产环境中,强烈推荐使用 ASM 来管理磁盘组,以提供高可用性和性能优化。
分享:
扫描分享到社交APP
上一篇
下一篇