Linux安装Oracle数据库的具体步骤是什么?

在Linux系统上安装Oracle数据库需要经过详细的系统准备、依赖安装、环境配置和软件部署等步骤,以下是详细的操作流程,以Oracle Database 19c在CentOS 7/8系统上的安装为例(其他发行版如RHEL、Oracle Linux操作类似,需注意包名差异)。

linux 如何安装oracle

系统准备

硬件要求

Oracle数据库对硬件资源有明确要求,需确保系统满足最低配置(推荐生产环境更高):

组件 最低配置 推荐配置
内存 2GB RAM 8GB+ RAM
交换空间 2GB SWAP 8GB+ SWAP(内存≤16GB时SWAP=内存;>16GB时SWAP=16GB)
磁盘空间 20GB可用 50GB+可用(安装文件+数据文件)
CPU核心数 2核 4+核

操作系统配置

  • 关闭防火墙和SELinux
    防火墙会阻止Oracle监听端口(默认1521),SELinux可能限制数据库访问,需临时关闭或配置策略(此处以关闭为例):

    systemctl stop firewalld && systemctl disable firewalld
    setenforce 0  # 临时关闭,永久修改需编辑/etc/selinux/config,将SELINUX=disabled
  • 配置主机名和hosts文件
    确保系统主机名可解析,编辑/etc/hosts,添加IP与主机名映射(示例):

    echo "192.168.1.100 oracle.example.com oracle" >> /etc/hosts
    hostnamectl set-hostname oracle.example.com  # 设置永久主机名
  • 安装必要工具

    yum install -y wget unzip tar gcc make ksh compat-libstdc++-33 elfutils-libelf-devel

安装依赖包

Oracle数据库需要大量Linux开发库和工具,根据发行版安装对应包(以CentOS 7为例):

yum install -y binutils compat-libcap1 compat-libstdc++-33 gcc-c++ ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst make sysstat unixODBC unixODBC-devel

若为CentOS 8/RHEL 8,部分包名变更(如compat-libstdc++-33需替换为compat-libstdc++-33-33.64.el7.x86_64),可通过yum search查找对应包名。

创建Oracle用户和组

Oracle数据库不允许使用root用户安装,需创建专用用户和组:

groupadd oinstall          # 安装组
groupadd dba               # 数据库管理员组
useradd -g oinstall -G dba oracle  # 创建oracle用户,加入oinstall和dba组
passwd oracle               # 设置oracle用户密码

创建安装目录并授权(根据需求调整路径,此处以默认为例):

mkdir -p /u01/app/oracle/product/19c/dbhome_1
chown -R oracle:oinstall /u01
chmod -R 775 /u01

配置内核参数和资源限制

修改内核参数(/etc/sysctl.conf)

添加以下参数,确保Oracle数据库运行所需的系统资源:

linux 如何安装oracle

fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 4398046511104  # 物理内存的50%(单位字节,示例为4TB)
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
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

执行sysctl -p使参数立即生效。

配置资源限制(/etc/security/limits.conf)限制oracle用户的资源使用:

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 soft memlock 134217728
oracle hard memlock 134217728

编辑/etc/pam.d/login,确保包含session required pam_limits.so(默认已存在)。

安装Oracle数据库软件

下载安装包

从Oracle官网下载Oracle Database 19c for Linux x86-64安装包(如LINUX.X64_193000_db_home.zip),上传至Linux服务器(如/tmp目录)。

解压并安装

使用oracle用户登录,解压安装包:

su - oracle
unzip /tmp/LINUX.X64_193000_db_home.zip -d /u01/app/oracle/product/19c/dbhome_1

进入安装目录,运行安装程序:

cd /u01/app/oracle/product/19c/dbhome_1/
./runInstaller

若为图形界面安装,需确保服务器已安装X Window(yum groupinstall "X Window System")或通过Xmanager等工具远程显示图形界面。

图形界面安装步骤

  • 欢迎界面:选择“Create and configure a database”→“Advanced Installation”。
  • 安装选项:选择“Enterprise Edition”,安装类型“典型安装”。
  • 网格安装选项:直接点击“下一步”(无需配置集群)。
  • 指定安装位置:确认ORACLE_BASE(/u01/app/oracle)和ORACLE_HOME(/u01/app/oracle/product/19c/dbhome_1)。
  • 创建数据库:设置数据库名(如ORCL)、管理员密码(sys/system)、字符集(建议AL32UTF8)、内存分配(建议总内存的40%-50%)。
  • 安装前检查:若提示依赖包缺失,根据提示安装后重新检查。
  • 安装进度:等待安装完成,根据提示执行脚本(如/u01/app/oraInventory/orainstRoot.sh和/u01/app/oracle/product/19c/dbhome_1/root.sh,需root用户执行)。

验证安装

检查监听状态

lsnrctl status

若显示“Listener is running”,表示监听启动成功。

检查数据库实例

sqlplus / as sysdba
SQL> startup
SQL> select status from v$instance;

若返回“OPEN”,表示数据库实例正常启动。

测试连接

使用SQL Developer或PL/SQL Developer,以sys/system用户连接数据库(主机名/IP、端口1521、服务名ORCL)。

linux 如何安装oracle

常见问题处理

  • 安装时提示“swap空间不足”:
    增加swap空间,例如创建2GB swap文件:

    fallocate -l 2G /swapfile
    chmod 600 /swapfile
    mkswap /swapfile
    swapon /swapfile
    echo "/swapfile swap swap defaults 0 0" >> /etc/fstab

    或调整kernel.shmmax参数,使其小于物理内存大小。

  • 安装后无法启动数据库:
    检查环境变量($ORACLE_HOME/bin是否加入PATH)、日志文件($ORACLE_BASE/diag/rdbms/*/trace/alert_*.log),确认权限和配置是否正确。

FAQs

Q1:安装过程中提示“libaio.so.1: cannot open shared object file”怎么办?
A:缺少libaio库,执行yum install -y libaio-devel安装后重新检查,若为CentOS 8,可尝试dnf install -y libaio。

Q2:如何修改Oracle数据库的字符集?
A:需确保数据库为非归档模式且无连接,步骤如下:

  1. 以sysdba身份登录,关闭数据库并以mount模式启动:
    sqlplus / as sysdba
    SQL> shutdown immediate
    SQL> startup mount
  2. 修改字符集(如从WE8MSWIN1252改为AL32UTF8):
    SQL> alter system set job_queue_processes=0 scope=spfile;
    SQL> alter system aq_tm_processes=0 scope=spfile;
    SQL> shutdown immediate
    SQL> startup restrict
    SQL> alter database character set internal_use AL32UTF8;
    SQL> shutdown immediate
    SQL> startup

    注意:字符集修改需谨慎,建议备份数据库,且仅支持从子集到超集的修改。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/18563.html

赞 (0)
酷番叔酷番叔
上一篇 2025年8月28日 02:42
下一篇 2025年8月28日 02:57

相关推荐

  • Linux下如何彻底卸载LAMP环境?

    在Linux系统中卸载LAMP(Linux+Apache+MySQL+PHP)环境需要分步骤、分组件进行操作,同时需注意备份重要数据并确认依赖关系,避免误删其他系统组件,以下是针对主流发行版(Ubuntu/Debian和CentOS/RHEL)的详细卸载流程,涵盖Apache、MySQL、PHP及相关依赖的清理……

    2025年9月28日
    24700
  • 如何确保准备阶段安全又兼容?

    选择Linux发行版推荐新手:Ubuntu LTS、Linux Mint(界面友好,社区支持完善)轻量级选择:Lubuntu、Xubuntu(适合老旧电脑)专业用户:Fedora、Debian(更新快/稳定性高)权威来源:DistroWatch 提供实时排名与特性对比,硬件要求U盘容量:至少16GB(建议32G……

    2025年7月31日
    30400
  • Linux中如何创建两个子进程?具体实现方法是什么?

    在Linux操作系统中,创建进程是操作系统核心功能之一,主要通过系统调用实现,最常用的是fork()系统调用,它是Linux/Unix中创建新进程的基础方法,本文将详细介绍如何使用fork()创建两个进程,并探讨相关机制和注意事项,fork()系统调用基础fork()是Linux中用于创建子进程的系统调用,其核……

    2025年10月5日
    21800
  • 在Linux操作系统中,如何卸载通过make命令安装的程序?

    在Linux系统中,通过make安装的程序通常是将源码编译后直接安装到系统目录(如/usr/local、/opt等),与通过包管理器(如apt、yum)安装的程序不同,这类手动编译安装的程序没有统一的卸载入口,卸载时需要根据安装方式和程序特性选择合适的方法,以下是详细的卸载步骤和注意事项,优先尝试make un……

    2025年8月24日
    23900
  • hv如何在线迁移Linux系统?在线迁移方法详解?

    在线迁移Linux虚拟机是Hyper-V环境中实现业务连续性的重要操作,通过零停机或短时间停机的方式将运行中的Linux虚拟机从源主机迁移至目标主机,可有效避免服务中断,适用于负载均衡、主机维护等场景,以下是详细的操作流程及注意事项,环境准备与前置要求在线迁移前需确保源主机与目标主机满足基础条件,这是迁移成功的……

    2025年10月7日
    22600

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信