缓冲池中没有可用的缓冲区

时间:2018-11-26 05:39:38

标签: sql oracle create-table

我试图创建一个包含数百万个数据的表,但是出现以下错误。

SQL Error: ORA-00379: no free buffers available in buffer pool DEFAULT for block size 8K

00379. 00000 -  "no free buffers available in buffer pool %s for block size %sK"
*Cause:    All buffers in the specified buffer pool for the specified block size
           are in use and no free buffers are available.
*Action:   Increase the number of buffers in the specified pool for the specified
           block size

如何增加缓冲区的大小。

2 个答案:

答案 0 :(得分:1)

这是由于指定块大小的缓冲池不足,所有缓冲池都已被利用,您需要为高速缓存设置一些更高的值才能使其正常工作。

以sys用户身份连接到数据库实例并运行命令

更改系统设置db_cache__size = 8M或16M scope = both;

答案 1 :(得分:0)

当从C#运行大量查询(组装导出)时,在大型数据库(160 GB)上遇到相同的问题。

client_result_cache_size大整数0
db_16k_cache_size大整数0
db_2k_cache_size大整数0
db_32k_cache_size大整数0
db_4k_cache_size大整数0
db_8k_cache_size大整数0
db_cache_size大整数0
db_flash_cache_size大整数0
db_keep_cache_size大整数0
db_recycle_cache_size大整数0

从上面的“ 0”开始,它是由AMM(自动内存管理)自动管理的,但是似乎Oracle在查询过程中并没有进行垃圾收集。

我认为下图显示了AMM正在使用的Oracle内存。

memory_max_target大整数2512M memory_target大整数2512M

我不认为手动设置内存是答案,但是答案是什么?