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系统是32位还是64位?

    在Linux系统中,确定系统位数(32位或64位)对于软件安装、系统优化和兼容性排查至关重要,32位系统最大支持4GB内存,而64位系统可支持更大内存空间,且运行效率更高,以下是几种常用且准确的方法来判断Linux系统的位数,涵盖不同场景和需求,使用uname命令查看系统架构uname命令是Linux中基础的系……

    2025年9月8日
    2500
  • Linux如何打开xls文件?

    在Linux系统中打开xls文件(即Microsoft Excel 97-2003工作簿格式)需要借助第三方工具,因为Linux默认办公套件如LibreOffice虽支持xls,但部分功能可能存在兼容性问题,而Windows版Excel无法直接运行,以下是几种常用方法的详细操作步骤及注意事项,帮助用户高效处理x……

    2025年9月22日
    1800
  • linux下如何编辑c程序

    Linux 下,可使用如 Vim、Gedit 等文本编辑器编写 C 程序

    2025年8月17日
    3100
  • Linux环境下线程销毁的具体步骤、注意事项及最佳实践是什么?

    在Linux系统中,线程是轻量级进程(LWP),通过POSIX线程库(pthread)实现,销毁线程的核心是释放线程占用的资源(如栈空间、寄存器上下文等),确保无内存泄漏或资源竞争,以下是Linux中销毁线程的主要方法及注意事项,线程销毁的第一种方式是让线程自然退出,线程函数执行到return语句或调用pthr……

    2025年10月9日
    900
  • 宝塔Linux如何安装宝塔面板?详细步骤操作指南

    宝塔Linux面板是一款广泛使用的服务器管理工具,通过图形化界面简化了服务器运维操作,适合新手开发者和小型团队快速部署和管理网站、数据库、应用等,本文将详细介绍宝塔Linux面板的安装步骤、环境准备、配置及常见问题解决,帮助用户顺利完成安装,安装前环境准备在安装宝塔Linux面板前,需确保服务器满足基本环境要求……

    2025年10月3日
    1200

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信