SQL Server - Datenbank kopieren - Fehler

J

jaichbins

Gast
Hallo zusammen,

wir wollen mit unserer SQL-Datenbank (Windows Server 2008 R2, SQL Server 2008 R2) auf einen neuen, leistungsfähigeren Server (Windows Server 2012 R2, SQL Server 2014) umziehen.
Wenn wir den Copy Database Wizard ausführen, folgt nach einiger Zeit ein Abbruch mit folgendem Fehler:

Event Name: OnError
Message: ERROR : errorCode=-1073548784 description=Executing the query "-- =============================================
..." failed with the following error: "Could not find server 'XXXXX' in sys.servers. Verify that the correct server name was specified. If necessary, execute the stored procedure sp_addlinkedserver to add the server to sys.servers.". Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly.
helpFile= helpContext=0 idofInterfaceWithError={C81DFC5A-3B22-4DA3-BD3B-10BF861A7F9C}
StackTrace: bei Microsoft.SqlServer.Management.Dts.DtsTransferProvider.ExecuteTransfer()
bei Microsoft.SqlServer.Management.Smo.Transfer.TransferData()
bei Microsoft.SqlServer.Dts.Tasks.TransferObjectsTask.TransferObjectsTask.TransferDatabasesUsingSMOTransfer()
Operator: YYYY\Administrator
Source Name: YYYYY_ZZZZZ_Transfer Objects Task
Source ID: {7FD637EC-96B3-4F88-86F3-9F0733BD9DFB}
Execution ID: {E2C3BAE3-428B-4298-A290-A00A09317D60}
Start Time: 22.09.2014 14:25:25
End Time: 22.09.2014 14:25:25
Data Code: 0

Der Server ist tatsächlich nicht in der sys.servers eingetragen, weil es diesen Server nicht mehr gibt.
Trage ich den Server ein, erfolgt auch ein Abbruch mit der Begründung, dass der Server nicht erreichbar ist.

Hat einer eine Idee? Wo versteckt sich der Eintrag mit dem alten Server?
 
Benutzt du SSIS - >Transfer Database Task von VS2012?

Warum nimmst du kein Backup der Datenbank?
Die User kannst du locker rausscripten.

Wo liegt jetzt eigentlich die Datenbank, weil du schriebst der eine Server sei bereits offline?
Sprich du hast die DB detached?

Den Server in Linked Server einzubinden, hast du schon versucht oder?
 
Gibt es eventuell Views / Diagramme die Tabellen über mehrere Server verknüpfen? Also so etwas wie

"Select * from table1 inner join [srvXXXX].dbo.table2 on ..."


Sonst könnte ich mir da nichts vorstellen, aber das sind die Abfragen bei denen ich immer mal wieder einen linked Server benötigt habe...

EDIT: So etwas kann auch mal in eigenen Stored Procedure, Triggern, etc. enthalten sein
 
Der Copy Database Wizard erstellt ein SSIS Package.

Der nicht verfügbare Server XXXX ist einer, von dem irgendwann mal Daten auf den YYYY eingespielt wurden.
Wir wollen die Datenbank von YYYY nach ZZZZ migrieren.

Eintragen in Linked Servers hilft nicht, weil er dann abbricht mit der Begründung, dass eine Verbindung nicht möglich war.


Backup & Restore würde funktionieren. Hat das einen Nachteil ggü. dem Wizard?


Ich kann nicht ausschließen, dass es Views, SPs, Trigger gibt, in denen der alte Server XXXX mal verwendet wurde. Leider hat jemand anders die Datenbank aufgebaut, so dass ich nicht alle Bereiche kenne, wo auf den alten Server evtl. mal zugegriffen wurde.

Wie könnte ich den SQL Server schnell danach durchsuchen? Die Filter Optionen im Management Studio helfen mir hier nicht weiter, da diese nicht den Inhalt erfassen und auf der Datenbank sind so einige SPs.
 
Zuletzt bearbeitet von einem Moderator:
Mir ist jetzt auf die schnelle keine Möglichkeit bekannt, alle Stellen in der DB zu finden wo ein spezieller Server genutzt wird, ich kenne da nur die Möglichkeit alles händig zu durchsuchen oder das die Fehlermeldung Aufschluss darüber gibt, in welchem Objekt der Fehler aufgetreten ist.
Dann könnte man das Objekt korrigieren und den nächsten Kopierversuch durchführen => Wiederholen, bis keine Fehlermeldung mehr kommt.

Beides keine guten Lösungen, allerdings kenne ich mich auch nur oberflächlich mit SQL Server aus.
 
Nachteile gibts eigentlich keine - sofern du ein Backup oder MDF/LDF benützt.
In welchem Format liegt deine DB vor?

Vergiss erstmal den SSIS GUI Bonbon - macht nur Sinn bei Komplexen Tasks. bzw. sind mir die noch net ausgereif genug für Daily DBA Tasks

Einzig die User müssten evtl. nahgezogen werden - da gibts aber Scripts, die sich um die (orphaned/abandoned) Users kümmern. Ich mach das mehrfach die Woche.
 
ja dann mach's dir doch net so schwer.

Starte das SSMS -> Verbindung zu deinem SQL Server herstellen -> Rechts Klick auf Datenbanken -> Attach Database.
Einzig das LDF File müsstest du neu erstellen lassen, falls du es nicht hast.

Hast du die User vorher rausgescripted bzw. die SID übernommen?
Sonst musst noch o.g (orphaned/abandoned) Users aufräumen bzw. beseitigen.
Ergänzung ()

Servus,

wie isses ausgegangen? Hast du es gedeichselt bekommen?
 
Moin,

per Backup & Restore funktioniert es (der bisherige Server soll als Testserver beibehalten werden).
Jetzt müssen die Jobs halt noch nachgezogen werden.

herzlichen Dank!
 
Ja das ist eh einfach :-D
Wichtig ist die Datenbank ist sauber eingebunden und es funktioniert.
 
Zurück
Oben