Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

BAK in selber Instanz aber unter anderem namen wiederherstellen

Dieses Thema im Forum "Microsoft SQL Server" wurde erstellt von costello, 6 März 2014.

  1. costello

    costello Neuer Benutzer

    Hallo,

    ich bin auch mit den MSDN Infos zu blöd eine BAK Sicherung wiederherzustellen.
    ich benutze MS SQL 2012 und das Management Studio. Habe dort von einer DB eine Sicherung per Task>Sichern gezogen.

    Nun würde ich gerne dieses Bakfile in der gleichen Instanz, aber unter einerm anderen DB Namen wiederherstellen, damit meine Originaldb nicht überschrieben und damit auf den tag des backups zurückgesetzt wird.

    ich habe eine Neue DB dazu angelegt und wollte über TASK > Wiederherstellen das Bak einspielen, in dem ich als Ziel die neue DB angegeben habe. ich bekomme aber immer den Fehler, dass mein BAK zu einer anderen DB gehört und nicht wiederhergestellt werden kann. Ich hatte nach dem Artikel dazu auf MSDN gedacht, dass man das Ziel selbst bestimmen kann.

    Was mache ich hier falsch (vermutlich.....viel).

    Danke für Eure Hilfe

    Costello
     
  2. ukulele

    ukulele Datenbank-Guru

  3. costello

    costello Neuer Benutzer

    Danke für deine rasche Antwort, aber das ist genau einer der Artikel für die ich wie geschrieben zu blöd bin:

    ich gehe in meine Instanz und dort auf neue Abfrage:

    dort gebe ich ein:

    RESTORE DATABASE Namederdatenbank //hier gebe ich also den Namen der DB ein, in den später meine Datenbank wiederhergestellt wird, oder den ORIGINALNAMEN der gesicherten Datenbank?
    FROM backup_device [ ,...n ] // gebe ich hier einfach die komplette Pfadangabe zum Sicherungsfile an?
    [ WITH
    {
    [ RECOVERY | NORECOVERY ] // mit oder ohne Recovery bei einem BAK? Wenn die DB funktionieren soll muss ich ja RECOVERY nehmen, oder
    [ , ] [ FILE ={ backup_set_file_number | @backup_set_file_number } ] //hier stehe ich leider an....
    [ , ] MOVE 'logical_file_name_in_backup' TO 'operating_system_file_name' [ ,...n ] //und auch das bringt mich nicht weiter.
    }
    ;

    ich bin leider nur Basiuc-SQL user, der bisher nur Dinge gemacht/gebraucht hat, die über das Management Studio leicht zu erreichen waren. Da ich jetzt an einer DB gebastelt habe und eben den alten und den neuen Stand brauche hänge ich.

    Daher mein Hilferuf ins Forum.


    Danke für Eure Hilfe!!!
     
  4. ukulele

    ukulele Datenbank-Guru

    Auf jedenfall den Namen der Zieldatenbank. So wie ich das verstehe, musst du die DB gar nicht vorher anlegen, da mag ich mich aber irren.
    Keine Ahnung, testen ;) Pfadangabe + Dateinamen (sofern es sich nur um ein bak-File handelt) sollten ausreichen. Der Pfad darf keine Leerzeichen enthalten oder muss in Hochstrichen stehen.
    Ist im Link beschrieben, handelt sich also definitiv um volle Pfadangaben.

    Ich würde es einfach austesten aber NUR wenn du Notfalls auf eine Komplett-Sicherung zugreifen kannst. Ich habe das Prozedere noch nicht gemacht.

    Die MSSQL Fehlermeldungen sind normalerweise recht aufschlussreich. Bitte mit posten.

    So wie ich das sehe geht das ganze aber auch über das Menü mit neuem DB Namen: http://social.technet.microsoft.com...kup-using-bak-file-in-ms-sql-server-2012.aspx
     
  5. costello

    costello Neuer Benutzer

    Diesen Link habe ich schon gekannt, aber der funktioniert einfach nicht wie beschrieben. (geht man im SQL Server auf Datenbanken>datenbank Wiederherstellen
    sieht nicht nur das Fenster anders aus als beschrieben, es geht auch nicht so leicht:

    Ich wähle als Quelle mein BAK aus - soweit so gut. in diesem Moment wird schon das feld Ziel mit dem Originalnamen der Datenbank aufgefüllt. Lösche ich das und setze hier einen neuen DB namen kommt nach OK folgender Fehler und nichts passiert:

    (DB Namen und den Name meiner neuen DB mit XXX geschwärzt)


    TITEL: Microsoft SQL Server Management Studio
    ------------------------------

    Fehler bei der Wiederherstellung von Datenbank 'XXXX_ALT'. (Microsoft.SqlServer.Management.RelationalEngineTasks)

    ------------------------------
    ZUSÄTZLICHE INFORMATIONEN:

    System.Data.SqlClient.SqlError: Die Datei 'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\XXXX_XXXX_Data.mdf' kann nicht überschrieben werden. Sie wird von der XXXX_XXXX-Datenbank verwendet. (Microsoft.SqlServer.SmoExtended)

    Hilfe erhalten Sie durch Klicken auf: http://go.microsoft.com/fwlink?Prod...+((SQL11_PCU_Main).121019-1325+)&LinkId=20476


    Der Hilfelink von microsoft ist nutzlos.

    Muss ich im Reiter DATEIEN unter "Datenbankdateien wiederherstellen als" was ändern? hier schreit das Programm ja offenbar, weil er nun doch die Dateien der OriginalDB angreift/ändert.

    Danke für deine Hilfe!!!
     
  6. ukulele

    ukulele Datenbank-Guru

    Ja, da müssten dann die mdf Dateien der alten Datenbank durch neue, am besten passend zum neuen DB Namen, ersetzt werden.
     
  7. costello

    costello Neuer Benutzer

    Problem selbst gelöst:

    Bin über folgendes Youtube-Video gestoßen:



    Der Trick, der leider bei Microsoft Technet nicht erklärt wird, ist, dass man unter Dateien neue Dateinamen für log & Co anlegen muss. Sonst greift SQl wieder auf die UR-DB zu...
    Danke trotzdem für deine Hilfe, ukulele.
     
  8. ukulele

    ukulele Datenbank-Guru

    Da muss man einfach mal die Fehlermeldungen von MS SQL loben, die sind fast immer aufschlussreich.
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden