Linux命令启动Oracle数据库,从安装到管理的完整教程,如何在Linux上轻松启动并管理Oracle数据库?,如何在Linux上轻松启动并管理Oracle数据库?

1949idc 1年前 (2025-04-11) 阅读数 283 #智能运维
本教程详细介绍了在Linux系统中启动和管理Oracle数据库的完整流程,首先讲解了Oracle数据库的安装步骤,包括环境变量配置、用户权限设置等准备工作,随后重点说明启动数据库的核心命令:通过SQL*Plus连接实例后,依次使用 STARTUP NOMOUNT加载参数文件、 ALTER DATABASE MOUNT挂载数据库,最终执行 ALTER DATABASE OPEN完成启动,同时提供了监听器启动命令 lsnrctl start和常见错误排查方法,此外还涵盖数据库关闭(SHUTDOWN IMMEDIATE)、状态查看(SELECT status FROM v$instance)等日常管理操作,帮助用户掌握从安装部署到运维管理的全套技能,实现Linux环境下Oracle数据库的高效运维。

Oracle数据库的核心价值

Oracle数据库作为全球领先的企业级关系型数据库管理系统,在金融、电信、政府等关键行业发挥着核心作用,据统计,全球财富100强企业中有98家使用Oracle数据库处理其核心业务数据,在Linux环境下,Oracle数据库以其出色的稳定性、安全性和性能表现,成为众多企业的首选方案。

Linux命令启动Oracle数据库,从安装到管理的完整教程,如何在Linux上轻松启动并管理Oracle数据库?,如何在Linux上轻松启动并管理Oracle数据库? 第1张

本文将全面介绍如何在Linux系统中安装、配置和管理Oracle数据库,涵盖从基础环境准备到高级管理技巧的全流程,我们不仅会详细讲解命令行操作,还会介绍如何利用宝塔面板简化Oracle环境的管理工作。

系统环境准备

硬件与操作系统要求

在部署Oracle数据库前,确保您的系统满足以下基本要求:

  • 操作系统:推荐使用Oracle Linux 7/8、RHEL 7/8或CentOS 7/8等企业级Linux发行版
  • CPU:至少2核处理器(生产环境建议8核以上)
  • 内存:最小4GB(生产环境建议32GB以上)
  • 磁盘空间
    • 临时空间:至少1GB
    • 数据库软件:10-15GB
    • 数据文件:根据业务需求规划(建议100GB起步)
  • 交换空间:物理内存的1.5-2倍

系统参数优化

Oracle数据库对Linux内核参数有特定要求,需要进行以下优化配置:

  1. 修改/etc/sysctl.conf
    # 共享内存设置
    kernel.shmmax = 68719476736
    kernel.shmall = 4294967296
    kernel.shmmni = 4096

信号量设置

kernel.sem = 250 32000 100 128

文件描述符限制

fs.file-max = 6815744 fs.aio-max-nr = 1048576

网络参数

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


2. **修改用户限制(/etc/security/limits.conf)**:
```bash
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768

应用上述修改后,执行:

sysctl -p

Oracle数据库安装流程

创建Oracle用户和组

groupadd -g 54321 oinstall
groupadd -g 54322 dba
groupadd -g 54323 oper
useradd -u 54321 -g oinstall -G dba,oper oracle
passwd oracle

创建目录结构

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

安装依赖包

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

或者手动安装所有必需包:

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

安装Oracle数据库软件

下载Oracle 19c安装包后,执行:

rpm -ivh oracle-database-ee-19c-1.0-1.x86_64.rpm

配置Oracle环境:

/etc/init.d/oracledb_ORCLCDB-19c configure

Oracle数据库启动与管理

环境变量配置

在oracle用户的.bash_profile中添加:

export ORACLE_HOME=/u01/app/oracle/product/19c/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_SID=ORCLCDB
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8

启动流程详解

  1. 启动监听器

    lsnrctl start
  2. 启动数据库实例

    sqlplus / as sysdba
    SQL> STARTUP;
  3. 验证启动状态

    SQL> SELECT instance_name, status, database_status FROM v$instance;

数据库启动模式

Oracle数据库支持多种启动模式:

启动模式 命令 说明
NOMOUNT STARTUP NOMOUNT 仅启动实例,不挂载控制文件
MOUNT STARTUP MOUNT 启动实例并挂载控制文件
OPEN STARTUP 完全启动数据库(默认)
RESTRICT STARTUP RESTRICT 限制模式启动,仅DBA可访问
FORCE STARTUP FORCE 强制启动,用于异常情况

宝塔面板集成方案

宝塔面板安装

curl -sSO http://download.bt.cn/install/install_panel.sh && bash install_panel.sh

Oracle环境配置

  1. 通过宝塔面板安装必要组件:

    • GCC编译器
    • Make工具
    • Glibc开发包
  2. 使用宝塔文件管理器创建Oracle用户和目录结构

  3. 通过宝塔终端执行Oracle安装命令

自动化脚本管理

创建启动/停止脚本/etc/init.d/oracle

#!/bin/bash
# chkconfig: 345 99 10
# description: Oracle auto start-stop script.
case "" in
'start')
    su - oracle -c "$ORACLE_HOME/bin/lsnrctl start"
    su - oracle -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"
    ;;
'stop')
    su - oracle -c "$ORACLE_HOME/bin/lsnrctl stop"
    su - oracle -c "$ORACLE_HOME/bin/dbshut $ORACLE_HOME"
    ;;
*)
    echo "Usage: 
chmod 750 /etc/init.d/oracle
chkconfig --add oracle
{start|stop}" exit 1 ;; esac exit 0

Linux命令启动Oracle数据库,从安装到管理的完整教程,如何在Linux上轻松启动并管理Oracle数据库?,如何在Linux上轻松启动并管理Oracle数据库? 第2张

设置开机启动:

高级管理与故障排查

性能监控命令

查看会话信息
  1. SELECT sid, serial#, username, status, machine, program FROM v$session;

    监控SQL执行
  2. SELECT sql_id, executions, elapsed_time/1000000 "Elapsed (s)", 
    cpu_time/1000000 "CPU (s)", disk_reads, buffer_gets
    FROM v$sqlarea 
    ORDER BY elapsed_time DESC;

    表空间监控
  3. SELECT tablespace_name, sum(bytes)/1024/1024 "Size (MB)", 
    sum(bytes)/1024/1024 - sum(NVL(bytes_free,0))/1024/1024 "Used (MB)",
    round((sum(bytes)/1024/1024 - sum(NVL(bytes_free,0))/1024/1024)/
    (sum(bytes)/1024/1024)*100,2) "Used %"
    FROM (SELECT tablespace_name, bytes, bytes_free
    FROM dba_data_files df LEFT JOIN 
        (SELECT file_id, sum(bytes) bytes_free 
         FROM dba_free_space GROUP BY file_id) fs
    ON df.file_id = fs.file_id)
    GROUP BY tablespace_name;

    常见问题解决方案

问题1:ORA-01034: ORACLE not available

原因

解决方案:数据库实例未启动

STARTUP;

问题2:ORA-12514: TNS:listener does not currently know of service requested in connect descriptor

原因

解决方案:监听器未注册服务

lsnrctl status

  1. 检查监听器配置:

    ALTER SYSTEM REGISTER;
  2. 手动注册服务:

    问题3:ORA-00205: error in identifying control file, check alert log for more info

原因

解决方案:控制文件损坏或丢失

  • 查看alert日志定位问题
    1. 使用备份恢复控制文件
    2. 必要时重建控制文件
    3. 备份与恢复策略

    RMAN基础备份

    rman target /
    RMAN> CONFIGURE RETENTION POLICY TO REDUNDANCY 2;
    RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;
    RMAN> BACKUP DATABASE PLUS ARCHIVELOG;

    定时备份脚本

    /home/oracle/backup.sh

    创建

    #!/bin/bash
    export ORACLE_HOME=/u01/app/oracle/product/19c/dbhome_1
    export PATH=$ORACLE_HOME/bin:$PATH
    export ORACLE_SID=ORCLCDB
    rman target / <<EOF
    RUN {
      BACKUP AS COMPRESSED BACKUPSET DATABASE 
      FORMAT '/backup/db_%d_%T_%U.bkp'
      PLUS ARCHIVELOG 
      FORMAT '/backup/arc_%d_%T_%U.bkp'
      DELETE ALL INPUT;
      CROSSCHECK BACKUP;
      DELETE NOPROMPT OBSOLETE;
    }
    EOF

    0 2 * * * /home/oracle/backup.sh >> /home/oracle/backup.log 2>&1

    设置cron定时任务:

    附录:常用命令速查表

    类别 实例管理 SHUTDOWN IMMEDIATE ALTER DATABASE OPEN 监听器 lsnrctl stop lsnrctl reload 会话管理 ALTER SYSTEM DISCONNECT SESSION 'sid,serial#' IMMEDIATE 空间管理 ALTER DATABASE DATAFILE '/path/file.dbf' RESIZE 2G 性能诊断 SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY)

    总结与最佳实践

    命令 说明
    STARTUP 启动数据库实例
    立即关闭数据库
    打开已挂载的数据库
    lsnrctl start 启动监听器
    停止监听器
    重新加载配置
    ALTER SYSTEM KILL SESSION 'sid,serial#' 终止会话
    断开会接
    ALTER TABLESPACE users ADD DATAFILE '/path/file.dbf' SIZE 1G 添加数据文件
    调整数据文件大小
    EXPLAIN PLAN FOR [SQL] 生成执行计划
    查看执行计划
  • 建立完善的监控体系,实时掌握数据库状态
  • 通过本文的全面介绍,您应该已经掌握了在Linux系统上管理Oracle数据库的核心技能,从基础安装到高级管理,从性能监控到故障排查,这些知识将帮助您构建稳定高效的数据库环境。

    在实际生产环境中,建议您:

    1. 制定严格的备份策略,确保数据安全
    2. 定期进行性能优化,保持系统高效运行
    3. 关注Oracle官方补丁和安全公告,及时更新系统
    4. Oracle官方文档

    随着技术的不断发展,Oracle数据库也在持续演进,建议您定期访问获取最新信息,并参与Oracle社区的技术交流,不断提升数据库管理水平。


    相关阅读:

    1、VPS跑包教程,轻松搭建高效服务器,一键上手!

    2、VPS WordPress备份攻略,数据保护无忧,轻松搞定网站备份!

    3、VPS12.com深度探索,虚拟专用服务器的魅力与优势揭秘

    4、美国洛杉矶VPS主机,企业云端服务的稳定高效之选!

    5、比特币买VPS,加密货币与云服务的无缝对接之道

    版权声明

    本文内容由互联网用户自发贡献,该文观点仅代表作者本人
    本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

    © 2010 首途云安 & 厦门硕顿信息技术有限公司 & 闽ICP备11016866号  增值电信业务经营许可证:B1-20203020 地址:福建厦门思明区嘉禾路297号1806
    高新技术企业
    软件产品证书
    计算机软件著作权
    ISO认证
    国家3A企业