49-Oracle init.ora-PFILE-SPFILE-启动参数转换实操

一早出现EMCC挂了,之后发现EMCC依赖的instance 挂了,重启startup后发现spfile无法启动。还是和小伙伴把基础问题搞清。spfile是动态文件、动态文件、动态文件,linux下vi看起来部分乱码部分是可编辑的,vi即使可以编辑也需要转换成pfile这样的文本文件再使用,记得备份备份备份。

Oracle 数据库启动时依赖参数文件配置实例行为:

SPFILE(服务器参数文件)、PFILE(参数文件)和 init.ora 三者关系紧密但存在关键差异。

一、核心关系与区别

init.ora 与 PFILE

  • init.ora​ 是 Oracle 提供的参数模板文件,命名格式通常为 init.ora,用于指导用户创建自定义的 PFILE
  • ​**PFILE​(如 init.ora)是用户根据 init.ora 模板创建的文本格式参数文件**,需手动编辑,修改后必须重启数据库生效
  • 关系:init.ora 是模板,PFILE 是实际使用的配置文件。

SPFILE​(动态文件)

  • ​二进制文件​(如 spfile.ora),由 Oracle 自动维护,支持动态修改参数(无需重启)
  • - 优先级高于 PFILE:若两者共存,默认优先加载 SPFILE 

对比​ 

​特性​

PFILE(含init.ora)

SPFILEspfile.ora)

​文件类型​

文本文件(可直接编辑)

二进制文件(不可直接编辑)

​修改方式​

手动编辑文件

ALTER SYSTEM SET命令动态调整

​生效条件​

需重启数据库

部分参数可立即生效

​备份支持​

不支持 RMAN

支持 RMAN 备份

创建来源​

基于init.ora模板创建

从PFILE生成 (CREATE SPFILE...)

二、启动机制与加载顺序​

​1. 默认启动流程​
数据库实例启动(STARTUP NOMOUNT 阶段)时,按以下顺序搜索参数文件
  • 1.spfile(SID).ora(如 spfileORCL.ora)
  • 2.spfile.ora(通用二进制文件)
  • 3.init.ora(如 initORCL.ora)
​:若以上均不存在,启动失败。记得备份这个文件,极端的情况从老的备份里扒拉一个出来,编辑关键信息强行开
2. 指定文件启动
  • ​强制使用 PFILE​:
    STARTUP PFILE='$ORACLE_HOME/dbs/initORCL.ora';
  • 强制使用 SPFILE​:需创建临时 PFILE 指向 SPFILE,再通过该 PFILE 启动 
-- 创建临时 PFILE(内容:SPFILE='路径/spfile<SID>.ora')
STARTUP PFILE='临时文件路径';
3. 状态查询
  • 确认当前使用的文件类型​:
SHOW PARAMETER spfile;  
-- 若返回 `spfile` 路径 → 使用 SPFILE;若为 `VALUE=NULL` → 使用 PFILE

三、相互转换方法

  • PFILE → SPFILE
CREATE SPFILE='$ORACLE_HOME/dbs/spfileORCL.ora' 
FROM PFILE='$ORACLE_HOME/dbs/initORCL.ora';
用途:迁移至动态参数管理
  • ​SPFILE → PFILE
CREATE PFILE='$ORACLE_HOME/dbs/initORCL_new.ora' 
FROM SPFILE='$ORACLE_HOME/dbs/spfileORCL.ora';
用途:备份或手动调整参数
  • ​从内存生成 PFILE(Oracle 11g+)
CREATE PFILE FROM MEMORY;  -- 直接基于当前内存参数生成文本文件

四、实操记录

  • 修改了系统参数文件spfile,导致数据库启动不了。

报错:

ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance
--内存参数错误的
ORA-00845: MEMORY_TARGET not supported on this system  
--db_recovery_area参数错误的
ORA-01261: Parameter db_recovery_file_dest destination string cannot be translated
ORA-01262: Stat failed on a file destination directory
  • 在修改参数前,应该先备份spfile文件。
[oracle@em24ai:/u01/app/oracle/product/19.3.0/db/dbs]$ 
cp spfileemcc.ora spfileemcc.ora.bak
  • 1、sqlplus / as sysdba
  • 2、使用初始化的文件启动数据库 启动数据库到 nomount 状态,要使用一个可用的pfile
SQL> startup pfile=$ORACLE_HOME/dbs/init1.ora nomount;
  • 3、备份初始化文件,然后修改初始化文件的参数配置与系统物理硬件匹配
vi $ORACLE_HOME/dbs/init1.ora
SYS@emcc SQL> create pfile='/u01/app/oracle/product/19.3.0/db/dbs/init1.ora' from spfile;
File created.SYS@emcc SQL> startup pfile='/u01/app/oracle/product/19.3.0/db/dbs/init1.ora';                                                          ORACLE instance started.Total System Global Area 1.0737E+10 bytes
Fixed Size                 13683928 bytes
Variable Size            2382364672 bytes
Database Buffers         8321499136 bytes
Redo Buffers               19869696 bytes
Database mounted.
  • 4、创建新的 spfile
SQL> create spfile from pfile='$ORACLE_HOME/dbs/init1.ora';
  • 5、重新启动数据库
SQL> shutdown immediate;
SQL> startup;
  • 6、记得再生成一个可编辑的文本文件,pfile以备下次使用
SYS@emcc SQL> startup mount;
ORACLE instance started.Total System Global Area 1.0737E+10 bytes
Fixed Size                 13683928 bytes
Variable Size            2382364672 bytes
Database Buffers         8321499136 bytes
Redo Buffers               19869696 bytes
Database mounted.
SYS@emcc SQL> alter database open;Database altered.SYS@emcc SQL> create pfile='/u01/app/oracle/product/19.3.0/db/dbs/pfileemcc.ora' from spfile;File created.SYS@emcc SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SYS@emcc SQL> startup
ORACLE instance started.Total System Global Area 1.0737E+10 bytes
Fixed Size                 13683928 bytes
Variable Size            2382364672 bytes
Database Buffers         8321499136 bytes
Redo Buffers               19869696 bytes
Database mounted.
Database opened.

五、运维实践与注意事项

  • 生产环境推荐​​优先使用 SPFILE:支持动态调整、RMAN 备份,避免重启中断服务
  • 故障恢复场景
  1. ​SPFILE 损坏时​:通过备份的 PFILE 启动,或从内存生成临时 PFILE 后再重建 SPFILE
  2. 参数误配置​:若因参数错误无法启动,可通过临时 PFILE 覆盖错误参数,再重建 SPFILE
  • 关键命令示例
  1. 动态修改参数​(使用 SPFILE 时):
    -- 需重启生效ALTER SYSTEM SET sga_max_size=4G SCOPE=SPFILE;

注意:SCOPE 的默认值依赖当前参数文件类型

(SPFILE 启动时默认为 BOTH,RAC环境记得是sid=‘*’;) 

  • init.ora → 参数模板,指导创建 PFILE。
  • PFILE​ → 可编辑的文本配置,需重启生效。
  • ​SPFILE​ → 二进制动态配置,支持实时调整,生产环境首选。
  • 启动优先级​:spfile.ora > spfile.ora > init.ora。
  • 灵活切换​:通过 CREATE SPFILE/PFILE 命令实现互转,适应不同运维需求。

 建议生产环境统一使用 SPFILE,结合定期备份(RMAN 或导出为 PFILE)确保参数安全

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/87954.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/87954.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

spring碎片

包的扫描过程 判断当前是否是文件夹获取文件夹里面的所有内容判断文件夹是否为空,为空的话直接返回如果文件夹不为空,则遍历文件夹里面的所有内容 遍历得到每个file对象,继续进行判断,如果还是文件,则进一步进行递归遍历得到的file对象不是文件夹,是文件得到包路径类名称-字符…

如何形成项目经验在多个项目间的高效复用?

要实现项目经验的跨项目高效复用&#xff0c;核心在于建立系统化总结机制、标准化知识表达、平台化共享工具。其中&#xff0c;标准化知识表达尤为关键&#xff0c;它通过统一模板和分类体系&#xff0c;确保不同项目的经验可以被快速理解、轻松匹配到新场景&#xff0c;从而提…

目标检测之YOLOV11谈谈OBB

引言&#xff1a;从轴对齐到定向边界框的范式转变 在计算机视觉领域&#xff0c;目标检测算法长期受限于轴对齐边界框&#xff08;AABB&#xff09;的固有缺陷——当面对航拍图像中的舰船、遥感影像中的建筑物或工业质检中的倾斜零件时&#xff0c;传统边界框会包含大量背景噪…

Vue2之生命周期

文章目录 Vue生命周期Vue生命周期钩子生命周期钩子小案例在created中获取数据在mounted中获取焦点 Vue生命周期 思考&#xff1a;什么时候可以发送初始化渲染请求&#xff1f;&#xff08;越早越好&#xff09;什么时候可以开始操作dom&#xff1f;&#xff08;至少dom得渲染出…

Web 架构之多租户(SaaS)系统设计要点

文章目录 一、多租户系统概述定义应用场景 二、设计要点1. 数据隔离独立数据库共享数据库&#xff0c;独立 Schema共享数据库&#xff0c;共享 Schema数据访问控制 2. 资源分配计算资源存储资源 3. 租户管理租户注册与注销租户信息管理 4. 安全与合规身份验证与授权数据加密 三…

【Clickhouse系列】索引

目录 1. 主键索引 (Primary Key Index) - 核心是稀疏索引 2. 跳数索引 (Data Skipping Indexes) - 二级索引 3. 关键总结与最佳实践&#xff1a; ClickHouse的索引设计哲学与其他传统OLTP数据库&#xff08;如MySQL&#xff09;有显著不同&#xff0c;它更侧重于高效扫描大数…

445场周赛

第一题&#xff1a;检查元素频次是否为质数 给你一个整数数组 nums。 如果数组中任一元素的 频次 是 质数&#xff0c;返回 true&#xff1b;否则&#xff0c;返回 false。 元素 x 的 频次 是它在数组中出现的次数。 质数是一个大于 1 的自然数&#xff0c;并且只有两个因数…

【SQL语法汇总】

读音:MySQL —— 卖舌口 MySQL 实际上是DBMS软件系统, 并非数据库。通过系统管理维护数据库,DBMS相当于用户和数据库之间的桥梁。 MySQL是一种关系型数据库, 类似excel,用行和列的关系组织数据数据。 操作关系型数据库的DBMS系统大多数用SQL来管理数据。 SQL是编程语言…

C++法则10:引用本身是一个“别名”(alias),一旦绑定到一个对象后,就不能再重新绑定到其他对象。

C法则10&#xff1a;引用本身是一个“别名”&#xff08;alias&#xff09;&#xff0c;一旦绑定到一个对象后&#xff0c;就不能再重新绑定到其他对象。 在C中&#xff0c;引用&#xff08;reference&#xff09;是一个已存在对象的别名。一旦引用被初始化绑定到一个对象&…

PHP 生成当月日期

一&#xff1a;按日期顺序排列的数组&#xff0c;而不是按周分组的二维数组 /*日期生成 *day: 日期数字 *date: 完整的日期字符串 (YYYY-MM-DD) *is_current_month: 是否属于当前月份 *is_prev_month: 是否是上个月的日期 *is_next_month: 是否是下个月的日期 *is_today: 是否是…

vue3+elementPlus实现无缝滚动表格封装

vue3+elementPlus+css+js 模拟liMarquee插件,实现无限滚动效果 功能:1、表格数据大于一定数量之后,开始向上滚动 2、当鼠标移入的时候,动画停止,鼠标移出,继续动画 3、滚动动画的速度可以自定义 4、表格的高度固定 5、向上滚动时,无限滚动,不存在卡顿 <template>…

AI赋能企业内训:2025智能化教育培训系统源码开发全解析

从线下集中授课到线上碎片化学习&#xff0c;从被动灌输到主动交互&#xff0c;越来越多企业开始关注“企业内训系统”的智能化升级。而这一切的背后&#xff0c;离不开AI技术的深度赋能。 笔者认为&#xff0c;2025年将是企业内训系统“从信息化走向智能化”的关键拐点。本篇…

旅游安全急救实训室:构建旅游行业安全人才培养新范式

在文旅产业蓬勃发展与安全应急需求日益凸显的背景下&#xff0c;旅游安全急救能力已成为从业者的核心素养之一。当前&#xff0c;旅游市场突发状况频发&#xff0c;如景区意外事故、游客突发疾病等&#xff0c;对从业人员的急救技能提出了更高要求——既要掌握基础急救操作&…

网络编程及原理(六):三次握手、四次挥手

目录 一 . TCP 的核心机制&#xff1a;连接管理 二 . 三次握手&#xff1a;建立连接 &#xff08;1&#xff09; 三次握手的意义 &#xff08;1.1&#xff09;初步验证通信链路是否流畅 &#xff08;1.2&#xff09;确认通信双方各自的发送、接受能力是否正常 &…

【LLaMA 3实战】2、LLaMA 3对话能力全解析:从架构革新到多智能体实战指南

引言:LLaMA 3对话能力的革命性突破 当Meta发布LLaMA 3时,其对话能力的跃升重新定义了开源大模型的边界。这款拥有128K上下文窗口的开源模型,不仅在MT-Bench评测中超越GPT-3.5,更通过分组查询注意力(GQA)等架构创新,实现了推理速度30%的提升。 本文将从底层架构到应用实战…

面试题-在ts中类型转换的方法

在 TypeScript 中&#xff0c;类型转换主要分为 类型断言&#xff08;Type Assertion&#xff09;、类型守卫&#xff08;Type Guard&#xff09; 和 类型兼容转换 三种方式。以下是详细分类和示例&#xff1a; 一、类型断言&#xff08;Type Assertion&#xff09; 强制编译…

IIS配置SSL证书

公司的一个项目使用IIS部署的网站&#xff0c;现在需要更新SSL证书。为了下次方便&#xff0c;在此做记录整理。 以下第一部分是查网络AI查询到的资料&#xff0c;解决了我心中对双击和从IIS导入有什么不同的疑惑。第二部分是我在这次实际操作过程中的截图。 一.证书安装方式 …

K8s初始化容器与边车容器比对

Kubernetes 中的初始化容器和边车容器 Kubernetes 作为一个开源容器编排平台&#xff0c;引入了强大的概念来管理和增强 Pod 内容器的功能。其中两个概念是初始化容器&#xff08;Init Containers&#xff09;和边车容器&#xff08;Sidecar Containers&#xff09;。尽管这两…

无线Debugger攻防全解:原理剖析与突破之道

引言​​ 在Web安全防护体系中&#xff0c;反调试技术已成为对抗爬虫和分析的关键武器。2023年OWASP报告显示&#xff0c;Top 1000网站中92%部署了反调试机制&#xff0c;其中​​无线Debugger技术​​&#xff08;也称为无限Debug&#xff09;因其难以破解的特性&#xff0c;…

Eslint自定义规则使用

文章目录 前言场景设定&#xff1a;维护代码分层&#xff0c;禁止“跨级调用”实现步骤&#xff1a;从零到一&#xff0c;创建你的第一条自定义规则**第 1 步&#xff1a;创建规则文件****第 2 步&#xff1a;在 eslint.config.mjs 中注册并启用你的规则** 验证成果 前言 设计…