当前位置: 首页 > news >正文

Oracle参数文件详解

1、参数文件的作用

参数文件用于存放实例所需要的初始化参数,因为多数初始化参数都具有默认值,所以参数文件实际存放了非默认的初始化参数。

2、参数文件类型

1)服务端参数文件,又称为 spfile
二进制的文件,命名规则为:spfile+sid.ora
如: spfileorcl.ora

2)静态参数文件,又称为 pfile
文本文件,命名规则为:init+sid.ora
如: Iinitorcl.ora

注意事项:
由于服务端参数文件是二进制的文件,使用vim打开看到的是乱乱的内容,此时切记不可使用:wq保存退出,否则服务端参数文件会损坏

3、参数文件的位置

SQL > show parameter spfileNAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string      /u01/app/oracle/product/19.3.0/db_1/dbs/spfileorcl.ora

进入 /u01/app/oracle/product/19.3.0/db_1/dbs/路径查看当前有哪些参数文件

# cd /u01/app/oracle/product/19.3.0/db_1/dbs/
# ls
hc_mydb.dat   hc_orcl.dat  init.ora  lkORCL  orapworcl  spfileorcl.ora
hc_oradb.dat  hc_prod.dat  lkMYDB    lkPROD  orapwprod  spfileprod.ora
  • 有两个服务端参数文件(该服务器安装了两个数据库):spfileorcl.ora spfileprod.ora
  • 没有静态参数文件

4.创建参数文件

4.1 创建静态参数文件
(1)orcl数据库在默认路径下创建静态参数文件

SYS@orcl(CDB$ROOT)> create pfile from spfile;File created.

或:

SYS@orcl(CDB$ROOT)> create pfile from memory;File created.

执行上述命令之一后再次查看,可看到新建的静态参数文件 initorcl.ora

# cd /u01/app/oracle/product/19.3.0/db_1/dbs/
# ls
hc_mydb.dat   hc_orcl.dat  init.ora      lkMYDB  lkPROD     orapwprod       spfileprod.ora
hc_oradb.dat  hc_prod.dat  initorcl.ora  lkORCL  orapworcl  spfileorcl.ora--查看服务端参数文件格式(二进制)
# file spfileorcl.ora
spfileorcl.ora: data--查看静态参数文件格式(文本文件)
# file initorcl.ora
initorcl.ora: ASCII text

(2)在指定路径下创建静态参数文件

SQL> create pfile='/home/oracle/init.ora' from spfile;
或
SQL> create pfile='/home/oracle/init.ora' from memory;

4.2 创建服务端参数文件
(1)在默认路径下创建服务端参数文件

SYS@orcl(CDB$ROOT)> create spfile from pfile;File created.

注意事项:
若当前数据库正在使用服务端参数文件,则无法在默认路径创建服务端参数文件。

SYS@orcl(CDB$ROOT)> create spfile from pfile;
create spfile from pfile
*
ERROR at line 1:
ORA-32002: cannot create SPFILE already being used by the instance

(2)在指定路径下创建服务端参数文件

SQL> create spfile='/home/oracle/spfile.ora' from pfile;
SQL> create spfile='/home/oracle/spfile_memory.ora' from memory;

5、参数文件使用顺序

  • 优先使用 spfile
  • 当 spfile 不存在或出错使用 pfile
  • 当 pfile 也不存在或出错,数据库不能正常启动。

6、如何判断数据库使用的是 SPFILE 还是 PFILE 呢

SYS@orcl(CDB$ROOT)> show parameter spfileNAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string      /u01/app/oracle/product/19.3.0/db_1/dbs/spfileorcl.ora

这里通过VALUE的值,可以知道使用的是服务器参数文件spfileorcl.ora,若VALUE值为空,说明使用的是静态参数文件。

7、参数查看

(1)方法一:使用show命令

--查看所有参数
SQL> show parameter --查询含有特定关键字的参数
----如查看含有undo关键字的参数
SQL> show parameter undoNAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
temp_undo_enabled                    boolean     FALSE
undo_management                      string      AUTO
undo_retention                       integer     900
undo_tablespace                      string      UNDOTBS1--查看指定参数
SQL> show parameter 参数名
----如查看参数undo_tablespace
SQL> show parameter undo_tablespaceNAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
undo_tablespace                      string      UNDOTBS1

(2)方法二:查询数据字典v$parameter

--查看所有参数
SQL> select NAME,VALUE from v$parameter;--查看含有特定关键字的参数
----如查看含有undo关键字的参数
SQL> select NAME,VALUE from v$parameter where NAME like '%undo%';--查看指定参数
----如查看参数undo_tablespace
SQL> select NAME,VALUE from v$parameter where NAME = 'undo_tablespace';

8、参数修改

1)alter session
当前会话生效,新开的会话或重启数据库参数值不生效。
例:

SQL> alter session set sql_trace=true;

2)alter system
当前会话生效,新开的会话或重启数据库会参数值都生效。
例:

SQL> alter system set sql_trace=true;

3)ALTER SYSTEM ……… deferred
当前会话不生效,新开的会话或重启数据库会参数值生效。
例:

SQL> alter system set sort_area_size=75536 deferred;

注:当前窗口的参数值不生效,另外打开一个窗口后,参数值生效。

4)重置参数值
例:

SQL> alter system reset optimizer_mode;

5)加选项 scope=spfile|memory|both
例:

SQL> alter system set optimizer_mode=all_rows scope=spfile;
SQL> alter system set optimizer_mode=all_rows scope=memory;
SQL> alter system set optimizer_mode=all_rows scope=both;
SQL> alter system set optimizer_mode=all_rows;

注:

  • 对静态参数的修改,需要指定 scope=spfile 选项, 需要重启数据库才生效 。
  • 默认选项为both

关于参数修改的更多内容可参看文章:《Oracle 参数文件 & 参数详解》

9、CDB参数 & PDB参数

CDB 参数文件使用 12c 以前的 SPIFLE,pdb 参数文件不出现在 SPFILE 中,而是从CDB 中继承。

SYS@orcl(CDB$ROOT)> show con_nameCON_NAME
------------------------------
CDB$ROOTSYS@orcl(CDB$ROOT)> select pdb_uid,name,value$ from PDB_SPFILE$;no rows selectedSYS@orcl(CDB$ROOT)> show parameter open_cursorsNAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
open_cursors                         integer     300SYS@orcl(CDB$ROOT)> show pdbsCON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------2 PDB$SEED                       READ ONLY  NO3 PDB                            READ WRITE NOSYS@orcl(CDB$ROOT)> alter session set container=pdb;Session altered.SYS@orcl(CDB$ROOT)> show con_nameCON_NAME
------------------------------
PDBSYS@orcl(CDB$ROOT)> show parameter open_cursorsNAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
open_cursors                         integer     300

如果 PDB 中有私有本地参数,则会保存在 CDB 的 PDB_SPFILE$字典表中,并以 con_id 区别。

SYS@orcl(CDB$ROOT)> alter system set open_cursors=400;System altered.SYS@orcl(CDB$ROOT)> show parameter open_cursorsNAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
open_cursors                         integer     400SYS@orcl(CDB$ROOT)> conn / as sysdba
Connected.
SYS@orcl(CDB$ROOT)> show con_nameCON_NAME
------------------------------
CDB$ROOT
SYS@orcl(CDB$ROOT)> show parameter open_cursorsNAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
open_cursors                         integer     300SYS@orcl(CDB$ROOT)> select pdb_uid,name,value$ from PDB_SPFILE$;PDB_UID        NAME               VALUE$
--------------------------------------------------------------------------------
1767828969   open_cursors    400

当 PDB UN-Plug 时,PDB 参数写入 PDB 的 XML 文件中:

SYS@orcl(CDB$ROOT)> alter pluggable database pdb close immediate;Pluggable database altered.SYS@orcl(CDB$ROOT)> alter pluggable database pdb unplug into '/home/oracle/pdb.xml';Pluggable database altered.
# cat /home/oracle/pdb.xml

会看到PDB 修改的参数已写入 PDB 的 XML 文件中。
在这里插入图片描述
当 droppluggable database 后,pdb 和 PDB_SPFILE$信息记录会被清除。

SYS@orcl(CDB$ROOT)> drop pluggable database pdb keep datafiles;Pluggable database dropped.SYS@orcl(CDB$ROOT)> select pdb_uid,name,value$ from PDB_SPFILE$;no rows selected

当PDB重新 Plug-in到CDB时会重新加载回PDB, 但是由于一些PDB参数特殊原因在plug-in时会被遗弃。这里因为没有特殊参数,所以没有丢失参数。

SYS@orcl(CDB$ROOT)> create pluggable database pdb using '/home/oracle/pdb.xml' nocopy;Pluggable database created.SYS@orcl(CDB$ROOT)> select pdb_uid,name,value$ from PDB_SPFILE$;PDB_UID        NAME               VALUE$
--------------------------------------------------------------------------------
2365777561   open_cursors    400
SYS@orcl(CDB$ROOT)> show pdbsCON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------2 PDB$SEED                       READ ONLY  NO4 PDB                                   MOUNTEDSYS@orcl(CDB$ROOT)> alter pluggable database pdb open;Pluggable database altered.SYS@orcl(CDB$ROOT)> show pdbsCON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------2 PDB$SEED                       READ ONLY  NO4 PDB                            READ WRITE NO

删除 PDB_SPFILE$中相关记录,pdb 的参数值会自动继续继承 cdb 中参数值(重启生效)。

SYS@orcl(CDB$ROOT)> alter system set open_cursors=500;System altered.SYS@orcl(CDB$ROOT)> show parameter open_cursorsNAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
open_cursors                         integer     500
SYS@orcl(CDB$ROOT)> alter session set container=pdb;Session altered.SYS@orcl(CDB$ROOT)> show parameter open_cursorsNAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
open_cursors                         integer     400SYS@orcl(CDB$ROOT)> shutdown immediate
Pluggable Database closed.SYS@orcl(CDB$ROOT)> startup
Pluggable Database opened.SYS@orcl(CDB$ROOT)> show parameter open_cursorsNAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
open_cursors                         integer     400SYS@orcl(CDB$ROOT)> delete from PDB_SPFILE$;1 row deleted.SYS@orcl(CDB$ROOT)> alter session set container=pdb;Session altered.SYS@orcl(CDB$ROOT)> show parameter open_cursorsNAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
open_cursors                         integer     400SYS@orcl(CDB$ROOT)> shutdown immediate
Pluggable Database closed.SYS@orcl(CDB$ROOT)> startup
Pluggable Database opened.SYS@orcl(CDB$ROOT)> show parameter open_cursorsNAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
open_cursors                         integer     500

相关文章:

Oracle参数文件详解

1、参数文件的作用 参数文件用于存放实例所需要的初始化参数,因为多数初始化参数都具有默认值,所以参数文件实际存放了非默认的初始化参数。 2、参数文件类型 1)服务端参数文件,又称为 spfile 二进制的文件,命名规则…...

鸿蒙(HarmonyOS)Navigation如何实现多场景UI适配?

场景介绍 应用在不同屏幕大小的设备上运行时,往往有不同的UI适配,以聊天应用举例: 在窄屏设备上,联系人和聊天区在多窗口中体现。在宽屏设备上,联系人和聊天区在同一窗口体现。 要做好适配,往往需要开发…...

PTGui图像拼接实验

1 PTGui图像拼接实验 1.1 概述 图像拼接技术就是将数张有重叠部分的图像(可能是不同时间、不同视角或者不同传感器获得的)拼成一幅无缝的全景图或高分辨率图像的技术 图像配准(image alignment)和图像融合是图像拼接的两个关键…...

C++|类封装、类的分文件编写练习:设计立方体类、点和圆的关系

文章目录 练习案例1:设计立方体类CPP代码 练习案例2:点和圆的关系CPP代码 代码总结类的分文件编写 练习案例1:设计立方体类 设计立方体类(Cube) 求出立方体的面积和体积 分别用全局函数和成员函数判断两个立方体是否相等。 CPP代码 class Cube { pub…...

大数据开发扩展shell--尚硅谷shell笔记

大数据开发扩展shell 学习目标 1 熟悉shell脚本的原理和使用 2 熟悉shell的编程语法 第一节 Shell概述 1)Linux提供的Shell解析器有: 查看系统中可用的 shell [atguiguhadoop101 ~]$ cat /etc/shells /bin/sh/bin/bash/sbin/nologin/bin/dash/bin/t…...

考研数学|《1800》《1000》《880》《660》最佳搭配使用方法

直接说结论:基础不好先做1800、强化之前660,强化可选880/1000题。 首先,传统习题册存在的一个问题是题量较大,但难度波动较大。《汤家凤1800》和《张宇1000》题量庞大,但有些题目难度不够平衡,有些过于简单…...

【GameFramework框架内置模块】17、声音(Sound)

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址QQ群:398291828大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 一、前言 【GameFramework框架】系列教程目录: https://blog.csdn.net/q764424567/article/details/1…...

视频记录历史播放位置效果

简介 每次打开页面视频从上一次的播放位置开始播放 利用lodash库做节流 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-sca…...

Request Response

简介 Request&#xff08;请求&#xff09; & Response&#xff08;响应&#xff09; 浏览器会向服务器发送请求数据&#xff0c;服务器也需要返回响应数据给浏览器&#xff0c;因此我们需要设置对应的类来代表请求数据和响应数据&#xff0c;且Servlet中的service方法就需…...

How to convert .py to .ipynb in Ubuntu 22.04

How to convert .py to .ipynb in Ubuntu 22.04 jupyter nbconvertp2j 最近看到大家在用jupyter notebook&#xff0c;我也试了一下&#xff0c;感觉还不错&#xff0c;不过&#xff0c;也遇到了一些问题&#xff0c;比方说&#xff0c;我有堆的.py文件&#xff0c;如果要一个一…...

【prometheus-operator】k8s监控集群外redis

1、部署exporter GitHub - oliver006/redis_exporter: Prometheus Exporter for Redis Metrics. Supports Redis 2.x, 3.x, 4.x, 5.x, 6.x, and 7.x redis_exporter-v1.57.0.linux-386.tar.gz # 解压 tar -zxvf redis_exporter-v1.57.0.linux-386.tar.gz # 启动 nohup ./redi…...

MySQL索引(图文并茂)

目录 一、索引的概念 二、索引的作用 三、创建索引的原则依据 四、索引的分类和创建 1、索引的分类 2、索引的创建 2.1 普通索引 2.1.1 直接创建索引 2.1.2 修改表方式创建 2.1.3 创建表的时候指定索引 2.2 唯一索引 2.2.1 直接创建唯一索引 2.2.2 修改表方式创建 …...

Redis 教程系列之Redis PHP 使用 Redis(十二)

PHP 使用 Redis 安装 开始在 PHP 中使用 Redis 前&#xff0c; 我们需要确保已经安装了 redis 服务及 PHP redis 驱动&#xff0c;且你的机器上能正常使用 PHP。 接下来让我们安装 PHP redis 驱动&#xff1a;下载地址为:https://github.com/phpredis/phpredis/releases。 P…...

JavaScript语法和数据类型

基础 JavaScript 借鉴了 Java 的大部分语法&#xff0c;但同时也受到 Awk、Perl 和 Python 的影响。 JavaScript 是区分大小写的&#xff0c;并使用 Unicode 字符集。举个例子&#xff0c;可以将单词 Frh&#xff08;在德语中意思是“早”&#xff09;用作变量名。 var Frh …...

解决华为云服务器宝塔面板无法访问显示“此站点的连接不安全”问题

已经配置好安全组以及初始化宝塔面板&#xff0c;还是无法访问镜像管理页面&#xff0c;提示此站点的连接不安全。 解决方案 将地址https改为http即可进入。 成功登录后&#xff0c;开启面板SSL即可。...

【Python】 Python脚本实现某平台视频流下载

亲爱的玛丽 我会想念着你 我是多么的讨厌分离 加油站旁的海鸥 机场路上的松柏 挥挥手眼泪就落下来 我多想和那些光阴永远住下来 我不能 我不能 &#x1f3b5; 赵雷《玛丽》 在视频内容的分发上&#xff0c;m3u8格式的视频流越来越常见。它将视频切分成多个…...

LangChain核心模块 Model I/O——Prompts

Prompts ​ 语言模型的提示是用户提供的一组指令或输入&#xff0c;用于指导模型的响应&#xff0c;帮助模型理解上下文并生成相关且连贯的基于语言的输出&#xff0c;例如回答问题、完成句子或参与某项活动。对话。 关键问题 如何在LLMs中使用少量示例(few-shot examples)—…...

关于Docker守护程序未运行导致的错误

01 在启动Docker之前&#xff0c;确保你已经安装了Docker并且Docker服务是运行的。以下是一些步骤可以帮助你解决这个问题&#xff1a; 首先&#xff0c;确保Docker已经正确安装在你的系统上。你可以通过运行以下命令来检查Docker是否已安装&#xff1a; docker --version如果…...

Unity中关于SendMessage方法

在Unity中&#xff0c;SendMessage 方法用于在游戏对象及其所有子对象上调用指定名称的方法。这种方法可以用于在不需要知道接收方的确切类型的情况下&#xff0c;向游戏对象发送消息。 基本语法如下&#xff1a; void SendMessage(string methodName, object value null, S…...

C++ 修饰符类型

C 允许在 char、int 和 double 数据类型前放置修饰符。修饰符用于改变基本类型的含义&#xff0c;所以它更能满足各种情境的需求。 下面列出了数据类型修饰符&#xff1a; signedunsignedlongshort 修饰符 signed、unsigned、long 和 short 可应用于整型&#xff0c;signed …...

Python|GIF 解析与构建(5):手搓截屏和帧率控制

目录 Python&#xff5c;GIF 解析与构建&#xff08;5&#xff09;&#xff1a;手搓截屏和帧率控制 一、引言 二、技术实现&#xff1a;手搓截屏模块 2.1 核心原理 2.2 代码解析&#xff1a;ScreenshotData类 2.2.1 截图函数&#xff1a;capture_screen 三、技术实现&…...

生成xcframework

打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式&#xff0c;可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...

Spark 之 入门讲解详细版(1)

1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室&#xff08;Algorithms, Machines, and People Lab&#xff09;开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目&#xff0c;8个月后成为Apache顶级项目&#xff0c;速度之快足见过人之处&…...

JVM垃圾回收机制全解析

Java虚拟机&#xff08;JVM&#xff09;中的垃圾收集器&#xff08;Garbage Collector&#xff0c;简称GC&#xff09;是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象&#xff0c;从而释放内存空间&#xff0c;避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...

【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)

要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况&#xff0c;可以通过以下几种方式模拟或触发&#xff1a; 1. 增加CPU负载 运行大量计算密集型任务&#xff0c;例如&#xff1a; 使用多线程循环执行复杂计算&#xff08;如数学运算、加密解密等&#xff09;。运行图…...

Ascend NPU上适配Step-Audio模型

1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统&#xff0c;支持多语言对话&#xff08;如 中文&#xff0c;英文&#xff0c;日语&#xff09;&#xff0c;语音情感&#xff08;如 开心&#xff0c;悲伤&#xff09;&#x…...

c#开发AI模型对话

AI模型 前面已经介绍了一般AI模型本地部署&#xff0c;直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型&#xff0c;但是目前国内可能使用不多&#xff0c;至少实践例子很少看见。开发训练模型就不介绍了&am…...

【JavaSE】绘图与事件入门学习笔记

-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角&#xff0c;以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向&#xff0c;距离坐标原点x个像素;第二个是y坐标&#xff0c;表示当前位置为垂直方向&#xff0c;距离坐标原点y个像素。 坐标体系-像素 …...

如何理解 IP 数据报中的 TTL?

目录 前言理解 前言 面试灵魂一问&#xff1a;说说对 IP 数据报中 TTL 的理解&#xff1f;我们都知道&#xff0c;IP 数据报由首部和数据两部分组成&#xff0c;首部又分为两部分&#xff1a;固定部分和可变部分&#xff0c;共占 20 字节&#xff0c;而即将讨论的 TTL 就位于首…...

AspectJ 在 Android 中的完整使用指南

一、环境配置&#xff08;Gradle 7.0 适配&#xff09; 1. 项目级 build.gradle // 注意&#xff1a;沪江插件已停更&#xff0c;推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...