mme Geschrieben 14. September 2004 Teilen Geschrieben 14. September 2004 Hallo, weiß einer von euch ob mit dem win 2003 64 Bit Betriebssystem die Speichergrenze von 3 GB PRO Prozess durchbrochen wird? (Und wenn währe es noch gut eine Quelle dazu zu haben)... Was ich gefunden habe ist das hier: http://support.microsoft.com/defaul...duct=winsvr2003 Daraus geht aber nur hervor das es mit dem "normalen" Win2003 immer noch diese Einschränkung gibt, was ja auch nicht verwundert, da ja bei 32 Bit-Systemen bei 4GB eigentlich Schluß ist..... Mein Problem ist ich habe eine Datenbank die jetzt schon 3 GB nutzt (Oracle) und langsam wächst (Datenbankgröße insgesamt 40GB). Leider ist es aus verschiedenen Gründen kein Thema auf ein anderes Betriebssystem (weg von Windows) zu gehen. Somit bleiben mir nur die 2 Möglichkeiten, endweder ein Cluster aufzubauen, oder halt die Hardware zuerweitern. Was nützt es mir aber wenn ich 16 GB Ram reinstecke wenn der Prozess (Oracle.exe) doch nur 3 GB allokieren kann... Und da ein Cluster aufwendiger in der Administration ist würde ich gerne einfach größere Hardware nehmen.... Wisst ihr da was? Hat sonst jemand ähnliche Problem mit Oracle unter Windows? Vielen Dank im vorraus (Ich hatte diese Frage schon mal in der "Windowsecke" gestellt da aber keine Hilfe bekommen, deshalb hier noch mal der Versuch...., aber ausser einer Datenbank braucht ja eigentlich keiner soviel Speicher pro Prozess....) Grüße mme Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Enno Geschrieben 14. September 2004 Teilen Geschrieben 14. September 2004 Wenn deine Software unter W2K3 64Bit ist, dann hat sie die Einschränkung von 3GB pro Prozess auch nicht mehr. Warum kannst du denn nicht auf ein Unix umsteigen. Lass doch den Win-Server stehen, und setze nur die Datenbank auf Unix um. Du kannst ja sogar dem Win-Server per ODBC-Verbindung die Datenabank auf dem Server vorgaukeln. Viele schreien schon wieder: WIRD aber langsam! Klar. Aber Trick 17 hilft. In den WinServer und den Unix-Server ne PCI-Express Gigabit Lan-Karte rein, und direkt miteinander verbinden. Haben wir bei einigen Kunden auch so gemacht, und keine Performanceprobleme dabei gehabt. Als Unix-Kiste kannst du ja zum testen erstmal nen Linux hernehmen. Gruß Enno Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
mme Geschrieben 14. September 2004 Autor Teilen Geschrieben 14. September 2004 Es gibt eine 64 Bit Version von Oracle. Also müsste es laufen sagst du? Hast du dazu irgendwelche Quellen? Unix oder Linux ist Technisch kein Probelm, aber Organisatorisch. Wir haben hier gerade noch eine HP3000 die wir abschalten müssen (Support läuft aus) und das hat ne Menge ärger verursacht. Deswegen (und auch aus anderen Gründen) gibt es bei uns die Grundsatzentscheidung kein Linux und kein Unix. (Die Leute die das entscheiden haben technisch nicht umbedingt die Ahnung, aber auch nicht ganz unrecht) Wir haben halt ein reines Microsoft Rechenzentrum und warum sollte man da einen Systembruch machen und ein Unix reinstellen... Ich bedauere das auch sehr, aber es gibt auch einfach kein ausreichendes Know-how für Unix und das aufzubauen usw. kostet auch entsprechend... Jetzt werdet ihr wahrscheinlich sagen das ist nicht so das Problem und ich selber kenne mich auch a bissel unter Unix aus. Aber unsere Datenbank ist so brisant, das 1 Tag ausfall einen Schaden in Höhe von 500.000 € verursacht (es arbeiten bis zu 1000 User gleichzeitig damit) und da werde ich mit meinem Halbwissen nicht kurz mir mal selber nen Unix hinstellen.... Grüße mme Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
OracleFan Geschrieben 14. September 2004 Teilen Geschrieben 14. September 2004 Wir haben das selbe Problem an einigen von unseren Datenbanken. Du wirst die 3GB Schwelle nicht umgehen können. Ausser mit der 64Bit Version, allerding kann ich das nicht bestätigen und sie ist sowieso nur auf 64Bit Windows Lauffähig. Aber es gibt ein paar Tricks wie du das 3GB Problem herrauszörgern kannst! Ich gehe mal davon aus das du das Prinzip des Oracle-Processes und dessen Speicherverhalten kennst. Nur ganz kurz: Speicher des Prozesses setzt sich aus der SGA(+PGA) und der UGA zusammen. SGA und PGA kannst du konfigrieren und Speicher anpassen. Die UGA ist der Speicherbereich für jeden Userprozess. Er belegt grundsätzlich 2MB pro User wenn du Dedicated Serverbetrieb verwendest. Somit wärst du bei einer SGA von 600MB auf maximal 1236 User begrenzt. Maximal deshalb, da der Prozess eines Users abhänig von dessen Interaktionen mit der Datenbank wachsen kann. Die 2MB sind der Kernel des Prozesses. 1. Trick: Verwende MTS (Such ma im Internet dazu) MTS teilt einen Userprozess (2MB) auf von dir Konfigurierte User auf. Somit könntest du 10User pro Serverprozess verwenden. Aber achtung, MTS ist nicht so einfach wie es aussieht. Du mußt dich in das Thema einlesen. 2. Du kannst einfluß auf die Größe der Userprozesse nehmen indem du die SORT_AREA_SIZE und die SORT_AREA_RETAIN_SIZE anpasst 3. Trick: Du kannst den Krenel des Userporzesse patchen das dieser kleiner ist und du pro Userprozess nicht soviel Speicher verbrauchst. Meist ist aber einfach die SGA falsch Konfiguriert. Viele denke das eine möglichst große SGA (Viel Buffacache) perfomance bringt. Doch je größe dieser Cache umso mehr muß Oracle diesen Verwalten und das geht auf Kosten der Performance. Ich würde dir empfehlen erst mal Tip 2 und die SGA zu kontrollieren ob diese nicht überdimensoniert ist. Achja, windows fragmentiert den Speicherplatz den Oracle für einen Prozess vergibt nach einer Zeit. Ein regelmäßiges druchstarten des Oracle-Dienstes wirkt dabei auch oft schon wunder wenn es die Verfügbarkeit erlaubt. Im Internet gibt Literatur dazu, bzw. im Oracle Meta-Link erhälst du detailierter Informationen und Erfahrungsberichte dazu. Viel Spaß OracleFAN Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.