(一)问题

今天在使用Pl/sql developer查看表空间大小的时候,报错误:ORA-00379 缓冲池 DEFAULT 中无法提供 32K 块大小的空闲缓冲区,具体如下图:

SQL> select * from dba_data_files;

通过网上查找问题原因,最终发现是因为之前设置了db_32k_cache_size参数,并且建立了32k block size大小的表空间,但是现在用了旧的参数文件,导致无法为相应的块按照32k的block_size来分配buffer cache。

在与我的数据库的实际情况比对,发现数据库db_32k_cache_size值如下:

SQL> show parameter cache
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
client_result_cache_lag big integer 3000
client_result_cache_size big integer 0
db_16k_cache_size big integer 0
db_2k_cache_size big integer 0
db_32k_cache_size big integer 0

db_4k_cache_size big integer 0
db_8k_cache_size big integer 0
db_cache_advice string ON
db_cache_size big integer 0
db_flash_cache_file string
db_flash_cache_size big integer 0
db_keep_cache_size big integer 0
db_recycle_cache_size big integer 0
object_cache_max_size_percent integer 10
object_cache_optimal_size integer 102400
result_cache_max_result integer 5
result_cache_max_size big integer 1920K
result_cache_mode string MANUAL
result_cache_remote_expiration integer 0
session_cached_cursors integer 50

在看表空间数据块的大小,发现有32K块表空间的存在:

由此基本可以得出结论:ORA-00379错误是由于创建了非标准块表空间,但是在之后因为参数修改或参数文件的替换导致db_Nk_cache_size不满足要求引起。

(二)解决方案

有2种解决方案,一种是删除非标准块的表空间,另一种是重新设置初始化参数db_Nk_cache_size参数。

(方法一)删除表空间

SQL> drop tablespace tbs_32k including contents and datafiles;

在执行查询

select * from dba_data_files;

不再报错。

(方法二)修改初始化参数

SQL> alter system set db_32k_cache_size=16m;

System altered

再次执行查询,不再报错。

(三)补充

Oracle数据块是数据库中最小的逻辑单元,分为标准块和非标准块两种。其中,标准块的大小在数据库创建时由参数db_block_size参数决定,其后不可更改,通常设置为4K或8K。Oracle 11g最多可以设置4钟不同大小的非标准块,可以为2K、4K、8K、16K、32K。

如果要使用非标准数据块创建表空间,需要在数据库初始化参数文件(spfile)中为每个非标准块在数据库高速缓存区中分配缓存空间,当非标准块高速缓存分配完成后,就可以创建基于非标准块的表空间了。

ORA-00379 缓冲池 DEFAULT 中无法提供 32K 块大小的空闲缓冲区的更多相关文章

  1. Hadoop-2.4.0中HDFS文件块大小默认为128M

    134217728 / 1024 = 131072 / 1024 = 128

  2. 在HTML中如何把块的边框做成圆角

    adius,就是半径的意思.用这个属性可以很容易做出圆角效果,当然,也可以做出圆形效果.原理很简单,“正方形的内切圆的半径等于正方形边长的一半”.下面就做一个红色的圆. 工具/原料 Adobe Dre ...

  3. java 子类、父类中静态代码块、字段,非静态代码块、字段以及构造函数的初始化顺序和次数

    一个类中的数据初始化顺序是面试官非常喜欢出的面试题之一,本文用一个实例来介绍java中子类.父类中静态代码块.字段,非静态代码块.字段以及构造函数的执行顺序和次数. 一.包结构

  4. Service 中添加同步块防止并发 重复

    Service 中添加同步块防止并发 重复. synchronized(this){}

  5. 删除外部dwg中指定的块定义

    本例实现删除外部图纸中指定的块定义,在外部图纸当前模型空间中是没有该块定义的块参照存在. 代码如下: void CBlockUtil::DeleteBlockDefFormOtherDwg(const ...

  6. 【Java基础】2、Java中普通代码块,构造代码块,静态代码块区别及代码示例

    Java中普通代码块,构造代码块,静态代码块区别及代码示例.Java中普通代码块,构造代码块,静态代码块区别及代码示例 执行顺序:静态代码块>静态方法(main方法)>构造代码块>构 ...

  7. javascript中不存在块级作用域,所以要小心使用在块级作用域中的函数声明所带来的作用域混乱.

    在javascript中函数的作用域是一个非常重要的概念. javascript中是没有块级作用域,但是有函数作用域的概念. 我们在开发的过程中,经常会遇到这样的问题, 某个函数我暂时不需要,不想声明 ...

  8. Java 中静态代码块初始化问题测试

    Java 中静态代码块初始化问题测试 原创 情况一:变量是 static final 修饰的"编译期常量",如 public static final String a = &qu ...

  9. 浅谈Java中静态初始化块跟非初始化块

    众所周知在JAVA编程语言中有两种初始化块:   静态初始化块 非静态初始化块 他们到底有什么区别呢?今天就浅谈一下JAVA中静态初始化块和非静态初始化块的区别   静态初始化块 定义:       ...

随机推荐

  1. XAMPP搭建PHP

    在学习一些前后端交互时,经常会有跟PHP作为后端(服务器)的交互,不能将php文件放在本地进行请求,必须将PHP运行在Apache环境中.但是对一些新手来说,学习搭建一个Apache环境也并非易事,所 ...

  2. Oracle闪回恢复

    Oracle的闪回功能包括 1.闪回数据库(前提 归档模式下 启用闪回数据库) mount 下 alter database archivelog; alter database flashback ...

  3. openssh/openssl升级到7.4和1.0.2j 源码方式

    #!/bin/bashtar -xvf openssh-7.4p1.tar.gztar -xvf openssl-1.0.2j.tar.gz 升级 openssl 到1.0.2jcd openssl- ...

  4. C++学习-7

    1.面向过程是:数据与操作分离,数据容易被意外修改 2.面向过程通过私有化的权限进行数据封装 3.类型后辍:类名 operator "" _XXXX(int data)  增加后缀 ...

  5. Spring(十二)Spring之事务

    java中事务是什么? 事务是访问数据库的一个操作序列,DB应用系统通过事务集来完成对数据的存取. 事务必须遵循4个原则,即常说的 ACID A,Automicity,原子性,即事务要么被全部执行,要 ...

  6. ERROR : PHP中错误基础

    1.错误 在进行PHP代码编辑的时候,容易碰到error错误提示,PHP中错误有两种:语法错误.逻辑错误. 2.错误报告类型 Notice : 通知 比如直接使用未定义的变量,这种错误不影响PHP脚本 ...

  7. Java设计模式-责任链模式

    提出问题: 最初接触责任链模式就是在struts2中,在当时学的时候看了一眼,大概知道了原理,最近在复习,模拟struts2,说是模拟只是大体模拟了struts2的工作流程,很多东西都是写死的,只是为 ...

  8. [机器学习Lesson 1 Introduction] 机器学习的动机与应用

    1. Machine Learning definition(机器学习定义) Arthur Samuel(1959年)将机器学习非正式定义为:在不直接针对问题进行编程的情况下,赋予计算机学习能力的一个 ...

  9. ClickOnce清单签名取消后依然读取证书的问题

    在 http://www.cnblogs.com/heroius/p/8270004.html 和 http://www.cnblogs.com/heroius/p/8278796.html中,通过编 ...

  10. 【Linux】 字符串和文本处理工具 grep & sed & awk

    Linux字符串&文本处理工具 因为用linux的时候主要用到的还是字符交互界面,所以对字符串的处理变得十分重要.这篇介绍三个常用的字符串处理工具,包括grep,sed和awk ■ grep ...