Rumak18 Geschrieben 6. November 2008 Teilen Geschrieben 6. November 2008 Hallo, ich bin ein absoluter Laie, was Oracle Datenbanken anbelangt und versucht mich langsam in die Sache einzuarbeiten. Nun habe ich mich gefragt, ob es eine Möglichkeit, eine angelegte Datenbank auch per cmd starten bzw. runterzufahren, denn die Dienste stoppen und starten ist wohl nicht die saubere Lösung oder? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dr.dimitri Geschrieben 6. November 2008 Teilen Geschrieben 6. November 2008 Hi, die Dienste kannst per net start <dienstename> starten. Mit net stop <dienstename> entsprechend wieder stoppen. Das gilt auch für alle anderen Windowsdienste. Dim Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Rumak18 Geschrieben 6. November 2008 Autor Teilen Geschrieben 6. November 2008 Ja Moment.... nur weil ich den Dienst beende, heißt es doch nicht, dass ich damit die Datenbank sauber herunterfahre oder??? Schliesslich fährt die Datenbank auch nicht hoch, nur weil ich den Dienst starte. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dr.dimitri Geschrieben 6. November 2008 Teilen Geschrieben 6. November 2008 Doch das tut sie. Alternativ kannst Du dich natürlich auch als sys in sqlplus anmelden und die Datenbank per shutdown immediate bzw. startup runter und hochfahren. Das hat dann allerdings keinen Einfluss auf den Dienst. Dim Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Rumak18 Geschrieben 6. November 2008 Autor Teilen Geschrieben 6. November 2008 Aha.. ok. Dachte, dass mit den Diensten ist nicht so ganz korrekt. Könnte man für das shutdown immediate und startup auch ein Script schreiben, da ich es mit dem folgenden nicht hinkriege: sqlplus system/"meinpasswort" AS SYSDBA startup HIer läuft er mir aber in die sqlplus Kommandozeilenmenü rein, wo ich auch drin bleibe und nichts geschieht. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dr.dimitri Geschrieben 7. November 2008 Teilen Geschrieben 7. November 2008 Sicher kann man das. Du machst ein Skript mit dem Inhalt shutdown immediate exit bzw. dann analog für startup und führst es wie folgt aus: set oracle_sid=DEINE_SID sqlplus / as sysdba @dein_skript_name.sql Dein OS User muss dazu in der ora_dba Gruppe sein, ansonsten musst sys/pwd verwenden. Als system kannst due DB übrigends nicht runterfahren und Du solltest system auch nicht die SYSDBA Rolle zuweisen. Dim Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Fesen1987 Geschrieben 7. November 2008 Teilen Geschrieben 7. November 2008 Man kann sich das Leben aber auch unnötig schwer machen. Du kannst auch einfach in der Commandline folgenden Befehl ausführen und hast das selbe Ergebnis oradim -shutdown -shutmode immediate -sid [DEINE SID] -syspwd [DEIN SYSPWD] Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Rumak18 Geschrieben 7. November 2008 Autor Teilen Geschrieben 7. November 2008 OK. Vielen Dank. Werde das ganze mal probieren. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Rumak18 Geschrieben 7. November 2008 Autor Teilen Geschrieben 7. November 2008 (bearbeitet) OK. Nun gibt es drei Vorschläge für die Lösung, doch wo liegen die genauen Unterschiede intern?? GIbt es überhaupt welche?? Ist eins vielleicht nicht die stabilere Lösung?Was mich halt bei den Scripten mit den Diensten irritiert , ist dass wenn man sonst einen Dienst herunterfährt, die Anwendungen in der Regel nicht normal bzw. sauber runterfährt. Siehe VMWare. Dachte, es wäre hier genauso. Bearbeitet 7. November 2008 von Rumak18 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Fesen1987 Geschrieben 7. November 2008 Teilen Geschrieben 7. November 2008 Also was VMWare damit zu tun hat musst mal näher erklären denn ich wüsste nicht was daran unsauber ist den VMWare Server zu beenden indem ich den Dienst stoppe. Ansonsten kannst du die Vorschläge hier alle verwenden wobei ich ehrlich gesagt von dieser Variante hier nicht sonderlich begeistert bin. Sicher kann man das. Du machst ein Skript mit dem Inhalt shutdown immediate exit bzw. dann analog für startup und führst es wie folgt aus: set oracle_sid=DEINE_SID sqlplus / as sysdba @dein_skript_name.sql Wenn ich für jede Aktion die ich mit einem Skript abhandeln kann zwei Skripte mache dann wirds halt irgendwann sehr viel und sehr unübersichtlich. Aber ansonsten spricht auch gegen diese Variante nix. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Rumak18 Geschrieben 7. November 2008 Autor Teilen Geschrieben 7. November 2008 Also was VMWare damit zu tun hat musst mal näher erklären denn ich wüsste nicht was daran unsauber ist den VMWare Server zu beenden indem ich den Dienst stoppe. Das mit VM war ja nur ein Beispiel. Aber starte doch mal deine VM Konsole, starte eine Maschine, und beende den VMWare Dienst in der "services.msc" Konsole. Resultat: Die Rechner wurden nicht "heruntergefahren" sondern virtuell "vom Strom" getrennt. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Fesen1987 Geschrieben 7. November 2008 Teilen Geschrieben 7. November 2008 Ja gut das ist aber was ganz anderes. Wenn du nur den VMWare Server laufen hast dann kannst du den Dienst beenden ohne das du irgendwas kaputt machst..... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dr.dimitri Geschrieben 7. November 2008 Teilen Geschrieben 7. November 2008 die Anwendungen in der Regel nicht normal bzw. sauber runterfährt. Siehe VMWare. Dachte, es wäre hier genauso. Du vergleichst Äpfel mit Birnen. Wenn Du die Oracle Instance beendest, dann werden auch die daran gerade angemeldeten Clients nicht sauber beendet sondern verlieren einfach ihre noch nicht comitteten Daten. Umgekehrt, um wieder auf die Dienste zurückzukommen, falls es zwischen den Diensten abhängigkeiten gibt, dann werden auch die abhängigen Dienste sauber heruntergefahren. Jede der hier gezeigten Möglichkeiten bietet dir die Möglichkeit die Datenbank in einem sauberen, sprich konsistenten Zustand herunterzufahren. Dim Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Rumak18 Geschrieben 7. November 2008 Autor Teilen Geschrieben 7. November 2008 Wenn Du die Oracle Instance beendest, dann werden auch die daran gerade angemeldeten Clients nicht sauber beendet sondern verlieren einfach ihre noch nicht comitteten Daten. Aber genau das wollen wir doch nicht oder?? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dr.dimitri Geschrieben 7. November 2008 Teilen Geschrieben 7. November 2008 (bearbeitet) Aber genau das wollen wir doch nicht oder?? Es gibt mehrere Möglichkeiten eine Oracle Datenbank herunterzufahren: shutdown abort: Die schnellste aber auch brutalste Art. Im Prinzip wird die Instance abgeschossen. Die DB muss nach einem Neustart erstmal ein Instance Recovery fahren. shutdowm immediate: Die DB beendet alle offene Transaktionen mit Rollback und fährt dann herunter. Die DB selbst ist sauber aber die Clients haben uncomittete Daten verloren. shutdown transactional: Die DB wartet bis alle Transaktionen beendet sind und sich alle User abgemeldet haben. Es können sich keine neuen User mehr anmelden und es können keine neue Transktionen mehr gestartet werden. shutdown normal: Wie transactional aber die User können weiterhin neue Transaktionen starten. Diese Möglichkeiten gibt es eine Oracle DB herunterzufahren. Bei normal und transactional hast Du allerdings keine Kontrolle wann die DB herunterfährt, denn solange noch mindestens ein user angemeldet ist wartet die Instance - also theoretisch auch Tage, Wochen und Monate. Eine davon kannst dir aussuchen. Dim Bearbeitet 7. November 2008 von dr.dimitri Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Rumak18 Geschrieben 7. November 2008 Autor Teilen Geschrieben 7. November 2008 Also... habe mir nun das folgende Script erstellt: net start "OracleDBConsoleOSCO" net start "OracleOracle_OrgasoftTNSListener" net start "OracleServiceOSCO" sqlplus / as sysdba @C:\Users\administrator\Desktop\Oracle_starten2.sql und "Oracle_starten2.sql" ist einfach nur startup exit Beim Beenden dann: sqlplus / as sysdba @C:\Users\administrator\Desktop\Oracle_stoppen2.sql net stop "OracleDBConsoleOSCO" net stop "OracleOracle_OrgasoftTNSListener" net stop "OracleServiceOSCO" und "Oracle_stoppen2.sql" ist einfach nur shutdown immediate exit Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dr.dimitri Geschrieben 7. November 2008 Teilen Geschrieben 7. November 2008 Öhm das ist ja alles durcheinander. Wieso verwendest nicht einfach oradim? Den Listener und die dbconsole musst nicht extra stoppen. Die DB im übrigen auch nicht wenn Du die Maschine normal herunterfährst. Ich dachte es ging dir darum die Instance so mittendrin durchzustarten o.ä. Dim Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Rumak18 Geschrieben 7. November 2008 Autor Teilen Geschrieben 7. November 2008 Ich finde der Befehl mit "oradim" ist ja wirklich gut, nur bleiben dann die ganzen Dienste noch auf "gestartet". Wieso brauche ich den Listener und die dbconsole nicht herunterzufahren? P.S.: Danke für die Mühe!! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dr.dimitri Geschrieben 7. November 2008 Teilen Geschrieben 7. November 2008 Ich frag mal anders: warum bist du so versessen darauf die DB unbedingt selbst herunterzufahren? Im übrigen ist der Dienst den Du siehst nur dafür da überhaupt eine oracle.exe zu starten - es ist nicht gleichbedeuten mit die Instance ist hochgefahren (das ist unter Linux/Unix meiner Meinung nach deutlich einfacher gelöst). Versuchs doch auch selbst einfach mal aus. Wenn der Dienst weg ist, kannst auch per sqlplus die Instance nicht hochfahren. Weswegen willst den Listener und die dbconsole den runterfahren? Das passiert schon automatisch wenn das OS beendet wird (wie im übrigen auch mit der Instance). Dim Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Rumak18 Geschrieben 7. November 2008 Autor Teilen Geschrieben 7. November 2008 Ich frage lieber nochmals nach: Ist das Beenden der Dienste gleich zu setzen mit "shutdown immediate" von der Datenintegrität hergesehen? Denn das, was mich hier irritiert ist ganz einfach. Fahre ich die Datenbank mit oradim oder sqlplus herunter, dann laufen schlicht und einfach immer noch die Dienste. Ok. Nun sagst du dass das egal ist. Auch beim Backup der Daten?? Ich bin mir halt nicht sicher, ob die Oracle Daten wirklich dann so "runtergefahren" sind, dass sie auch "sauber" gesichert werden können, ohne dass ein Dienst noch darauf zugreift. Ich beende zusätzlich auch die anderen beiden Dienste (Listeneder und DB) , weil ich hier ebenfalls die Befürchtung haben (Aber vielleicht liege ich ja eben falsch), dass die Datenbank nicht konsistent beim wegsichern sein könnte. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dr.dimitri Geschrieben 8. November 2008 Teilen Geschrieben 8. November 2008 Also es geht ums Sichern? Sag das doch gleich Also wenn Du die Instance erfolgreich mit shutdown immediate heruntergefahren hast, dann ist die DB konsistent. Egal welche Dienste laufen oder nicht. Du kannst die DB übrigends auch sichern während sie noch läuft. Dazu gibts den RMAN von Oracle. Die Syntax ist vielleicht nicht ganz intuitiv aber wenn Du dir eine Testumgebung aufbaust und dort das Sichern und wiederherstellen übst klappt das schon. Damit kannst auch ganz geziehlt einen bestimmten Zeitpunkt wieder herstellen. Wenn Du diesen weg gehen möchtest, dann wäre das hier der richtige Einstiegspunkt. Ist wie gesagt mit deutlich mehr (Lern)aufwand verbunden bietet aber auch sehr viele Vorteile gegenüber einem Coldbackup. Dim Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Rumak18 Geschrieben 8. November 2008 Autor Teilen Geschrieben 8. November 2008 Ok. Und mit dem "oradim -shutdown -shutmode immediate -sid [DEINE SID] -syspwd [DEIN SYSPWD] " Befehl ist das Herunterfahren für eine Sicherung auch konsistent?? Gleiches gilt für "net stop Dienst" ... auch konstant? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Rumak18 Geschrieben 9. November 2008 Autor Teilen Geschrieben 9. November 2008 Oder mal anders nachgefragt: Was passiert denn, wenn die Datenbank gerade hochgefahren ist, Benutzer daran arbeiten und ich nun einfach die Dienste herunterfahre?? Oder sonstige Befehle. Sind die bearbeiteten Daten der Benutzer weg, die DB inkonsistent oder konsistent oder wie darf man sich das vorstellen? Denn schliesslich "schmeiße" ich die Benutzer ja anscheinend mit den net stop Dienst Befehl raus. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dr.dimitri Geschrieben 9. November 2008 Teilen Geschrieben 9. November 2008 Ließ dir den Thread nochmal genau durch, deine Fragen wurden bereits mehrmals beantwortet. Dim Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Rumak18 Geschrieben 10. November 2008 Autor Teilen Geschrieben 10. November 2008 ja aber doch nicht die hier: Was passiert denn, wenn die Datenbank gerade hochgefahren ist, Benutzer daran arbeiten und ich nun einfach die Dienste herunterfahre?? 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.