ฉันมีเครื่องที่ทรงพลังพร้อม RAM 70 GB สามารถสร้างอินสแตนซ์ Oracle จำนวน 20 GB ได้เท่าใด


9

ฉันมีเครื่องที่ทรงพลังพร้อม RAM 70 GB ฉันสร้างหนึ่งอินสแตนซ์ของ Oracle ที่มี 20 GB เป็น sga_target ฉันไม่สามารถสร้างอินสแตนซ์ Oracle อื่นsga_target > 10Gได้แม้ว่าฉันจะเก็บฐานข้อมูลแรกลง หากฉันตั้งค่าsga_target >=10Gมันให้ข้อผิดพลาดด้านล่างเมื่อเริ่มต้น:

ORA-27104: ข้อ จำกัด ที่ระบบกำหนดสำหรับหน่วยความจำที่ใช้ร่วมกันนั้นได้รับการกำหนดค่าผิดพลาด

ในขณะที่free -mแสดงให้เห็นว่ามี memeory เพียงพอที่สามารถใช้ได้แม้ว่า

             total       used       free     shared    buffers     cached
Mem:         72419      34490      37928          0        618      28159
-/+ buffers/cache:       5711      66707
Swap:         2047          0       2047

ฉันจำเป็นต้องเพิ่มพื้นที่สว็อปหรือไม่? ตัวชี้ใด ๆ ในเรื่องนี้มีความนิยมอย่างสูง

นอกจากนี้สำหรับหน่วยความจำ 70 GB สำหรับการสร้างอินสแตนซ์จำนวนมากสิ่งที่จะคุ้มค่าที่สุดสำหรับพื้นที่สว็อป - มีวิธีการคำนวณนี้บ้างไหม? วัตถุประสงค์ของฉันคือการมีอย่างน้อยสองอินสแตนซ์ด้วยsga_target=20Gและจะรักษาอินสแตนซ์เดียวเท่านั้นในแต่ละครั้ง หากฉันไม่มีแนวคิดใด ๆ ที่นี่

ผลลัพธ์ของipcs -imมีดังนี้

------ Shared Memory Limits --------
max number of segments = 4096
max seg size (kbytes) = 4194303
max total shared memory (kbytes) = 8388608
min seg size (bytes) = 1

คำตอบ:


13

พารามิเตอร์เคอร์เนลของคุณต้องแก้ไข

แก้ไข/etc/sysctl.confและตรวจสอบให้แน่ใจว่ามีบรรทัดต่อไปนี้:

kernel.shmall = 18350080
kernel.shmmax = 75161927680
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128

จากนั้นรีบูทเครื่อง


ขอบคุณงานนี้ คุณช่วยกรุณาบอกให้ฉันรู้ว่าคุณสามารถตัดสินใจค่าเหล่านี้สำหรับ shmall, shmax และ shmni ฯลฯ มีวิธีการคำนวณเหล่านี้ได้อย่างไร?
user419534

3
shmmax มีขนาดสูงสุดเป็นไบต์ของส่วนหน่วยความจำที่แชร์เดียวคุณมี RAM 70Gb ดังนั้นฉันจึงใช้ 70 * 1024 * 1024 * 1024 shmall คือผลรวมสูงสุดของกลุ่มหน่วยความจำที่แชร์ทั้งหมดที่สามารถมีอยู่ได้ในครั้งเดียว & ถูกวัดในหน้า ขนาดหน้าบน Linux มักจะเป็น 4k ดังนั้นฉันจึงแบ่งจำนวน shmmax ด้วย 4096
Philᵀᴹ

6

0

การตั้งค่า shmmax ขึ้นอยู่กับว่าระบบปฏิบัติการเป็น 32- บิตหรือ 64- บิต มีหมายเหตุโลหะซึ่งอธิบายเกี่ยวกับรายละเอียดนี้

ค่า SHMMAX สูงสุดสำหรับ Linux x86 และ x86-64 [ID 567506.1]

กรุณาดู

นอกจากนี้ยังมีหมายเหตุเกี่ยวกับ Shared Memory / Semaphores สำหรับ Oracle ซึ่งควรอ่านที่น่าสนใจ

TECH: คำอธิบาย Unix Semaphores และ Shared Memory อธิบาย [ID 15566.1]

ขอแสดงความนับถือ Nagendra Chillale

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.