Score:0

สคริปต์ SQL Developer PL/SQL ล้มเหลวในการแสดงผลผ่าน OpenVPN หลังจากใช้งานเป็นระยะเวลาหนึ่ง

ธง in

ปัญหา:

เมื่อฉันพยายามเรียกใช้การรวบรวมสถิติผ่าน OpenVPN บนฐานข้อมูล Oracle 19c ของฉัน SQL Developer จะไม่ส่งคืนข้อความ "PL/SQL เสร็จสิ้นขั้นตอนสำเร็จแล้ว" ทั่วไป หากทำงานนานกว่าระยะเวลาที่กำหนด

เห็นได้ชัดว่า การเชื่อมต่อแฮงค์หลังจากผ่านไประยะหนึ่ง และฉันต้องตัดการเชื่อมต่อจาก OpenVPN หรือปิด SQL Developer ใน Windows Task Manager เพื่อปิด

ฐานข้อมูล Oracle 19c ของฉันและเซิร์ฟเวอร์ OpenVPN อยู่บนผู้ให้บริการคลาวด์ที่แตกต่างกัน

การรวบรวมสถิติในฐานข้อมูลนี้โดยทั่วไปจะใช้เวลาประมาณครึ่งชั่วโมง

เรียกใช้คำสั่งรวบรวมสถิติบน SQL Developer

สิ่งที่ฉันตรวจสอบ:

  1. ไม่มีอะไรผิดปกติในบันทึก Iptables และ OpenVPN บนเซิร์ฟเวอร์ OpenVPN หรือในบันทึกการฟังและการแจ้งเตือนบนเซิร์ฟเวอร์ Oracle 19c

  2. net.ipv4.tcp_keepalive_time และ net.netfilter.nf_conntrack_tcp_timeout_established ถูกตั้งค่าเป็นค่าเริ่มต้นที่ 7200 (2 ชั่วโมง) และ 432000 (5 วัน) บนทั้งสองเครื่อง

  3. ถ้าฉันเชื่อมต่อกับฐานข้อมูลเป็นระบบและเรียกใช้:

    เลือก x.sid, x.serial#, x.username, x.status, x.osuser, x.machine, x.program, x.event, x.state, sql.sql_text จาก v$sqlarea sql, v$session x โดยที่ x.sql_hash_value = sql.hash_value และ x.sql_address = sql.address และ x.username = 'myuser';

หลังจากผ่านไปประมาณครึ่งชั่วโมง ฉันสังเกตเห็นว่าเซสชันสำหรับรวบรวมสถิติไม่ทำงาน ดังนั้นฉันจึงสันนิษฐานว่าการรวบรวมสถิตินั้นทำงานและเสร็จสิ้นได้สำเร็จ แต่เพียงไม่ส่งคืนข้อความเอาต์พุตที่กล่าวถึงข้างต้น

รวบรวมสถิติการทำงานบนฐานข้อมูล

รวบรวมเซสชันสถิติที่ไม่ได้ใช้งานหลังจากผ่านไปประมาณครึ่งชั่วโมง

สิ่งที่ฉันพยายาม:

  1. ในฐานข้อมูลขนาดเล็กกว่าในอินสแตนซ์เดียวกัน การเรียกใช้การรวบรวมสถิติผ่าน OpenVPN จะส่งคืนข้อความแสดงความสำเร็จดังกล่าว ขั้นตอนนี้ใช้เวลาประมาณ 10 นาที

  2. การเชื่อมต่อโดยตรง (โดยไม่ใช้ OpenVPN) กับฐานข้อมูลโดยการเพิ่มที่อยู่ IP ของฉันไปยังไฟร์วอลล์ของผู้ให้บริการคลาวด์ และการเรียกใช้สถิติการรวบรวมยังส่งคืนข้อความแสดงความสำเร็จดังกล่าว

  3. กำลังสร้างคู่คีย์สาธารณะ/ส่วนตัว SSH บนเซิร์ฟเวอร์ Oracle 19c และใช้โฮสต์ SSH บน SQL Developer แต่การเชื่อมต่อไม่เสถียรมาก/รีเซ็ตตลอดเวลา

  4. การตั้งค่าพร็อกซีเซิร์ฟเวอร์ Dante เห็นได้ชัดว่า SQL Developer สามารถใช้พร็อกซีเซิร์ฟเวอร์พิเศษบางประเภทเท่านั้น

  5. การตั้งค่า IPSEC VPN ด้วย StrongSwan Windows 10 ของฉันไม่สามารถเชื่อมต่อกับมันด้วยเหตุผลบางประการ

Phill  W. avatar
cn flag
ไม่อยากให้ฝนตกในขบวนพาเหรดของคุณ แต่ '19 ทำเองโดยอัตโนมัติไม่ใช่เหรอ?
js1018 avatar
in flag
หากเป็นกรณีนี้ฉันไม่ทราบเรื่องนั้น ถึงกระนั้นปัญหาก็ยังคงอยู่ ฉันยังไม่ได้ลอง แต่คาดว่าสิ่งนี้จะเกิดขึ้นกับสคริปต์ PL/SQL อื่นๆ ที่ทำงานระหว่าง 10 ถึง 30 นาทีผ่าน OpenVPN
Score:0
ธง in

ก่อนอื่น ฉันสามารถยืนยันได้ว่าการรวบรวมสถิตินั้นสำเร็จลุล่วงด้วยการวิ่ง:

เลือก * จาก v$session_longops โดยที่ opname เช่น '%Schema%' เรียงลำดับตาม start_time desc;

หลังจากนั้นฉันรันคำสั่ง tcpdump ต่อไปนี้บนเซิร์ฟเวอร์ทั้งสอง:

tcpdump -i eth0 -A "(src <myipaddress> หรือ src <myoracle19caddress> หรือ dst <myipaddress> หรือ dst <myoracle19caddress>) และไม่ใช่พอร์ต ssh และไม่ใช่พอร์ต openvpn และไม่ใช่ icmp" (เซิร์ฟเวอร์ OpenVPN)

tcpdump -i eth0 -A "(src <myipaddress> หรือ src <myopenvpnserveraddress> หรือ dst <myipaddress> หรือ dst <myopenvpnserveraddress>) และไม่ใช่พอร์ต ssh และไม่ใช่ icmp" (เซิร์ฟเวอร์ Oracle 19c)

และค้นพบว่าเซิร์ฟเวอร์ Oracle 19c ส่งข้อความสำเร็จ แต่เซิร์ฟเวอร์ OpenVPN ไม่เคยได้รับ

หลังจากขุดคุ้ยในเว็บไซต์ต่างๆ ฉันพบว่าฉันเข้าใจผิดว่าจริงๆ แล้ว net.ipv4.tcp_keepalive_time ทำอะไร

ซึ่งหมายความว่า [ตามค่าเริ่มต้น] รูทีน Keepalive จะรอเป็นเวลาสองชั่วโมง (7200 วินาที) ก่อนส่ง Keepalive Probe ชุดแรกแล้วส่งใหม่ทุกๆ 75 วินาที

หลังจากนั้นฉันพบเกี่ยวกับการกำหนดค่าเครือข่ายของผู้ให้บริการคลาวด์ที่ฉันโฮสต์เซิร์ฟเวอร์ OpenVPN

การเชื่อมต่อที่ไม่ได้ใช้งาน

[...] ใช้การติดตามการเชื่อมต่อ 10 นาทีสำหรับ โปรโตคอล IP ที่มีแนวคิดของการเชื่อมต่อ ซึ่งหมายความว่าแพ็กเก็ตขาเข้าที่เกี่ยวข้องกับการสร้าง อนุญาตให้เชื่อมต่อได้ตราบเท่าที่มีการส่งแพ็กเก็ตอย่างน้อยหนึ่งแพ็กเก็ตหรือ ได้รับสำหรับการเชื่อมต่อภายใน 10 นาทีที่ผ่านมา ถ้าไม่มีแพ็คเก็ต สำหรับการเชื่อมต่อที่ส่งหรือรับเป็นเวลา 10 นาที หรือ รายการติดตามของการเชื่อมต่อที่ไม่ได้ใช้งานจะถูกลบออก หลังจาก รายการติดตามของการเชื่อมต่อถูกลบ [...] ไม่ อนุญาตแพ็กเก็ตขาเข้าเพิ่มเติมจนกว่าจะมีขาออกใหม่อย่างน้อยหนึ่งแพ็กเก็ต ส่งแพ็คเก็ตแล้ว การติดตามการเชื่อมต่อนี้ใช้กับทุกแหล่ง และปลายทาง â ทั้งที่อยู่ IP ภายในและภายนอก

ด้วยข้อมูลใหม่นี้ ฉันได้รับข้อ จำกัด นี้โดยการตั้งค่า Keepalive Time เป็นค่าที่ต่ำกว่า 10 นาทีโดยเรียกใช้คำสั่งต่อไปนี้บนเซิร์ฟเวอร์ Oracle 19c:

sysctl -w net.ipv4.tcp_keepalive_time=300 net.ipv4.tcp_keepalive_intvl=60 net.ipv4.tcp_keepalive_probes=5

และทำการเปลี่ยนแปลงเหล่านี้อย่างถาวรโดยบันทึกไว้ที่ /etc/sysctl.conf

สุดท้าย SQL Developer ได้รับข้อความแสดงความสำเร็จและปิดการเชื่อมต่อ

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา