ORA-31623: a job is not attached to this session via the specified handle

  • ปัญหา
    • พยายามใช้ expdp แล้วเกิด error

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 3905
ORA-06512: at “SYS.DBMS_DATAPUMP”, line 5203
ORA-06512: at line 1

งานมา…
  • เมื่อค้นข้อมูลไปเรื่อย ๆ จะพบว่าอาจเกี่ยวของกับการปรับแต่งค่าต่างๆ เกี่ยวกับ memory ซึ่งก็ได้ทำไปจริงนั่นคือการปรับ shared_pool_size ให้มีขนาดมากขึ้นทำให้หน่วยความจำสำหรับทำเรื่อง expdp ไม่พอ
  • แก้ไขได้ด้วยการลดค่า shared_pool_size ลง ด้วยคำสั่ง
SQL> alter system set shared_pool_size=5G scope=both;
  • เพื่อปรับขนาด shared_pool_size ให้เป็น 5GB
  • และอาจต้องเพิ่ม streams_pool_size เพราะไม่ได้ลด shared_pool_size ให้เท่าเดิม เนื่องจากมีการเพิ่มหน่วยความจำของระบบให้มากขึ้นแล้ว ด้วยคำสั่ง
SQL> alter system set streams_pool_size=128M scope=both;
  • เพื่อปรับ streams_pool_size ให้เป็น 128MB
  • และยังมี parameter บางตัวที่อาจเกี่ยวข้อง เช่น db_cache_size เป็นต้น
  • แต่ในครั้งนี้ปรับแค่สองอย่าง คือ shared_pool_size และ streams_pool_size ก็สามารถแก้ปัญหานี้ได้
  • จบ
  • ขอให้สนุก

อ้างอิง

ORA-31623: a job is not attached to this session via the specified handle
UDI-31623: operation generated ORACLE error 31623 / ORA-31623