news 2026/5/12 10:06:10

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/30 9:03:09

无人值守地区的可靠选择 的远程监测能力

对于环境恶劣的高山、海岛、边境、自然保护区等无人值守的边远地区&#xff0c;建立自动气象站面临供电难、维护难、环境苛刻度高等多重挑战。FST200-207抗冰冻型超声波风速风向传感器的低功耗、高可靠和易集成的特点&#xff0c;使其成为此类应用的理想解决方案。 超声波风速…

作者头像 李华
网站建设 2026/5/11 6:10:25

linux部署分布式redis集群保姆级教程

一、Redis常用的三种集群模式主从&#xff08;单体架构项目&#xff09;通过持久化功能&#xff0c;Redis保证了即使在服务器重启的情况下也不会丢失&#xff08;或少量丢失&#xff09;数据&#xff0c;因为持久化会把内存中数据保存到硬盘上&#xff0c;重启会从硬盘上加载数…

作者头像 李华
网站建设 2026/5/10 6:05:19

鸿蒙开发者的价值跃迁:把经验变成“智能资产”,让AI为你赋能

在鸿蒙生态加速扩张的当下&#xff0c;开发者之间的竞争早已不再是“会不会用技术”的较量&#xff0c;而是“能不能让经验产生持续价值”的比拼。近期&#xff0c;一场鸿蒙开发者闭门交流会中的真实案例&#xff0c;深刻揭示了这一核心趋势。某互联网公司承接了智慧医疗领域的…

作者头像 李华
网站建设 2026/5/10 7:38:09

【注意】非量表问卷不需要做信效度分析!量表问卷信效度检验指标详解

不少人在做研究时可能会遇到这样的场景&#xff1a;明明按照教程一步步把问卷数据做了信效度检验&#xff0c;却被一句“这些分析不能做”打回重来。很多人这才意识到——原来信效度分析并不是所有问卷的“必做项目”。 一、非量表问卷vs量表问卷 在实际研究中&#xff0c;问…

作者头像 李华
网站建设 2026/5/12 10:11:29

PHOTO1111

作者头像 李华
网站建设 2026/5/10 1:13:01

【TVM 教程】Python 目标参数化

TVM 现已更新到 0.21.0 版本&#xff0c;TVM 中文文档已经和新版本对齐。 Apache TVM 是一个深度的深度学习编译框架&#xff0c;适用于 CPU、GPU 和各种机器学习加速芯片。更多 TVM 中文文档可访问 →Apache TVM 概述​ 对于任何支持的开发环境&#xff0c;TVM 都应该生成数…

作者头像 李华