동일한 서버에서 여러 인스턴스를 실행할 수 있으며 경우에 따라 필요합니다. oratab은 여러 인스턴스 관리를 처리하도록 특별히 설계되었습니다. 독립 응용 프로그램이 여러 개인 경우 각 응용 프로그램마다 인스턴스를 두는 것이 좋습니다.
충분한 메모리를 확보하는 것이 중요합니다. 오라클은 공유 메모리에 SGA를 구축합니다. 메모리가 충분하지 않으면 SGA 또는 프로세스가 스왑 인 및 아웃을 시작합니다. 이를 스레 싱이라고하며 성능이 크게 저하됩니다.
더 작은 SGA로 실행되도록 인스턴스를 조정할 수 있습니다. Oracle은 SGA 크기 조정을 돕는 도구를 제공합니다. 인스턴스 중 SGA가 너무 큰 인스턴스가 있으면 모든 인스턴스에 불이익을줍니다.
중요한 메모리의 또 다른 용도는 버퍼 공간입니다. 이는 보조 캐시 역할을하며 중요한 읽기 I / O를 제거 할 수 있습니다.
sar
(Unix bases O / S라고 가정) 실행 하면 문제가있는 곳을 진단 할 수 있습니다. 스왑 또는 디스크 I / O 포화 문제가있을 수 있습니다. RAM을 추가하면 이러한 문제 중 하나를 해결할 수 있습니다.
디스크 I / O 포화도 일부 테이블 스페이스를 다른 디스크로 이동하여 처리 할 수 있습니다. 일반적으로 I / O가 가능한 많은 디스크에 분산되도록 Oracle을 구성합니다.
편집 : 이들은 별도의 인스턴스가 필요할 수있는 몇 가지 경우입니다.
- 동일한 서버에서 다른 버전의 Oracle을 실행하는 경우 항상 필요합니다. 응용 프로그램이 항상 최신 버전으로 인증되거나 작동하지는 않습니다.
- 특정 시점으로 자동 롤백 할 수있는 인스턴스를 원할 수 있습니다. (추천하지는 않지만 이것을 자동화 된 테스트 환경에 사용했습니다.)
- 애플리케이션에 하드 코딩 된 스키마 참조가있는 경우 네임 스페이스 충돌을 처리하기 위해 다른 인스턴스가 필요할 수 있습니다.
- 별도의 인스턴스를 사용하면 보안 요구 사항을보다 쉽게 처리 할 수 있습니다. 이 경우 다른 서버를 사용하는 것이 적절할 수 있습니다.
- 동일한 서버에서 서로 다른 버전의 동일한 데이터베이스 (개발, 테스트, 사용자 승인, 교육 및 프로덕션)를 실행하는 것이 별도의 인스턴스로 더 안전합니다. 이 모든 환경을 동일한 서버에서 실행하지는 않지만 종종 동일한 서버에서 둘 이상을 실행합니다.