70GB RAM의 강력한 컴퓨터가 있습니다. 20GB의 Oracle 인스턴스를 몇 개나 만들 수 있습니까?


9

70GB RAM의 강력한 컴퓨터가 있습니다. sga_target으로 20GB의 Oracle 인스턴스 하나를 생성했습니다. sga_target > 10G첫 번째 데이터베이스를 다운해도 다른 Oracle 인스턴스를 만들 수 없습니다 . 설정 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

스왑 공간을 늘려야합니까? 이와 관련하여 모든 조언을 부탁드립니다.

또한 70GB 메모리의 경우 많은 인스턴스를 만들 때 스왑 공간에 가장 적합한 값은 무엇입니까?이를 계산하는 방법이 있습니까? 나의 목표는 각각 적어도 두 개의 인스턴스를 가지고 있으며 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는 단일 공유 메모리 세그먼트의 최대 크기 (바이트)입니다 .70Gb의 RAM이 있으므로 70 * 1024 * 1024 * 1024를 사용했습니다. shmall은 한 번에 존재할 수있는 모든 공유 메모리 세그먼트의 최대 합계이며 페이지 단위로 측정됩니다. 리눅스의 페이지 크기는 보통 4k이므로, shmmax 수를 4096으로 나누었습니다.
Phil


0

shmmax 값 설정은 OS가 32 비트인지 또는 64 비트인지에 따라 다릅니다. 이것에 대해 자세히 설명하는 metalink 메모가 있습니다.

Linux x86 및 x86-64의 최대 SHMMAX 값 [ID 567506.1]

한번 봐주세요.

또한 Oracle 용 공유 메모리 / 세마포어에 대한 참고 사항도 있습니다.

기술 : 유닉스 세마포어 및 공유 메모리 설명 [ID 15566.1]

감사합니다. Nagendra Chillale

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.