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(请求) & Response(响应) 浏览器会向服务器发送请求数据,服务器也需要返回响应数据给浏览器,因此我们需要设置对应的类来代表请求数据和响应数据,且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,我也试了一下,感觉还不错,不过,也遇到了一些问题,比方说,我有堆的.py文件,如果要一个一…...
【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 前, 我们需要确保已经安装了 redis 服务及 PHP redis 驱动,且你的机器上能正常使用 PHP。 接下来让我们安装 PHP redis 驱动:下载地址为:https://github.com/phpredis/phpredis/releases。 P…...
JavaScript语法和数据类型
基础 JavaScript 借鉴了 Java 的大部分语法,但同时也受到 Awk、Perl 和 Python 的影响。 JavaScript 是区分大小写的,并使用 Unicode 字符集。举个例子,可以将单词 Frh(在德语中意思是“早”)用作变量名。 var Frh …...
解决华为云服务器宝塔面板无法访问显示“此站点的连接不安全”问题
已经配置好安全组以及初始化宝塔面板,还是无法访问镜像管理页面,提示此站点的连接不安全。 解决方案 将地址https改为http即可进入。 成功登录后,开启面板SSL即可。...
【Python】 Python脚本实现某平台视频流下载
亲爱的玛丽 我会想念着你 我是多么的讨厌分离 加油站旁的海鸥 机场路上的松柏 挥挥手眼泪就落下来 我多想和那些光阴永远住下来 我不能 我不能 🎵 赵雷《玛丽》 在视频内容的分发上,m3u8格式的视频流越来越常见。它将视频切分成多个…...
LangChain核心模块 Model I/O——Prompts
Prompts 语言模型的提示是用户提供的一组指令或输入,用于指导模型的响应,帮助模型理解上下文并生成相关且连贯的基于语言的输出,例如回答问题、完成句子或参与某项活动。对话。 关键问题 如何在LLMs中使用少量示例(few-shot examples)—…...
关于Docker守护程序未运行导致的错误
01 在启动Docker之前,确保你已经安装了Docker并且Docker服务是运行的。以下是一些步骤可以帮助你解决这个问题: 首先,确保Docker已经正确安装在你的系统上。你可以通过运行以下命令来检查Docker是否已安装: docker --version如果…...
Unity中关于SendMessage方法
在Unity中,SendMessage 方法用于在游戏对象及其所有子对象上调用指定名称的方法。这种方法可以用于在不需要知道接收方的确切类型的情况下,向游戏对象发送消息。 基本语法如下: void SendMessage(string methodName, object value null, S…...
C++ 修饰符类型
C 允许在 char、int 和 double 数据类型前放置修饰符。修饰符用于改变基本类型的含义,所以它更能满足各种情境的需求。 下面列出了数据类型修饰符: signedunsignedlongshort 修饰符 signed、unsigned、long 和 short 可应用于整型,signed …...
IDEA运行Tomcat出现乱码问题解决汇总
最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…...
深入剖析AI大模型:大模型时代的 Prompt 工程全解析
今天聊的内容,我认为是AI开发里面非常重要的内容。它在AI开发里无处不在,当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗",或者让翻译模型 "将这段合同翻译成商务日语" 时,输入的这句话就是 Prompt。…...
C++:std::is_convertible
C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...
MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例
一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...
边缘计算医疗风险自查APP开发方案
核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...
Golang dig框架与GraphQL的完美结合
将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用,可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器,能够帮助开发者更好地管理复杂的依赖关系,而 GraphQL 则是一种用于 API 的查询语言,能够提…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序
一、开发环境准备 工具安装: 下载安装DevEco Studio 4.0(支持HarmonyOS 5)配置HarmonyOS SDK 5.0确保Node.js版本≥14 项目初始化: ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...
Robots.txt 文件
什么是robots.txt? robots.txt 是一个位于网站根目录下的文本文件(如:https://example.com/robots.txt),它用于指导网络爬虫(如搜索引擎的蜘蛛程序)如何抓取该网站的内容。这个文件遵循 Robots…...
uniapp微信小程序视频实时流+pc端预览方案
方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度WebSocket图片帧定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐RTMP推流TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...
大数据学习(132)-HIve数据分析
🍋🍋大数据学习🍋🍋 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言Ǵ…...
