news 2026/4/18 0:03:00

ORACLE学习笔记总结(数据库参数文件)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ORACLE学习笔记总结(数据库参数文件)

Oracle数据库参数文件详解与操作指令

一、参数文件类型概述

Oracle数据库使用两种参数文件来存储实例配置:

1.PFILE(Parameter File)

  • 文件类型:文本文件,可直接编辑

  • 默认名称init<SID>.ora(如initORCL.ora

  • 位置$ORACLE_HOME/dbs(Linux)或%ORACLE_HOME%\database(Windows)

  • 特点:修改需重启,易读易改,适合手动维护

2.SPFILE(Server Parameter File)

  • 文件类型:二进制文件,不可直接编辑

  • 默认名称spfile<SID>.ora(如spfileORCL.ora

  • 位置:同PFILE目录或ASM磁盘组

  • 特点:支持动态修改,可远程管理,现代Oracle推荐方式(9i+)


二、核心区别对比

特性PFILESPFILE
文件格式纯文本二进制
修改方式文本编辑器ALTER SYSTEM命令
动态生效❌ 必须重启✅ 部分参数可在线修改
参数覆盖启动时指定启动后不可覆盖
错误处理启动失败可手动修复损坏后需重建
RAC支持各节点独立支持共享,统一管理
默认位置
  • Linux/Unix:$ORACLE_HOME/dbs

  • Windows:%ORACLE_HOME%\database\

$ORACLE_HOME/dbs目录

三、参数文件转换指令

1.SPFILE → PFILE(导出为文本)

-- 从内存中的SPFILE创建PFILE CREATE PFILE FROM SPFILE; -- 指定路径创建 CREATE PFILE='/tmp/initORCL_temp.ora' FROM SPFILE; -- 从指定SPFILE创建 CREATE PFILE FROM SPFILE='/u01/app/oracle/product/19c/dbs/spfileORCL.ora';

用途

  • 备份SPFILE配置

  • 需要手动批量修改参数

  • 故障诊断


2.PFILE → SPFILE(导入为二进制)

-- 从默认PFILE创建SPFILE CREATE SPFILE FROM PFILE; -- 指定源文件和目标路径 CREATE SPFILE='/u01/app/oracle/product/19c/dbs/spfileORCL.ora' FROM PFILE='/tmp/initORCL_temp.ora'; -- 从内存中的PFILE创建(无PFILE时) CREATE SPFILE FROM MEMORY;

注意事项

  • 需在NOMOUNT或MOUNT状态下执行

  • 会覆盖现有SPFILE,谨慎操作

  • 权限要求:SYSDBA


3.从内存创建(紧急恢复)

-- 将当前内存参数保存为PFILE CREATE PFILE='/tmp/init_mem.ora' FROM MEMORY; -- 将当前内存参数保存为SPFILE(恢复损坏的SPFILE) CREATE SPFILE FROM MEMORY;

四、参数修改指令

1.查看参数

-- 查看单个参数 SHOW PARAMETER db_name; SHOW PARAMETER sga_target; -- 查看所有参数(SQLPlus) SHOW PARAMETERS; -- 查询视图(更详细) SELECT name, value, isdefault, issys_modifiable, description FROM v$parameter WHERE name LIKE '%sga%';

关键字段说明

  • isdefault:是否为默认值

  • issys_modifiable:修改方式

    • IMMEDIATE:动态生效

    • DEFERRED:对新会话生效

    • FALSE:需重启生效


2.修改参数(SPFILE)

-- 语法结构 ALTER SYSTEM SET <parameter_name>=<value> [SCOPE={MEMORY|SPFILE|BOTH}] [DEFERRED] [SID='<sid>'|'*'];
SCOPE选项(核心)
-- MEMORY:仅修改内存,重启后失效(适用于动态参数测试) ALTER SYSTEM SET sga_target=2G SCOPE=MEMORY; -- SPFILE:仅修改SPFILE,不立即生效,需重启 ALTER SYSTEM SET db_name='ORCL' SCOPE=SPFILE; -- BOTH:修改内存和SPFILE(动态参数推荐) ALTER SYSTEM SET processes=500 SCOPE=BOTH;
SID选项(RAC环境)
-- 修改所有节点(*为默认值) ALTER SYSTEM SET log_archive_max_processes=4 SCOPE=BOTH SID='*'; -- 仅修改节点1 ALTER SYSTEM SET log_archive_max_processes=4 SCOPE=BOTH SID='rac1';
DEFERRED选项
-- 对新会话生效(当前会话不受影响) ALTER SYSTEM SET sessions=1000 SCOPE=BOTH DEFERRED;

3.修改PFILE

直接编辑文本文件:

# 备份原文件 cp $ORACLE_HOME/dbs/initORCL.ora /tmp/initORCL.bak # 使用vi编辑 vi $ORACLE_HOME/dbs/initORCL.ora # 修改示例 *.sga_target=2G *.processes=500 orcl.db_name='ORCL' # RAC中可指定实例

格式规则

  • *.<parameter>:应用于所有实例

  • <SID>.<parameter>:仅应用于指定实例

  • 等号两边无空格

  • 字符串用单引号


五、启动时指定参数文件

1.使用SPFILE启动(默认)

sqlplus / as sysdba STARTUP; -- 自动查找spfile<SID>.ora

2.使用PFILE启动(覆盖SPFILE)

sqlplus / as sysdba STARTUP PFILE='/u01/app/oracle/product/19c/dbs/initORCL.ora';

优先级

  1. 如果指定PFILE,则使用PFILE

  2. 否则查找默认位置的spfile<SID>.ora

  3. 最后查找默认位置的init<SID>.ora


3.启动时修改参数

# 使用PFILE启动并覆盖参数 STARTUP PFILE='/tmp/init.ora' SGA_TARGET=3G PROCESSES=600;

六、参数分类与关键参数

1.按修改方式分类

分类说明示例参数
静态参数SCOPE=SPFILE,需重启db_name,db_block_size
动态参数SCOPE=MEMORY/BOTHsga_target,processes
延迟参数DEFERRED,对新会话生效sessions,sort_area_size

2.核心参数列表

-- 基础配置 db_name='ORCL' -- 数据库名(静态) db_unique_name='ORCL_STBY' -- 唯一名(静态) instance_name='ORCL' -- 实例名(静态) compatible='19.0.0' -- 兼容性(静态) -- 内存管理 memory_target=4G -- 自动内存管理(动态) sga_target=3G -- SGA总大小(动态) pga_aggregate_target=1G -- PGA总大小(动态) -- 进程与会话 processes=500 -- 最大进程数(静态) sessions=800 -- 最大会话数(延迟) open_cursors=300 -- 游标数(延迟) -- 归档与恢复 log_archive_dest_1='LOCATION=/arch' -- 归档路径(动态) log_archive_max_processes=4 -- ARCn进程数(动态) db_recovery_file_dest='/recovery' -- 闪回区(动态) -- 性能优化 optimizer_mode='ALL_ROWS' -- 优化器模式(动态) parallel_max_servers=128 -- 最大并行进程(动态)

七、参数文件恢复与修复

1.SPFILE损坏恢复

-- 从PFILE启动 STARTUP PFILE='/tmp/initORCL.ora'; -- 重新创建SPFILE CREATE SPFILE FROM PFILE;

2.PFILE和SPFILE均丢失

# 从告警日志提取参数(最后正常启动的记录) grep -i "parameter" alert_ORCL.log # 手动创建最小化PFILE vi /tmp/initORCL_min.ora # 内容: db_name='ORCL' memory_target=2G control_files='/u01/app/oracle/oradata/ORCL/control01.ctl' # 启动并重建 STARTUP PFILE='/tmp/initORCL_min.ora'; CREATE SPFILE FROM MEMORY;

八、最佳实践建议

  1. 使用SPFILE:9i及以上版本应始终使用SPFILE

  2. 修改前备份

    CREATE PFILE='/tmp/spfile_bak.ora' FROM SPFILE;
  3. 谨慎修改静态参数:修改前评估重启影响

  4. RAC环境:使用SID='*'统一管理,必要时单节点差异化

  5. 文档记录:所有参数变更需记录到运维日志

  6. 测试验证:在测试环境验证参数效果再应用到生产


九、常用操作速查

# 1. 查看当前使用的参数文件类型 sqlplus / as sysdba SELECT DECODE(value, NULL, 'PFILE', 'SPFILE') FROM v$parameter WHERE name='spfile'; # 2. 导出当前配置为PFILE备份 CREATE PFILE='/backup/init_$(date +%Y%m%d).ora' FROM SPFILE; # 3. 批量修改多个参数 ALTER SYSTEM SET processes=800 SCOPE=SPFILE; ALTER SYSTEM SET sessions=1200 SCOPE=SPFILE; SHUTDOWN IMMEDIATE; STARTUP; # 4. 恢复默认参数值 ALTER SYSTEM RESET db_cache_size SCOPE=BOTH SID='*';
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 6:28:48

【光照】[PBR][法线分布]GGX实现方法对比

GGX的全称与基本概念‌GGX的全称‌&#xff1a;Ground Glass X (或 Generalized Trowbridge-Reitz Distribution)‌首次提出‌&#xff1a;Walter等人在2007年发表的论文《Microfacet Models for Refraction through Rough Surfaces》中提出GGX是一种‌法线分布函数‌(Normal D…

作者头像 李华
网站建设 2026/4/18 6:28:29

YC创业名录:精准对接高潜力初创公司

一、拆解需求 1. 产品核心定义&#xff1a;是什么、给谁用、做什么 产品本质&#xff1a;依托 Y Combinator&#xff08;YC&#xff09;投资生态的「高价值创业公司名录精准对接平台」&#xff0c;核心是整合 YC 自2005年以来投资的优质创业公司资源&#xff0c;提供多维度检索…

作者头像 李华
网站建设 2026/4/18 6:31:53

计算机毕设项目推荐—天气数据分析预测可视化分析预测系统

天气数据分析预测可视化分析预测系统 01开发环境 1.1 Python技术 1.2 MySQL数据库 1.3 B/S 结构 1.4 Vue.js 技术 02系统图片展示03代码展示 # 省份或者城市地图 # &#xff08;学习交流VX&#xff1a;S20231025S &#xff09; DEFAULT_HOST "https://assets.pyecharts…

作者头像 李华
网站建设 2026/3/27 23:21:03

基于Spring Boot的食品安全宣传网站(计算机毕设)

如需对应源码以及相应文档可私下方名片 ↓ 基于Spring Boot的食品安全宣传网站的设计与实现 摘 要 近几年频频发生的食品安全事故&#xff0c;主要是公众缺乏对食品安全的宣传教育。建立一套针对食品安全的宣传体系&#xff0c;既可以普及有关的政策&#xff0c;又能够提升大众…

作者头像 李华
网站建设 2026/4/17 16:19:06

大模型新手必看:入门经验分享,助你快速成长,少走三年弯路!

今天换个角度&#xff0c;来聊一聊一个AI小白&#xff0c;该怎么学AI&#xff1f; 我的答案很简单&#xff1a;理解原理、深度使用、跟踪前沿、动手实践。 一、理解大模型原理 { 看视频 } 对于任何一个想学AI的人&#xff0c;我第一时间都会推荐去看Andrej Karpathy的这两个…

作者头像 李华