/ dev / shm 부족 으로 데이터베이스 가 끊 겼 습 니 다.

3767 단어 OacleORA-00845
오늘 아침 에 사무실 에 도착 해서 테스트 환경 응용 프로그램 이 끊 겼 다 고 개 발 했 습 니 다. 로 그 를 보면 데이터 베 이 스 를 연결 할 수 없다 고 합 니 다. 보 니 데이터 베 이 스 는 밤 10 시 에 끊 었 습 니 다. 경고 로 그 는 다음 과 같이 잘못 알 렸 습 니 다.
WARNING: You are trying to use the MEMORY_TARGET feature. 
This feature requires the /dev/shm file system to be mounted for
 at least 7868514304 bytes. /dev/shm is either not mounted or is mounted 
with available space less than this size. Please fix this so that 
MEMORY_TARGET can work as expected. Current available is 7857356800 and 
used is 562315264 bytes. Ensure that the mount point is /dev/shm for 
this directory.
memory_target needs larger /dev/shm

데이터 베 이 스 를 시작 하여 ORA - 00845 오 류 를 보고 합 니 다.
SQL> startup
ORA-00845: MEMORY_TARGET not supported on this system

그 이 유 는 어제 오후 3 시가 넘 었 기 때 문 입 니 다. 테스트 요원 이 SHARED 라 고 했 습 니 다.POOL 부족, 증가 요구 SHAREDPOOL, 우리 의 데이터 베 이 스 는 11gR 2, 메모리 자동 관리, MEMORYTARGET 의 값 은 5GB 이지 만 AWR 보고서 의 메모리 제안 을 살 펴 보면 1.8GB 의 SHAREDPOOL 은 충분 할 것 같 지만 테스트 에 필요 한 것 이 있어 서 MEMORYTARGET 은 8GB 로 변경 되 었 습 니 다. 저희 서버 는 16GB 메모리 의 RHEL 5.4 운영 체제 입 니 다. 어제 오후 에 테스트 인원 들 이 이 시스템 에서 일 했 습 니 다. 문제 가 없습니다. 밤 10 시 에 데이터 베이스 가 자동 으로 통계 정 보 를 수집 할 때 데이터 베 이 스 를 끊 었 습 니 다.데이터베이스 가 끊 긴 이 유 는 MEMORYTARGET 은 / dev / shm 의 크기 를 초과 합 니 다. /dev / shm 는 LINUX 의 tmpfs 로 일반적으로 가상 디스크 로 이해 되 지만 가상 디스크 와 는 다 릅 니 다. tmpfs 는 파일 시스템 입 니 다. 가상 디스크 와 블록 장치 가 아 닙 니 다. tmpfs 는 메모 리 를 사용 할 수 있 습 니 다. 메모리 가 부족 할 때 교환 파 티 션 을 사용 할 수 있 고 mkfs 명령 으로 만 들 필요 가 없습니다. 전형 적 인 tmpfs 파일 시스템 은 메모리 에 완전히 남아 있 습 니 다.그래서 tmpfs 에 대한 작업 속도 가 매우 빠 르 지만 데이터 가 메모리 에 남아 있 기 때문에 서버 가 닫 히 거나 다시 시작 하면 이 안의 데 이 터 를 잃 어 버 립 니 다.ORACLE 도 tmpfs 를 사용 하기 때문에 MEMORYTARGET 는 / dev / shm 의 크기 를 초과 할 수 없습니다. 마치 MEMORYTARGET 는 MEMORY 를 초과 할 수 없습니다.MAX_TARGET 와 SGATARGET 는 SGA 를 초과 할 수 없습니다.MAX_사 이 즈 는 크기 가 같 습 니 다.우리 의 서버 16GB 메모리, / dev / shm 의 크기 는 기본적으로 운영 체제 메모리 의 절반 이지 만 16G 의 메모리 가 실제 16GB 에 미 치지 못 하기 때문에 / dev / shm 의 기본 크기 는 8GB 에 미 치지 못 합 니 다. 다음 과 같 습 니 다.
[oracle@dbserver1 ~]$ cat /proc/meminfo | grep MemTotal
MemTotal:       16444672 kB

메모리 15.68GB 가 16GB 에 미 치지 못 한 것 을 볼 수 있다.
[oracle@dbserver1 ~]$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_dbserver1-lv_root
                       50G   19G   29G  40% /
tmpfs                 7.9G  4.6G  3.3G  59% /dev/shm
/dev/sda1             485M   48M  412M  11% /boot
/dev/mapper/vg_dbserver1-lv_home
                      2.7T  268G  2.3T  11% /home

tmpfs 는 7.9GB 이 고 8GB 에 이 르 지 못 했 습 니 다. MEMORYTARGE = 8GB, tmpfs 가 완전히 사용 되 지 않 은 상태 에서 데이터 베 이 스 를 정상적으로 실행 할 수 있 지만 tmpfs 가 완전히 사용 되면 데이터 베 이 스 를 새로운 메모리 로 나 누 지 못 하고 끊 습 니 다. 해결 방법 은 tmpfs 의 크기 를 늘 리 거나 MEMORYTARGE 는 테스트 인원 의 수 요 를 만족 시 키 기 위해 tmpfs 의 크기 를 조정 할 수 밖 에 없 었 다.
[root@dbserver2 ~]# mount -o size=15000M -o nr_inodes=1000000 -o noatime,
nodiratime -o remount /dev/shm

메모: 이러한 방식 으로 tmpfs 크기 를 늘 리 려 면 tmpfs 가 사용 되 지 않 은 상태 에서 만 가능 합 니 다. 그렇지 않 으 면 reount 이 불가능 해서 오 류 를 보고 할 수 있 습 니 다.
[oracle@dbserver1 ~]$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_dbserver1-lv_root
                       50G   19G   29G  40% /
tmpfs                  15G     0   15G   0% /dev/shm
/dev/sda1             485M   48M  412M  11% /boot
/dev/mapper/vg_dbserver1-lv_home
                      2.7T  268G  2.3T  11% /home

이 때 tmpfs 는 15GB 로 바 뀌 었 고 inode 의 수량 은 1000000 으로 바 뀌 었 습 니 다. 이것 은 대체적으로 최대 100 만 개의 작은 파일 을 저장 할 수 있 음 을 의미 합 니 다. / dev / shm 가 메모리 공간 이 부족 할 때 swap 의 공간 을 차지 할 수 있 기 때문에 저장 공간 이 부족 한 문 제 를 걱정 하지 않 아 도 됩 니 다.데이터베이스 시작, 문제 해결.

좋은 웹페이지 즐겨찾기