Tôi có một cỗ máy mạnh mẽ với RAM 70 GB. Có bao nhiêu phiên bản Oracle với 20 GB có thể được tạo?


9

Tôi có máy mạnh mẽ với RAM 70 GB. Tôi đã tạo một cá thể Oracle với 20 GB là sga_target. Tôi không thể tạo một cá thể Oracle khác sga_target > 10Gngay cả khi tôi giữ cơ sở dữ liệu đầu tiên. Nếu tôi đặt, sga_target >=10Gnó sẽ báo lỗi khi khởi động:

ORA-27104: giới hạn do hệ thống xác định cho bộ nhớ dùng chung bị định cấu hình sai

Trong khi free -mcho thấy rằng có đủ memeory có sẵn mặc dù:

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

Tôi có cần tăng không gian hoán đổi không? Bất kỳ con trỏ trong vấn đề này được đánh giá cao.

Ngoài ra, đối với bộ nhớ 70 GB, để tạo nhiều phiên bản, giá trị nào tốt nhất cho không gian trao đổi - có cách nào để tính toán điều này không? Mục tiêu của tôi là có ít nhất hai trường hợp mỗi lần sga_target=20Gvà sẽ chỉ giữ một trường hợp tại một thời điểm. Nếu tôi thiếu bất kỳ khái niệm ở đây?

Đầu ra của ipcs -imnhư dưới đây

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

Câu trả lời:


13

Thông số kernel của bạn cần sửa đổi.

Chỉnh sửa /etc/sysctl.confvà đảm bảo các dòng sau có mặt:

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

Sau đó khởi động lại máy.


Cảm ơn công việc này. Bạn có thể vui lòng cho tôi biết làm thế nào bạn có thể quyết định các giá trị này cho shmall, shmax và shmni, vv Có cách nào để tính toán các giá trị này không?
dùng419534

3
shmmax là kích thước tối đa tính bằng byte của một phân đoạn bộ nhớ dùng chung, bạn có 70Gb RAM nên tôi đã sử dụng 70 * 1024 * 1024 * 1024. shmall là tổng tối đa của tất cả các phân đoạn bộ nhớ được chia sẻ có thể tồn tại cùng một lúc & được đo bằng các trang. Kích thước trang trên Linux thường là 4k, vì vậy tôi đã chia số shmmax cho 4096.
Philᵀᴹ


0

Đặt giá trị shmmax tùy thuộc vào việc HĐH là 32-bit hay 64-bit. Có một ghi chú metalink giải thích chi tiết về điều này.

Giá trị SHMMAX tối đa cho Linux x86 và x86-64 [ID 567506.1]

Xin hãy xem.

Ngoài ra còn có một lưu ý về Bộ nhớ / Semaphores được chia sẻ cho Oracle nên là một bài đọc thú vị.

TECH: Giải thích về ngữ nghĩa Unix và bộ nhớ dùng chung [ID 15566.1]

Trân trọng, Nagendra Chillale

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.