[gelöst] Mandanten zwischen versch. Datenbanken kopieren

27. November 2014 14:17

Heyho,

ich suche nach einer Möglichkeit, einen einzelnen Mandanten aus Datenbank A zu sichern und in Datenbank B wieder einzulesen, habe dazu aber bisher weder im Windows Client noch im Development Environment etwas dazu gefunden. Der Umweg über FBKs fällt ja leider weg. :-(

FG
Thomas
Zuletzt geändert von ThomasFerstl am 27. November 2014 15:32, insgesamt 1-mal geändert.

Re: Mandanten zwischen versch. Datenbanken kopieren

27. November 2014 15:19

Hallo Thomas,

dafür gibt es im RTC und in der Powershell Kommandos: Import-NavData, Export-NavData. Ob es wirklich funktioniert ist eine andere Sache. Mehr dazu z.B. hier: http://blogs.msdn.com/b/nav/archive/201 ... -2015.aspx

LG Jens

Re: Mandanten zwischen versch. Datenbanken kopieren

27. November 2014 15:21

http://blogs.msdn.com/b/nav/archive/201 ... -2015.aspx

Im deutschen NAV 2015 ist das "In Datendatei exportieren" bzw. "Aus einer Datendatei importieren"

Gruß, Fiddi

Re: Mandanten zwischen versch. Datenbanken kopieren

27. November 2014 15:28

Genau sowas hab ich gesucht! :-D

Danke für den Link!

LG
Thomas

Re: [gelöst] Mandanten zwischen versch. Datenbanken kopieren

27. November 2014 15:47

Gibt es unter "Abteilungen/Verwaltung/IT-Verwaltung/Allgemein/Aufgaben/" keine Menüpunkte "Export To a Data File" und "Import from Data File"? Es ist die gute alte(=neue) FBK-Sicherung im Format .navdata
zu spät! :-D

Re: [gelöst] Mandanten zwischen versch. Datenbanken kopieren

27. November 2014 15:54

Jupiter hat geschrieben:Gibt es unter "Abteilungen/Verwaltung/IT-Verwaltung/Allgemein/Aufgaben/" keine Menüpunkte "Export To a Data File" und "Import from Data File"?


Nicht, dass sie mir vorher aufgefallen wären ... :-?

Re: [gelöst] Mandanten zwischen versch. Datenbanken kopieren

27. November 2014 16:57

Jupiter hat geschrieben: Es ist die gute alte(=neue) FBK-Sicherung im Format .navdata

Das ist es leider nicht. Die Schemata müssen in beiden Datenbanken im Gegensatz zur alten FBK komplett identisch sein, sonst geht damit gar nichts, wie hier schon festgestellt.

Re: [gelöst] Mandanten zwischen versch. Datenbanken kopieren

28. November 2014 10:52

Wenn man die darunterliegenden Kommentare zu dem oben genannten BLOG durchliest, dann sieht man auch wie dieses neue Feature Anklang findet. :wink:

mfg,
winfy

Re: [gelöst] Mandanten zwischen versch. Datenbanken kopieren

28. November 2014 11:31

Eine Frage hätte ich dann aber doch noch:

Ich versuche eine Kopie der Cronus-Datenbank zu erstellen. Dazu lege ich eine neue Datenbank über das Development Environment an und versuche dann über das cmdlet "Import-NavData" das "Fullbackup" der Cronus-DB einzulesen (Alle Mandanten, Global Data, Application Data, Application). Ich scheitere aber schon daran, dass ich die Anwendungsobjekte nicht eingelesen bekomme.

import-navdata -databaseserver 'sqlserver' -databasename 'Cronus2' -filepath c:\FOB\Fullbackup.navdata -includeapplication

Als Fehlermeldung bekomme ich den Text "Die Anwendung kann nicht in die Datenbank ... importiert werden. Die Datenbank enthält Microsoft Dynamics NAV-Anwendungsobjekte."

WTF?!? :shock: Das ist eine neue, frische, leere Datenbank, in der es lediglich die Systemtabellen gibt?

Oder bin ich hier komplett auf dem Holzweg? Wie sieht denn der "offiziell" von Microsoft vorgedachte Weg aus?

LG
Thomas

Re: [gelöst] Mandanten zwischen versch. Datenbanken kopieren

28. November 2014 11:49

Hallo Thomas,

eine aus C/SIDE erstellte Datenbank kann nicht als leer angesehen werden, da unter anderem Metadaten und Dynamics NAV Systemtabellen existieren. Das birgt also die Gefahr, dass dabei Daten überschrieben werden, was nicht gewollt ist.

Der vorgesehene Weg ist, direkt auf dem SQL Server eine neue Datenbank zu erzeugen. Per SQL Server Management Studio oder andere Wege (z.B. PowerShell, siehe PowerShell for creating a database).

Re: [gelöst] Mandanten zwischen versch. Datenbanken kopieren

28. November 2014 12:08

Hallo Carsten,

Kann ich denn alternativ auch die aus dem Development Environment erzeugte Datenbank nehmen, per FOB die Objekte aus der Cronus-DB einlesen und danach per Import-Navdata dann eben nur noch Mandanten, GlobalData und ApplicationData einlesen, oder schaffe ich mir damit dann an anderer Stelle Probleme?

Bin da im Moment ziemlich ratlos.

LG
Thomas

Re: [gelöst] Mandanten zwischen versch. Datenbanken kopieren

28. November 2014 14:15

Hallo Thomas,

ich hab's jetzt nicht getestet, aber das sollte, so wie es klingt, funktionieren.

Re: [gelöst] Mandanten zwischen versch. Datenbanken kopieren

1. Dezember 2014 09:16

Kowa hat geschrieben:
Jupiter hat geschrieben: Es ist die gute alte(=neue) FBK-Sicherung im Format .navdata

Das ist es leider nicht. Die Schemata müssen in beiden Datenbanken im Gegensatz zur alten FBK komplett identisch sein, sonst geht damit gar nichts, wie hier schon festgestellt.


? Wo finden wir denn das/die Schema? Haben wir darauf Einfluss?

Re: [gelöst] Mandanten zwischen versch. Datenbanken kopieren

1. Dezember 2014 10:46

Markus Merkl hat geschrieben:? Wo finden wir denn das/die Schema?

Das ist das, was sich in NAV aus der Gesamtheit der Tabellenobjekte ergibt.
Datenbankschema
Es kommt mit der neuen Methode z.B. ein Abbruch,wenn in der Zieldatenbank eine Tabelle mehr oder weniger vorhanden ist, oder in einer Tabelle ein Feld mehr oder weniger vorhanden ist oder eine Feldlänge sich geändert hat.
Das führt im Gegensatz zu früher auch dann zum Abbruch, wenn die Daten diese Tabellen/Felder überhaupt nicht betreffen. Das war bei der FBK anders. Da wurden alle Tabellen und Felder versorgt, für die die FBK Daten hatte und der Rest blieb leer.

Haben wir darauf Einfluss?

Wie im verlinkten Beitrag schon beschrieben: Immer erst den Objektstand zwischen Quell- und Zieldatenbank abgleichen (alle Objekte, weil die Tabellen ja ggf. auch geänderte Funktionen aus anderen Objekte nutzen können) und dann die Daten transportieren.