Announcement

Collapse
No announcement yet.

Umbennen der Daten- und Transaktionslog-Datei?

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

  • Umbennen der Daten- und Transaktionslog-Datei?

    Hallo,

    ich habe folgendes Problem:

    Eine DB unter MS SQL-Server 2000 soll umbenannt werden. Soweit kein Problem .. dafür gibt es SPs.

    Wofür ich aber noch keine Lösung gefunden habe ist auch das Umbennen der Daten- und Transaktioslog-Datei. Ist das im Nachhinein möglich?

    Das Problem ist das die neue DB nach der Umbenennung z. B. DBNeu heißt das Datenfile aber noch DBAlt_Data.mdf. Diese soll aber ebenfalls DBNeu_Data.mdf heißen.

    Falls das irgendwie möglich ist bin ich für jeden Hinweis oder der Lösung dafür dankbar.

    Bye
    Reiko

  • #2
    Hallo,

    Sowohl das Umbenennen der Datenbank als auch das Umbenennen der Datenbankdateien kann in einem Arbeitsschritt erledigt werden, indem die Datenbank unter dem alten Namen gesichert und mit dem neuen Datenbanknamen wiederhergestellt wird. Wichtig ist dabei, dass die folgenden Anweisungen als SQL-Batch "am Stück" ausgeführt werden. Beim Wiederherstellen (RESTORE) wird zuerst das "Inhaltsverzeichnis" mit den Dateinamen eingelesen, um dann beim tatsächlichen Wiederherstellen unter dem neuen Datenbanknamen über die <b>MOVE</b>-Anweisung den neuen Dateinamen festzulegen. Am Ende erhält man eine zusätzliche (umbenannte) Datenbank, die auch neue Dateinamen nutzt:
    <pre>
    <b>BACKUP DATABASE</b> AlteDatenbank
    <b>TO</b> DISK = <font color="#9933CC">'C:\Temp\AlteDatenbank.bak'</font>
    <b>RESTORE FILELISTONLY
    FROM</b> DISK = <font color="#9933CC">'C:\Temp\AlteDatenbank.bak'</font>
    <b>RESTORE DATABASE</b> UmbenannteDatenbank
    <b>FROM</b> DISK = <font color="#9933CC">'C:\Temp\AlteDatenbank.bak'</font>
    <b>WITH RECOVERY</b>,
    <b>MOVE</b> <font color="#9933CC">'AlteDatenbank'</font> <b>TO</b> <font color="#9933CC">'D:\MSSQL\UmbenannteDatenbank.MDF' </font>,
    <b>MOVE</b> <font color="#9933CC">'AlteDatenbank_LOG'</font> <b>TO</b> <font color="#9933CC">'E:\MSSQLLog\UmbenannteDatenbank_L OG.LDF'</font>
    <b>GO</b>
    </pre&gt

    Comment


    • #3
      Hallo Andreas,

      vielen Dank für Deinen Hinweis erstmal. Ich habe es versucht, allerdings mit folgendem Ergebnis:

      Eingabe:

      <PRE>
      BACKUP DATABASE Alt
      TO DISK = 'D:\Program Files\Microsoft SQL Server\MSSQL\BACKUP\Alt.bak'
      RESTORE FILELISTONLY
      FROM DISK = 'D:\Program Files\Microsoft SQL Server\MSSQL\BACKUP\Alt.bak'
      RESTORE DATABASE Neu
      FROM DISK = 'D:\Program Files\Microsoft SQL Server\MSSQL\BACKUP\Alt.bak'
      WITH RECOVERY,
      MOVE 'Alt' TO 'D:\Program Files\Microsoft SQL Server\MSSQL\Data\Neu.MDF',
      MOVE 'Alt_LOG' TO 'D:\Program Files\Microsoft SQL Server\MSSQL\Data\Neu_LOG.LDF'
      GO
      </PRE>

      Ergebnis:

      <PRE>
      Processed 80 pages for database 'Alt', file 'Alt_Data' on file 2.
      Processed 1 pages for database 'Alt', file 'Alt_Log' on file 2.
      BACKUP DATABASE successfully processed 81 pages in 0.378 seconds (1.736 MB/sec).

      (2 row(s) affected)

      Server: Msg 3234, Level 16, State 2, Line 5
      Logical file 'Alt' is not part of database 'Neu'. Use RESTORE FILELISTONLY to list the logical file names.
      Server: Msg 3013, Level 16, State 1, Line 5
      RESTORE DATABASE is terminating abnormally.
      </PRE>

      Das Backup funktioniert wunderbar. Beim Restore allerdings gibt es Probleme.

      Ich bin mir nicht ganz klar darüber was Du mit "im Stück" meinst - ich habe es versucht im Query Analyzer auszuführen.

      Vielen Dank

      Reik

      Comment


      • #4
        Hallo Andreas,

        beim 1. Test ist mir ein kleiner Schreibfehler unterlaufen aber ohne ihm hat es dann geklappt :-)

        Vielen Dank

        Reik

        Comment

        Working...
        X