Announcement

Collapse
No announcement yet.

Kopieren einen File auf andere Machine über das Netz?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Kopieren einen File auf andere Machine über das Netz?

    Hallo zusammen,

    ich habe mit
    ALTER DATABASE BACKUP CONTROLFILE TO 'C:\Temp\control.bak'; den controlfile kopiert(wie es in der Doku steht).
    Aber ich verstehe nicht ein Paar Sachen:
    In der Datenbank gibt es 3 Control-Files. Nach dem Kopieren habe ich nur einen binary-File.
    Ist das eine Kopie von allen drei, oder nur von einem Controlfile?
    Nach dem Kopieren von Controlfile möchte ich diesen .bak-File auf eine andere Machine kopieren. Ist Oracle in der Lage das mit einem Job oder einfach mit einem Befehl realisieren? Oder soll ich das mit Hilfe von Windows tun?

    Danke.

    Leonid Pavlov

  • #2
    Hallo Leonid,

    es steht in allen Controlfiles das selbe. Aus Fehlertoleranzgründen und wegen der enormen Wichtigkeit der Controlfiles kann man mehrere Controlfiles konfigurieren um im Bedarfsfall eines der anderen zu kopieren und wie in der entsprechenden init.ora konfiguriert umzubenennen. Das steht standartmässig auf drei Controlfiles und ist bei Dir schon geschehen. Beachte bitte das eine einmalige Kopie nichts hilft, Du musst bei jedem Backup eine entsprechende Kopie ziehen.

    MfG Steve

    Comment


    • #3
      Hallo Steven,

      vielen Dank.
      Ich möchte aber auch gerne wissen, ob ich den .bak-File auch irgendwie auf den anderen Rechner kopieren kann. Der Befehl soll z.B. mit einem Job einmal pro Woche ausgeführt wird.
      Ist Oracle oder Windows in der Lage das zu machen?
      Ich bin gespannt auf deine Antwort und würde mich sehr freuen auf ein Beispiel.

      Gruß

      Leonid Pavlo

      Comment


      • #4
        Hallo Leonid,

        ich verstehe noch nicht ganz was Du vorhast.
        Aber ich schlage jetzt mal was vor ;-)).

        Task planen, Script anstossen. Inhalt des Scriptes ein weiteres script:

        sqlplus username/password @scriptname.sql

        ##scriptname.sql##
        SQL>ALTER DATABASE BACKUP CONTROLFILE TO 'C:\Temp\control.bak'
        SQL>host copy C:\Temp\control.bak \\server2\freigabename
        SQL>EXIT
        ##ENDE##

        Zur Erklärung, mit dem HOST Befehl bist Du aus SQLPLUS heraus in der Lage Betriebssystembefehle abzusetzen.

        So ungefähr könnte das funktionieren.

        Was Du aber auch machen kannst, um immer eine aktuelle Kopie des Controlfiles auf dem 2. Server zu haben ist einfach in der Init.Ora ein zusätzliches Controlfile einzurichten. Dazu machst Du ein Shutdown, kopierst eines der vorhandenen Controlfiles auf den Rechner Deiner Wahl (im folgenden Server2), machst dort eine Freigabe auf das Verzeichniss in dem das file landen soll und editierst das init.ora der Datenbank folgendermassen. Zu den vorhandenen Controlfiles baust du noch ein zusätzliches mit dem UNC Namen des Servers und des Freigabenamens (\\server2\freigabe\controlfile4.ora). Beachte bitte das der DB Dienst nicht als System gestartet werden darf, sondern baue Dir einen entsprechend berechtigten User in dessem Namen Du den Listenerdienst und den DBdienst startest, und welcher auch das recht hat auf die Freigabe des Server2 zuzugreifen. Danach Db hochfahren, wenn diese fehlerfrei hochfährt hast Du in Zukunft immer eine aktuelle Kopie des Controlfiles auf Server2. Diesen darfst Du dann allerdings nicht mehr herunterfahren sonst gibt es Probleme mit der DB.

        Hoffe das hilft.

        MfG Steve

        Comment

        Working...
        X