ORA-12801/ORA-12853: insufficient memory for PX buffers: current 274880K, max needed 19722240K/ORA-0...

近日,现场一台服务器在运行时出现下列异常:

ORA-12801: error signaled in parallel query server P139

ORA-12853: insufficient memory for PX buffers: current 274880K, max needed 19722240K

ORA-04031: unable to allocate 65560 bytes of shared memory ("large pool","unknown object","large pool","PX msg pool")

可以确定的是oracle所在服务器内存因为和其他应用共用,有些偏紧张,尝试将不带参数的parallel调整为parallel(4)之后,仍然有该问题,故只能将large pool调整到4GB,然后重启,问题解决。

后面应用迁出去之后,sga调整回到了80GB,不知道放开会不会开有此问题。

ORA-01481错误通常是由于在SQL语句中使用了无效的数字格式模型导致的。这个错误通常出现在使用TO_CHAR、TO_NUMBER等函数时,指定的格式模型与实际数据不匹配。以下是一些解决方法: 1. **检查格式模型**: 确保在TO_CHAR、TO_NUMBER等函数中使用的格式模型与实际数据匹配。例如,如果要将数字转换为字符串,确保格式模型正确。 ```sql SELECT TO_CHAR(12345, '99999') FROM dual; ``` 2. **验证数据类型**: 确保传递给函数的参数的数据类型与格式模型匹配。例如,TO_NUMBER函数期望的是数字字符串。 ```sql SELECT TO_NUMBER('12345', '99999') FROM dual; ``` 3. **使用正确的格式模型**: 根据需要使用正确的格式模型。例如,日期格式模型和数字格式模型是不同的。 ```sql SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD') FROM dual; ``` 4. **检查数据源**: 如果是从外部数据源导入数据,确保数据源的格式与数据库中的格式模型匹配。 5. **调试和日志记录**: 在SQL语句中添加调试信息,记录传递给函数的参数和数据类型,以便更好地定位问题。 ```sql DECLARE v_number NUMBER; BEGIN v_number := TO_NUMBER('12345', '99999'); DBMS_OUTPUT.PUT_LINE('Converted number: ' || v_number); EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('Error: ' || SQLERRM); END; ``` 通过以上方法,可以有效解决ORA-01481错误。如果问题依然存在,建议查看Oracle官方文档或联系数据库管理员获取进一步帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值