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

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

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

相关文章

Django 三板斧、静态文件、request方法

【一】三板斧 【1】HttpResponse (1)介绍 HttpResponse是Django中的一个类,用于构建HTTP响应对象。它允许创建并返回包含特定内容的HTTP响应。 (2)使用 导入HttpResponse类 from django.http import HttpResponse创…

八股文(1)

管道 匿名管道和命名管道 命名管道的使用是什么?在linux系统如何实现 命名管道(Named Pipe),也称为FIFO(First In First Out),是一种在UNIX和Linux系统中用于进程间通信(IPC&…

sqllabs1-7sql注入

先在?id参数后面判断是否存在sql注入 id1 返回正常 id1 返回报错(说明可能存在sql注入) id1 and 11 返回正常 id1 and 12 返回正常 id1 and 11 报错 id1 and 12 报错 说明$id后面可能还存在sql语句(源码源码:$sql"S…

HTML:常用标签

1. 标签概念 <!-- 五要素&#xff1a; 文档声明<!DOCTYPE html> 根标签<html></html> 头部元素<head></head> 主体元素<body></body> 注释标签 1.html文件的根标签&#xff0c; <html></html>所有其他标签都要放…

yarn、npm设置淘宝国内镜像

NPM 1. 查询当前镜像 npm get registry 2. 设置为淘宝镜像 npm config set registry https://registry.npm.taobao.org/ (旧地址&#xff0c;不再维护&#xff0c;可以使用) npm config set registry https://registry.npmmirror.com/ (最新地址)3. 设置为官…

第三十一章 配置 Web Gateway 的默认参数 - 事件记录参数

文章目录 第三十一章 配置 Web Gateway 的默认参数 - 事件记录参数 第三十一章 配置 Web Gateway 的默认参数 - 事件记录参数 事件日志级别字段指定 Web Gateway 写入 Web Gateway 事件日志的信息。日志记录选项定义为一串字符&#xff0c;每个字符代表一个日志记录命令。此处…

springboot实现简单的excel导入

前文其实已经实现了较为复杂的excel导入了&#xff0c;这篇博客就给大家介绍简单的excel表格导入方法 以下是我的excel表格&#xff1a; 以下是我的实体类&#xff1a; package com.datapojo.bean;import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.m…

直接插入排序 希尔排序 选择排序 堆排序

目录 一. 排序的概念及应用 1.1 排序的概念 1.2 常见的排序算法 二. 常见排序算法的实现(从小到大排序) 2.1 插入排序 2.1.1基本思想&#xff1a; 2.1.2 直接插入排序 2.1.3 希尔排序( 缩小增量排序) 2.2 选择排序 2.2.1基本思想&#xff1a; 2.2.2 直接选择排序: 2…

【Node.js】mysql 操作 MySQL 数据库

实际案例 db/index.js const mysql require(mysql)// 创建数据库的连接 const db mysql.createPool({host: localhost,user: root,password: hxg20021126,database: management-pro })module.exports dbLoginController.js const db require(../db/index) const bcrypt …

动态规划——线性dp

数字三角形 // 从上到下 #include <iostream> #include <algorithm> using namespace std; const int N 510, INF 1e9; int n; int a[N][N]; int f[N][N];int main() {scanf("%d", &n);for (int i 1; i < n; i )for (int j 1; j < i; j …

宝塔面板安装sqlite

宝塔面板是一个非常流行的服务器管理面板&#xff0c;它提供了许多方便的功能来管理服务器和网站。但是&#xff0c;默认情况下&#xff0c;宝塔面板不支持SQLite数据库的安装和管理。SQLite是一个轻量级的嵌入式数据库&#xff0c;它在很多应用程序中被广泛使用。如果你需要在…

计算机组成原理 CPU组成与机器指令执行实验

一、实验目的 (1)将微程序控制器同执行部件( 整个数据通路)联机&#xff0c;组成一台模型计算机; (2)用微程序控制器控制模型机数据通路; (3)通过CPU运行九条机器指令(排除中断指令)组成的简单程序&#xff0c;掌握机器指令与微指令的关系&#xff0c;牢固建立计算机的整机概…

深度学习pytorch——2D函数优化实例(持续更新)

课程&#xff1a;课时46 优化问题实战_哔哩哔哩_bilibili 这就是我们今天要求的2D函数&#xff1a; 下图是使用python绘制出来的图像&#xff1a; 但是可以看出有4个最小值&#xff0c;但是还是不够直观&#xff0c;还是看课程里面给的比较好&#xff0c;蓝色是最低点位置&am…

Python 全栈系列236 rabbit_agent搭建

说明 通过rabbit_agent, 以接口方式实现对队列的标准操作&#xff0c;将pika包在微服务内&#xff0c;而不必在太多地方重复的去写。至少在服务端发布消息时&#xff0c;不必再去考虑这些问题。 在分布式任务的情况下&#xff0c;客户端本身会启动一个持续监听队列的客户端服…

动态规划16 | ● 583. 两个字符串的删除操作 ● *72. 编辑距离

583. 两个字符串的删除操作 https://programmercarl.com/0583.%E4%B8%A4%E4%B8%AA%E5%AD%97%E7%AC%A6%E4%B8%B2%E7%9A%84%E5%88%A0%E9%99%A4%E6%93%8D%E4%BD%9C.html 考点 子序列问题 我的思路 dp[i][j]的含义是&#xff0c;当两个字符串分别取前i和j个元素时&#xff0c;对应…

路由相关基本概念(IP入门)

IP协议--网络层--路由器、三层交换机&#xff08;冗余备份&#xff09; 路由器的功能&#xff1a; 1、构建和维护路由表 2、根据路由表进行转发 3、路由器接口划分广播域 路由--实现路由的设备&#xff08;路由器、多层交换机&#xff09; 协议&#xff1a;定义一种语言 路…

Django(一)- 环境搭建和快速入门

一、搭建环境 1、创建Python虚拟环境 (base) C:\Users\35351>conda create -n django_study python3.9 2、安装Django (django_study) C:\Users\35351>pip install Django >> 查看安装版本 (django_study) C:\Users\35351>python -m django --version 3、安…

数据分析与挖掘

数据起源&#xff1a; 规模庞大&#xff0c;结构复杂&#xff0c;难以通过现有商业工具和技术在可容忍的时间内获取、管理和处理的数据集。具有5V特性&#xff1a;数量&#xff08;Volume&#xff09;&#xff1a;数据量大、多样性&#xff08;Variety&#xff09;&#xff1a…

CSS(二)

一、CSS 的复合选择器 1.1 什么是复合选择器 在 CSS 中&#xff0c;可以根据选择器的类型把选择器分为基础选择器和复合选择器&#xff0c;复合选择器是建立在基础选择器之上&#xff0c;对基本选择器进行组合形成的。 复合选择器可以更准确、更高效的选择目标元素&#xff…

Mockito.when返回的list长度为0问题解决方法

今天玩Mockito.when遇见一个问题Mockito.when返回的list长度为0&#xff1b;上代码 ArrayList<Org> childDepts new ArrayList<>();Org org new Org();org.setDeptId("1");org.setDeptName("1");childDepts.add(org); Mockito.when(orgMappe…