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

04-10 2781阅读
本教程详细介绍了在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 IMMEDIATEALTER DATABASE OPEN监听器lsnrctl stoplsnrctl 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社区的技术交流,不断提升数据库管理水平。


      免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

      目录[+]