Zum Inhalt springen

Oracle 10g - Datenbank per cmd starten


Rumak18

Empfohlene Beiträge

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?

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 von Rumak18
Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 von dr.dimitri
Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...