Das Ausführen mehrerer Instanzen auf demselben Server ist möglich und in einigen Fällen erforderlich. Das oratab wurde speziell für die Verwaltung mehrerer Instanzen entwickelt. In Fällen, in denen Sie mehrere unabhängige Anwendungen haben, ist es möglicherweise vorzuziehen, für jede Anwendung eine Instanz zu haben.
Ausreichend Speicher ist wichtig. Oracle erstellt die SGA im gemeinsamen Speicher. Wenn Sie nicht über genügend Speicher verfügen, werden der SGA oder die Prozesse ein- und ausgelagert. Dies wird als Thrashing bezeichnet und führt zu einer erheblichen Leistungsminderung.
Möglicherweise können die Instanzen so optimiert werden, dass sie mit einem kleineren SGA ausgeführt werden. Oracle bietet Tools zur Optimierung der SGA-Größe. Wenn eine der Instanzen eine übermäßig große SGA hat, werden alle Instanzen bestraft.
Eine andere wichtige Verwendung für Speicher ist der Pufferplatz. Dies fungiert als sekundärer Cache und kann signifikante Lese-E / A eliminieren.
Durch Ausführen sar
(unter der Annahme eines Unix-Basis-Betriebssystems) können Sie eine gute Diagnose erhalten, wo das Problem liegt. Mögliche Probleme sind entweder das Austauschen oder die Sättigung der Festplatten-E / A. Durch Hinzufügen von RAM wird wahrscheinlich eines dieser Probleme behoben.
Die Festplatten-E / A-Sättigung kann auch behoben werden, indem einige Tablespaces auf andere Festplatten verschoben werden. Im Allgemeinen konfiguriere ich Oracle so, dass E / A auf so viele Festplatten wie möglich verteilt wird.
BEARBEITEN: Dies sind einige Fälle, für die möglicherweise separate Instanzen erforderlich sind.
- Dies ist immer erforderlich, wenn Sie verschiedene Versionen von Oracle auf demselben Server ausführen. Anwendungen sind nicht immer zertifiziert oder können mit der neuesten Version arbeiten.
- Möglicherweise möchten Sie eine Instanz, die automatisch auf einen bestimmten Zeitpunkt zurückgesetzt werden kann. (Obwohl ich davon abraten möchte, habe ich dies für eine automatisierte Testumgebung verwendet.)
- Wenn Sie in den Anwendungen eine fest codierte Schema-Referenz haben, benötigen Sie möglicherweise verschiedene Instanzen, um Namespace-Kollisionen zu behandeln.
- Sicherheitsanforderungen sind möglicherweise einfacher zu handhaben, wenn separate Instanzen verwendet werden. In diesem Fall kann es angebracht sein, unterschiedliche Server zu verwenden.
- Das Ausführen verschiedener Versionen derselben Datenbank (Entwicklung, Test, Benutzerakzeptanz, Schulung und Produktion) auf demselben Server ist mit separaten Instanzen sicherer. Ich würde nicht alle diese Umgebungen auf demselben Server ausführen, sondern häufig zwei oder mehr auf demselben Server.