Oracle 매개 변수 초기 화 memorytarget
17005 단어 Oacle
Oracle 9i pga 도입aggregate_target, PGA 를 자동 으로 조정 할 수 있 습 니 다.
Oracle 10g sga 도입target, SGA 를 자동 으로 조정 할 수 있 습 니 다.
Oracle 11g 은 이 두 부분 을 종합 하여 memory 도입target, 모든 메모 리 를 자동 으로 조정 할 수 있 습 니 다. 이것 이 바로 새로 도 입 된 자동 메모리 관리 기능 입 니 다.
2. 본 고 는 다음 과 같이 설명 한다.
운영 체제: rhel 5.4 x32
데이터베이스: oracle 11g r2
3. memorytarget 의 소개:
3.1 、 다음은 예 시 를 통 해 memorytarget 의 설정 과 PGA 와 SGA 관계:
SQL> show parameter memory_target;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
memory_target big integer 316M
SQL> show sga;
Total System Global Area 330600448 bytes
Fixed Size 1336344 bytes
Variable Size 247466984 bytes
Database Buffers 75497472 bytes
Redo Buffers 6299648 bytes
SQL> alter system set memory_target=200m scope=spfile;
System altered.
SQL> alter system set sga_target=0 scope=spfile;
System altered.
SQL> alter system set pga_aggregate_target=0 scope=spfile;
System altered.
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 209235968 bytes
Fixed Size 1335528 bytes
Variable Size 201330456 bytes
Database Buffers 4194304 bytes
Redo Buffers 2375680 bytes
Database mounted.
Database opened.
memory 설정target 매개 변 수 를 사용 하면 실제 Oracle 은 두 개의 매개 변 수 를 자동 으로 설정 하고 조정 하여 SGA 와 PGA 의 메모 리 를 분배 합 니 다. 이것 은 Oracle 10g 과 sga 를 자동 으로 설정 합 니 다.대상 후 분배 dbcache_size 와 sharedpool_size 의 메커니즘 은 같다.
SQL> col ksppinm for a20;
SQL> col ksppstvl for a20;
SQL> select a.ksppinm name,b.ksppstvl value
2 from x$ksppi a,x$ksppcv b
3 where a.indx = b.indx
4 and (a.ksppinm like '%sga_target%'
5 or a.ksppinm like '%pga_aggregate_target%');
NAME VALUE
----------------------- -------------------
sga_target 0
__sga_target 142606336
pga_aggregate_target 0
__pga_aggregate_target 67108864
3.2, 11g 중 memorytarget 설정 과 설정 하지 않 음 이 SGA / PGA 에 미 치 는 영향:
3.2.1 、 memorytarget 을 0 이 아 닌 값 으로 설정
(아래 는 SGA 와 PGA 의 크기 를 분배 하 는 네 가지 상황 이 있다)
3.2.1.1、sga_target 과 pgaaggregate_대상 크기 설정 됨
Oracle 에 인자 sga 가 설정 되 어 있다 면target 과 pgaaggregate_target, 이 두 매개 변 수 는 각각 최소 값 으로 목표 값 으로 분 배 됩 니 다.
memory_target = sga_target + pga_aggregate_target, 크기 와 memorymax_사이즈 일치.
3.2.1.2、sga_대상 설정 크기, pgaaggregate_target 크기 설정 하지 않 음
그럼 pgaaggregate_target 초기 화 값 = memorytarget-sga_target
3.2.1.3、sga_target 크기 설정 하지 않 음, pgaaggregate_대상 설정 크기
그럼 sgatarget 초기 화 값 = memorytarget-pga_aggregate_target
3.2.1.4、sga_target 과 pgaaggregate_target 이 크기 를 설정 하지 않 았 습 니 다.
Oracle 11g 중 이런 sgatarget 과 pagaggregate_target 이 크기 를 설정 하지 않 은 상태 에서 Oracle 은 이 두 값 에 대해 최소 값 과 기본 값 이 없습니다.Oracle 은 데이터베이스 운행 상황 에 따라 크기 를 분배 할 것 이다.그러나 데이터 베 이 스 를 시작 하면 고정 비율 로 분 배 됩 니 다.
sga_target = memory_target*60%
pga_aggregate_target = memory_target*40%
3.2.2 、 memorytarget 이 설정 되 지 않 았 거나 = 0 (11g 에서 기본 값 은 0)
11g 에서 기본적으로 0 이면 초기 상태 에서 memory 를 취소 합 니 다.target 의 역할 은 메모리 관리 에 있어 서 10g 과 일치 하 며 완전히 아래로 호 환 됩 니 다.(SGA 와 PGA 의 크기 를 배분 하 는 경우 도 세 가지 가 있다)
3.2.2.1、sga_target 설정 값 은 SGA 의 shared pool, buffer cache, redo log buffer, 자바 pool, larger pool 등 메모리 공간의 크기 를 자동 으로 조절 합 니 다.PGA 는 pga 에 의존한다aggregate_target 의 크기 입 니 다.sga 와 Pga 는 자동 으로 증가 하고 자동 으로 축소 할 수 없습니다.
3.2.2.2、sga_target 과 pgaaggregate_target 이 설정 되 어 있 지 않 습 니 다.
SGA 의 각 구성 요소 크기 는 명확 하 게 설정 해 야 하 며, 각 구성 요소 크기 를 자동 으로 조정 할 수 없습니다.PGA 는 자동 성장 과 수축 이 안 된다.
3.2.2.3、memory_max_target 설정 및 memorytarget = 0 이런 상황 은 먼저 10g 과 마찬가지 로 설명 하지 않 는 다.
3. ORA - 00845
마지막 으로 ORA - 00845 의 유래 와 해결 방안 에 대해 이야기 합 니 다.
하면, 만약, 만약...max_target/memory_target 설정 이 너무 커서 인 스 턴 스 를 시작 할 수 없습니다. ORA - 00845 오 류 를 보고 합 니 다.
[oracle@yft bin]$ oerr ora 00845
00845, 00000, "MEMORY_TARGET not supported on this system"
// *Cause: The MEMORY_TARGET parameter was not supported on this operating system or /dev/shm was not sized
// *Action: Refer to documentation for a list of supported operating systems. Or, size /dev/shm to be at leacle instance running on the system.
SQL> alter system set memory_max_target=400m scope=spfile;
System altered.
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORA-00845: MEMORY_TARGET not supported on this system
이 오 류 는 약간 오도 되 었 습 니 다. 실제로 이 플랫폼 버 전에 서 AMM 기능 이 지원 되 지 않 는 다 는 것 이 아니 라 설 정 된 memory 입 니 다.max_target 은 시스템 에 설 치 된 share memory (/ dev / shm) 를 초 과 했 을 뿐 입 니 다.
[oracle@yft bin]$ df -h
Filesystem Size Used Avail Use% Mounted on
tmpfs 395M 0 395M 0% /dev/shm
Oracle 11g for linux 에 서 는 전통 적 인 sys / dev / shm 대신 공유 메모리 세그먼트 를 관리 하 는 새로운 메커니즘 을 사용 한 것 같 습 니 다.alert. ora 에서 더 정확 한 오류 설명 을 찾 을 수 있 습 니 다:
Mon Feb 25 12:13:21 2013
Starting ORACLE instance (normal)
WARNING: You are trying to use the MEMORY_TARGET feature. This feature requires the /dev/shm file system to be mounted for at least 419430400 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 413466624 and used is 0 bytes. Ensure that the mount point is /dev/shm for this directory.
memory_target needs larger /dev/shm
해결 방법 중 하 나 는 tmpfs 파일 시스템 의 용량 을 늘 리 는 것 입 니 다.
/ etc / fstab 에서 tmpfs 에 대응 하 는 줄 수정 하기;원래 tmpfs /dev/shm tmpfs defaults 0 을 tmpfs / dev / shm tmpfs default, size = 1024 M 0 으로 변경 하면 tmpfs 가 1G 로 커지 고 mount / dev / shm 를 다시 사용 합 니 다.
[root@yft ~]# vi /etc/fstab
tmpfs /dev/shm tmpfs defaults,size=420m 0 0
[root@yft ~]# mount -o remount /dev/shm
[root@yft ~]# df -h
Filesystem Size Used Avail Use% Mounted on
tmpfs 420M 0 420M 0% /dev/shm
SQL> startup
ORACLE instance started.
Total System Global Area 418484224 bytes
Fixed Size 1336932 bytes
Variable Size 406849948 bytes
Database Buffers 4194304 bytes
Redo Buffers 6103040 bytes
Database mounted.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
activemq 5.5 의 입문 은 설치, 시작, 데이터베이스 지속 화 를 포함한다Apache ActiveMQ 5.5.0 은 주로 유지보수 버 전 으로 130 개가 넘 는 문 제 를 복 구 했 으 며 대부분 bug 와 개선 이 었 다. Improved performance for offline d...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.