Isaac, vorzugsweise führen wir eine Instanz auf einem Server aus und implementieren die verschiedenen Anwendungen als Schemas und Dienste in dieser einzelnen Datenbank. Wenn der Server über genügend Speicher verfügt, gibt es kein Problem, wenn sich alle Anwendungen wie gute Oracle-Bürger verhalten. Sobald es eine Anwendung gibt, die keine Bindevariablen verwendet, wächst der Schmerz auf dem Host. Gleiches gilt für Anwendungen, die alle paar Sekunden neue Verbindungen erstellen, anstatt vorhandene Verbindungen wiederzuverwenden. Dinge wie Auto Commit helfen auch nicht, die Situation zu verbessern. Wie verhält sich Ihre Anwendung normal? Macht es große Updates? Wann wird ein Commit durchgeführt? Wie viel Redo wird pro Stunde generiert? Verwendet Ihre App Bindungsvariablen? In vielen Fällen ist der Speicherort der Online-Redolog-Dateien kritisch. Wenn die App häufig wiederholt wird (oder mit einer anderen App konkurriert, die dies tut), wird der Logwriter langsamer und führt zu einer starken Leistungsverschlechterung, da die Sitzung auf den Abschluss des Protokolldateischreibvorgangs wartet. Geben Sie Ihrem Kunden ein Festplattenlayout, in dem sich die Wiederholungen auf dedizierten RAID-10-Festplatten befinden, und sehen Sie, wie viel dies hilft. Informieren Sie sich auch über die Speicherzuordnungssituation. Möglicherweise ist eine faire Umverteilung des verfügbaren Speichers erforderlich.
ich hoffe das hilft
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.
quelle
Die kritischste Ressource ist RAM.
Jede laufende Oracle-Instanz weist beim Starten und nicht unter Last RAM für sich zu.
Wir führen 10g mit 10 und 11g mit 8 Instanzen aus, aber dies sind Entwicklungsserver. Nach dem Neustart des Betriebssystems werden einige Oracle-Dienste nicht automatisch gestartet und müssen manuell gestartet werden: Oradim -startup -sid xxx.
Wir fangen gerade erst an, die automatische Speicherverwaltung zu verwenden, aber die Situation unterscheidet sich von SQL Server, wo Sie so viel Datenbanken hinzufügen können, wie der Speicherplatz zur Verfügung stellt.
In Ihrem Fall wird mit mehr Instanzen auf einem Computer die SGA für jede Instanz kleiner, weniger vorkompiliertes SQL kann zwischengespeichert werden und der Computer muss mehr SQL-Kompilierung durchführen, was die Leistung verringert.
Das Hinzufügen von RAM kann in Ihrer Situation hilfreich sein.
quelle