Zum Inhalt wechseln


Foto

Datenbank kopieren schlägt fehl


  • Bitte melde dich an um zu Antworten
14 Antworten in diesem Thema

#1 RalphT

RalphT

    Board Veteran

  • 529 Beiträge

 

Geschrieben 25. Juli 2016 - 09:25

Hallo,

 

ich habe hier 2 MS-SQL-Server. Der eine ist ein 2008-SQL-Server, der andere ein 2012-SQL-Server. Über das Managementstudio, wollte ich eine Datenbank vom 2012 zum 2008 kopieren. Ich melde mich am Quellserver das Managementstudio an, klicke auf die entsprechende Datenbank und dann mit Rechtsklick auf Tasks, Datenkopieren und dann werde ich durch einen Assistenten geführt. Beim letzten Schritt gibt es einen Fehler.

 

Beide Datenbanken laufen auf einer eigenen Instanz. Bei beiden Servern wurde die Instanz so installiert, dass die Dienste ein anderes Nutzerkonto bekommt und nicht der Administreator. Dort steht auch, dass Microsoft das so empfiehlt.

Nach dieser Fehler zu urteilen hat der Login von diesen Diensten hier: "Der_Dienstname_ABC" keine Berechtigung die Datenbank auf dem Zielserver zu öffnen.

 

Hier die Fehlermeldung auf dem Zielserver:

Der Serverprinzipal 'Der_Dienstname_ABC' kann unter dem aktuellen Sicherheitskontext nicht auf die testing-Datenbank zugreifen.

 

Was ich bis jetzt gemacht habe:

 

Das Dienstkonto vom Quellserver, lokale Adminrechte auf dem Zielserver gegeben.

NTFS-Berechtigungen vom Dienstkonto des Quellservers auf dem Zielserver zusätzlich gegeben.

Im Managementtool dem Dienstkonto des Quellservers die Rolle des Sysadmins gegeben.

 

Nachdem alles nicht funktionierte, habe ich natürlich alle Änderungen wieder rückgängig gemacht.

 

Was jedoch funktioniert ist, wenn ich eine Sicherung der Datenbank vom Quellserver wieder am Zielserver einbinde.

 

 

 

Ich bin nun kein SQL-Spezi. Wo könnte ich denn noch ansetzen?



#2 Sunny61

Sunny61

    Expert Member

  • 22.089 Beiträge

 

Geschrieben 25. Juli 2016 - 10:56

Anders gefragt, was spricht gegen deine Lösung? Sicherung erstellen und am Zielserver wieder mittels Wiederherstellung retour holen. Ist IMHO eine sehr saubere Angelegenheit.

Wenn Du alle möglichen Berechtigungen eingerichtet hast, kannst Du denn manuell vom Quellserver zum Zielserver, in das gewünschte Verzeichnis eine Datei kopieren?
Gruppenrichtlinien: http://www.gruppenrichtlinien.de/

#3 RalphT

RalphT

    Board Veteran

  • 529 Beiträge

 

Geschrieben 25. Juli 2016 - 11:03

 

Anders gefragt, was spricht gegen deine Lösung?

 

Du, ich mags garnicht sagen: Ich persönlich habe dem Mitarbeiter gesagt, dass es auch auf diesem Wege funktioniert. Er sagte nur zu mir: Es muss auch über das Managementtool funktionieren. Weiter noch: Er weigert sich den anderen Weg anzunehmehmen.

 

Alles nicht so einfach. :nene:



#4 Sunny61

Sunny61

    Expert Member

  • 22.089 Beiträge

 

Geschrieben 25. Juli 2016 - 11:17

Es muss und er stampft mit dem Fuß auf! :)

Wenn Du den Benutzer auf dem Zielsystem Berechtigungen einräumst, hast Du dann auch den SQL Serverdienst auf dem Zielsystem neu gestartet? Sprechen wir von SQL Server Benutzern oder sind hier nur Windows Konten im Spiel?
Gruppenrichtlinien: http://www.gruppenrichtlinien.de/

#5 MDD

MDD

    Newbie

  • 34 Beiträge

 

Geschrieben 25. Juli 2016 - 11:23

Hallo

 

... Über das Managementstudio, wollte ich eine Datenbank vom 2012 zum 2008 kopieren.

 

 

Anders gefragt, was spricht gegen deine Lösung? Sicherung erstellen und am Zielserver wieder mittels Wiederherstellung retour holen.

 

Wäre mir neu das es möglich ist ein Backup von einem 2012 auf einem 2008 wiederherzustellen. Aber ich lass mich gerne eines besseren belehren.

Stimmt die Angabe wirklich?

 

Gruß MDD


Wir finden für jede Lösung ein Problem

Man steckt immer in einem Sumpf voll Arbeit, nur die Tiefe ändert sich.


#6 RalphT

RalphT

    Board Veteran

  • 529 Beiträge

 

Geschrieben 25. Juli 2016 - 11:26

Es muss und er stampft mit dem Fuß auf! :)

 

Aber genauso stand er hier. :thumb2:


Wenn Du den Benutzer auf dem Zielsystem Berechtigungen einräumst, hast Du dann auch den SQL Serverdienst auf dem Zielsystem neu gestartet? Sprechen wir von SQL Server Benutzern oder sind hier nur Windows Konten im Spiel?

 

Hm, an einen Neustart vom Dienst habe ich nicht gedacht. Das probiere ich gleich mal.

 

Wir sprechen hier nur von Domänenbenutzern. Bei dem Server ist nicht die gemischte Authentifizierung aktiviert.


Hallo

 

 

 

Wäre mir neu das es möglich ist ein Backup von einem 2012 auf einem 2008 wiederherzustellen. Aber ich lass mich gerne eines besseren belehren.

Stimmt die Angabe wirklich?

 

Gruß MDD

 

Ich persönlich habe es noch nicht probiert. Er sagte mir, dass es funktioniert. Also BAK-Datei auf dem 2012 erzeugen und auf dem 2008 die BAK-Datei importieren.



#7 Dukel

Dukel

    Board Veteran

  • 9.244 Beiträge

 

Geschrieben 25. Juli 2016 - 11:28

Existierte die DB schon vorher oder nicht und hatte der Service Benutzer auf der DB rechte (wenn diese schon existierte)?

 

@MDD: Wieso sollte das nicht gehen? Dafür gibt es den Kompatibilitätsmodus.

https://msdn.microso...0(SQL.130).aspx


Bearbeitet von Dukel, 25. Juli 2016 - 11:29.

Stop making stupid people famous.


#8 RalphT

RalphT

    Board Veteran

  • 529 Beiträge

 

Geschrieben 25. Juli 2016 - 12:28

 

Existierte die DB schon vorher oder nicht und hatte der Service Benutzer auf der DB rechte (wenn diese schon existierte)?

 

Die DB existiert auf dem Zielserver nicht. Wenn ich eine leere Datenbank vorher erstelle, dann mecker der Assistent und sagt, dass die DB auf dem Zielsystem schon existiert. Man muss also auf dem Zielsystem einen anderen Namen für eine Datenbank angeben.

Da hattest Du mich auf eine andere Idee gebracht: Ich habe die Datenbank in die leere Datenbank auf dem Zielsystem exportiert. Das funktioniert.

 

Auf dem Quellserver hat die betreffende Datenbank keine Rechte von dem Dienstuser. Ich bin mir jetzt nicht ganz sicher, ob ich da auch richtig nachgesehen habe: Im Managementtool unter Datenbanken - Testdatenbank - Sicherheit - Benutzer. Dort standen nur 3 User. Das waren wohl die per deault angelegten User.

Hier habe ich auf dem Quellserver den Dienstuser hinzugefügt. Ihm habe ich das Recht Datenbankowner gegeben. Ich hoffe, dass das soweit richtig war. Jedoch funktioniert das immer noch nicht.



#9 zahni

zahni

    Expert Member

  • 16.376 Beiträge

 

Geschrieben 25. Juli 2016 - 12:34

Primär sollte sql compatibility level nicht 100 übersteigen. Ansonsten mit Backup und Restore. Hinterher ist u.U noch sp_change_users_login 'AUTO_FIX', 'USERNAME' , nötig, falls es SQL-User sind.


Wen du nicht mit Können beeindrucken kannst, den verwirre mit Schwachsinn!


#10 RalphT

RalphT

    Board Veteran

  • 529 Beiträge

 

Geschrieben 25. Juli 2016 - 12:38

Was mir gerade noch eingefallen ist: Vielleicht fehlt hier das Recht eine neue Datenbank auf dem Zielserver zu erstellen. Wer darf denn neue Datenbanken anlegen?



#11 MDD

MDD

    Newbie

  • 34 Beiträge

 

Geschrieben 25. Juli 2016 - 12:47

@MDD: Wieso sollte das nicht gehen? Dafür gibt es den Kompatibilitätsmodus.

https://msdn.microso...0(SQL.130).aspx

 

@dukel

Der Kompatibilitätsmodus bezieht sich IMHO auf den unterstützten Funktionsumfang. Und ist laut der angegebenen Beschreibung eine Rückwärtskompatibilität. Das bedeutet das eine höhere Engine den Umfang reduzieren kann aber nicht dass eine niedrige Version mit dem Datenbank einer höheren Version umgehen kann.

Eine Version SQL 2008 kann meines Wissens ein Backup das mit einer höheren Version gemacht wurde gar nicht lesen unabhängig vom Kompatibiitätsmodus.

 

Gruß MDD

 

PS: hab es gerade mit 2014 auf 2008R2 versucht und das geht trotz Level 100 auch nicht.


Wir finden für jede Lösung ein Problem

Man steckt immer in einem Sumpf voll Arbeit, nur die Tiefe ändert sich.


#12 Sunny61

Sunny61

    Expert Member

  • 22.089 Beiträge

 

Geschrieben 25. Juli 2016 - 13:40

Kompatibilitätsgrad ist IMHO ausschlaggebend. In den Eigenschaften > Optionen der DB zu finden. Wenn dort auf der DB 100 (SQL 2008) eingetragen ist, kann man IMHO die DB auf einem SQL 2008 restoren. Wird 2005 auch noch benötigt, muss der Kompatibilitätsmodus natürlich niedriger sein. Über den Sinn oder Unsinn brauchen wir nicht zu diskutieren.

@RalphT, auch mal heute Nacht einen Neustart des Servers planen.

Bearbeitet von Sunny61, 25. Juli 2016 - 13:41.

Gruppenrichtlinien: http://www.gruppenrichtlinien.de/

#13 MDD

MDD

    Newbie

  • 34 Beiträge

 

Geschrieben 25. Juli 2016 - 14:43

Kompatibilitätsgrad ist IMHO ausschlaggebend. In den Eigenschaften > Optionen der DB zu finden. Wenn dort auf der DB 100 (SQL 2008) eingetragen ist, kann man IMHO die DB auf einem SQL 2008 restoren. Wird 2005 auch noch benötigt, muss der Kompatibilitätsmodus natürlich niedriger sein. Über den Sinn oder Unsinn brauchen wir nicht zu diskutieren.

 

 

Leider ist der Kompatibilitätsgrad nicht ausschlaggebend. Es wäre für mich oft schön und hilfreich gewesen wenn der ausreichend wäre. :nene:

 

https://technet.micr...=sql.110).aspx 

 

 

 

Copy Databases with Backup and Restore
 

In SQL Server 2012, you can create a new database by restoring a database backup created by using SQL Server 2005 or a later version. However, backups of master, model and msdb that were created by using an earlier version of SQL Server cannot be restored by SQL Server 2012. Also, SQL Server 2012 backups cannot be restored by any earlier version of SQL Server.

 

Man kann Backups nur auf der selben oder höheren Versionen wiederherstellen. Sorry


Was mir gerade noch eingefallen ist: Vielleicht fehlt hier das Recht eine neue Datenbank auf dem Zielserver zu erstellen. Wer darf denn neue Datenbanken anlegen?

 

Dafür íst entweder explizit eines der Rechte CREATE DATABASE, CREATE ANY DATABASE oder ALTER ANY DATABASE notwendig. Oder wenn ein Benutzer Mitglied der Standard Rollen sysadmin bzw dbcreator ist. Bei einer bestehenden Datenbank funktioniert es auch mit der Gruppe db_owner.


Wir finden für jede Lösung ein Problem

Man steckt immer in einem Sumpf voll Arbeit, nur die Tiefe ändert sich.


#14 Doso

Doso

    Board Veteran

  • 2.452 Beiträge

 

Geschrieben 25. Juli 2016 - 22:12

Es geht auch über diesen Weg, nur ist das dann mit Berechtigungen immer etwas fummelig. Backup + Restore funktioniert halt bei mir immer, der andere Weg ist mir zu viel Gefummel.



#15 MDD

MDD

    Newbie

  • 34 Beiträge

 

Geschrieben 26. Juli 2016 - 05:48

Ich hatte weniger Probleme wenn ich den Kopiervorgang vom Zielserver aus gestartet habe. 


Wir finden für jede Lösung ein Problem

Man steckt immer in einem Sumpf voll Arbeit, nur die Tiefe ändert sich.