Allen 2022-07-11 2887 0 0 0 0

问题描述:

ORACLE一个简单的expdp导出,在之前是正常的,但是隔了一天后出现问题了,具体报错信息如下:

 expdp '"/as sysdba"' DIRECTORY=dir1  DUMPFILE=vat_%U.dmp  logfile=vat_20190505.log VERSION= 11.2.0.4.0 SCHEMAS=VAT  CLUSTER=NO  exclude=STATISTICS  parallel=4
 
UDE-31623: operation generated ORACLE error 31623
ORA-31623: a job is not attached to this session via the specified handle
ORA-06512: at "SYS.DBMS_DATAPUMP", line 3326
ORA-06512: at "SYS.DBMS_DATAPUMP", line 4551
ORA-06512: at line 1
...
连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

UDE-31623: 操作产生了 ORACLE 错误 31623
ORA-31623: 作业没有通过指定的句柄连接到此会话
ORA-06512: 在 "SYS.DBMS_DATAPUMP", line 3326
ORA-06512: 在 "SYS.DBMS_DATAPUMP", line 4551
ORA-06512: 在 line 1 

+++

查询资料1:

https://www.cnblogs.com/cqdba/p/b639a4da27ddeccb5dbd1e55a16b09be.html

解决办法: 
sqlplus "/ as sysdba
[email protected]>show parameter streams_pool
[email protected]>select * from v$sgainfo;                #其实为0 
[email protected]>alter system set streams_pool=64M sid='ODS3'  ;
 
参考文档:(文档 ID 1907256.1)

+++

查询资料2:

https://blog.csdn.net/weixin_39975122/article/details/116365804

https://blog.csdn.net/weixin_39975122
数据库在尝试分配STREAMS POOL的时候出现了ORA-4031错误。
此时查询V$MEMORY_RESIZE_OPS视图,发现同一时间大量的STREAMS POOL扩展失败的记录,Oracle尝试分配STREAMS POOL但是目前数据库的内存采用了在SGA_TARGET下手工分配的方式,为了避免Oracle内存的动态调整,所有的内存组件已经将内存全部使用,因此STREAMS POOL无法获取到空间。

解决问题的方法很简单,手工收缩DB_CACHE_SIZE或SHARED_POOL_SIZE的值,分配给STREAMS POOL,就可以避免这个错误,不过数据泵的导出还要使用STREAMS POOL,还是第一次发现这个问题。

>>>解决

>>>
SQL> show parameter streams

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
streams_pool_size                    big integer 0
SQL> select * from v$sgainfo;

NAME                                  BYTES RES
-------------------------------- ---------- ---
Fixed SGA Size                      2290648 No
Redo Buffers                       74391552 No
Buffer Cache Size                1073741824 Yes
Shared Pool Size                 2147483648 Yes
Large Pool Size                   536870912 Yes
Java Pool Size                    134217728 Yes
Streams Pool Size                 134217728 Yes
Shared IO Pool Size                       0 Yes
Granule Size                      134217728 No
Maximum SGA Size                 4.2758E+10 No
Startup overhead in Shared Pool   366664984 No

NAME                                  BYTES RES
-------------------------------- ---------- ---
Free SGA Memory Available        3.8655E+10

已选择12行。

SQL> alter system set streams_pool=64M;
alter system set streams_pool=64M
                 *
第 1 行出现错误:
ORA-02065: 非法的 ALTER SYSTEM 选项

SQL> show parameter sga;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
lock_sga                             boolean     FALSE
pre_page_sga                         boolean     FALSE
sga_max_size                         big integer 40G
sga_target                           big integer 4G

查看资料2中的 V$MEMORY_RESIZE_OPS

确实有大量的streams_pool/streams_pool_size记录。

考虑到sga_target设置比较小,想直接调整sga_target应该也能解决。

----修改sga_target=10g;
SQL> alter system set sga_target=10g;

系统已更改。

SQL>
----修改后
SQL> show parameter sga;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
lock_sga                             boolean     FALSE
pre_page_sga                         boolean     FALSE
sga_max_size                         big integer 40G
sga_target                           big integer 10G

SQL> show parameter streams;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
streams_pool_size                    big integer 0
SQL> select * from v$sgainfo;

NAME                                  BYTES RES
-------------------------------- ---------- ---
Fixed SGA Size                      2290648 No
Redo Buffers                       74391552 No
Buffer Cache Size                6710886400 Yes
Shared Pool Size                 2818572288 Yes
Large Pool Size                   536870912 Yes
Java Pool Size                    134217728 Yes
Streams Pool Size                 268435456 Yes
Shared IO Pool Size                       0 Yes
Granule Size                      134217728 No
Maximum SGA Size                 4.2758E+10 No
Startup overhead in Shared Pool   366664984 No

NAME                                  BYTES RES
-------------------------------- ---------- ---
Free SGA Memory Available        3.2212E+10

已选择12行。

SQL>

测试导出OK

查看系统内存占用已经达到50多G,修改Sga_target=8g;
SQL> alter system set sga_target=8g;

系统已更改。

SQL> show parameter sga;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
lock_sga                             boolean     FALSE
pre_page_sga                         boolean     FALSE
sga_max_size                         big integer 40G
sga_target                           big integer 8G
SQL>

任务计划执行,测试正常导出和结束。

OK.


【版权声明】
本文为原创,遵循CC 4.0 BY-SA版权协议!转载请附上原文出处链接及本声明。
原文链接:https://tdlib.com/am.php?t=xPnnXVem0742
Tag: Oracle Expdp Sga_target
我也要发一个   ·   返回首页     ·   返回[Oracle]   ·    前一个  ·   下一个
未登录,
请先 [ 注册 ] or [ 登录 ]
(一分钟即可完成注册!)
返回首页     ·   返回[Oracle]   ·   返回顶部