Mithilfe des Tools „System importieren“ (impsys) können Sie im Maximalfall ein komplettes System importieren. Voraussetzung ist, dass Sie zuvor ein Quellsystem mithilfe des Tools „System exportieren“ exportiert haben. Das Tool „System exportieren“ erzeugt Dateien, in denen auch Informationen über das Erzeugen von Tabellen und deren Indizes enthalten sind. Das Tool „System importieren“ verwendet diese Dateien, um daraus ein neues System zu erzeugen.
Zielgruppe
- System-Administratoren
- Technische Berater
Beschreibung
Mithilfe des Tools „System importieren“ (impsys) können Tabellen importiert werden, die mit dem Tool „System exportieren“ (expsys) exportiert wurden. Die darin erhalten Informationen ermöglichen das Erzeugen der Tabellen und Indizes auf der Datenbank.
Nur in bereits existierenden Systemen ist möglich, das Tool direkt zu verwenden. Wenn Sie z. B. gerade die Repository-Datenbank importieren, dann können Sie nicht auf die Repository-Daten zugreifen, um den Befehl „impsys“ auszulösen.
Folgende Java-Klasse liefert den Quell-Code:
com.cisag.sys.kernel.sql.ImportSystem
Diese Java-Klasse enthält eine „main“ Methode und kann daher auch direkt aufgerufen werden.
Sie können z. B. eine einzelne OLTP-Datenbank einem System hinzufügen, d. h. Sie führen das Tool auf einem bereits existierenden System aus. In so einem Fall funktioniert dieser Ressourcenname: impsys.
Hinweis:
Sie müssen in den Klassenpfad die Klassen der Comarch-ERP-Enterprise-Installation und eine Library aufnehmen, die den passenden Datenbanktreiber enthält.
Voraussetzungen
- Sie haben ein Quell-System mithilfe des Tools „System exportieren“ exportiert.
- In der Anwendung „Systemcockpit“ ist das Ziel-System inklusive der Datenbanken bereits erfasst.
- Auf dem Datenbanksystem muss ein Datenbankadministrator einen passenden „Bereich“ eingerichtet haben, damit dort die Datenbank und ihre Tabellen erzeugt werden können.
Hinweis:
Wie ein „Bereich“ konkret benannt wird, ist abhängig vom Datenbanksystem. Oracle nennt eine Installation selbst „Datenbank“ und den „Bereich“ ein „Schema“. Auf anderen Datenbanksystemen wird „Datenbank“ anstatt „Bereich“ verwendet.
- Eine Java-Installation ist zugänglich.
- Das Dateisystem der Comarch-ERP-Enterprise-Installation muss zugänglich sein.
- Sie haben eine „properties“-Datei im Quell-Ordner abgelegt oder eine entsprechende Datei per Parameter „params“ angegeben. (siehe Kapitel „Verbindungsinformationen“)
Beispiele
In den folgenden Beispielen wird das System „targetSystem“ verwendet.
Beispiel (Windows, SQL-Server-Datenbank)
C:\java\jdk-11.0.4_11-64\bin\java –cp c:\targetSystem\semiramis\classes;c:\targetSystem\semiramis\lib\sqljdbc42.jar com.cisag.sys.kernel.sql.ImportSystem –d:c:\temp\MySystem
Beispiel (Linux, Postgres-Datenbank)
/opt/java/jdk-11.0.4_11-64/bin/java -cp “/opt/TARGETSYSTEM/semiramis/classes/:/opt/tools/postgresql-9.4.1212.jar” com.cisag.sys.kernel.sql.ImportSystem -d:/temp/MYSYSTEM
Befehl
Nachfolgend finden Sie den Befehl inklusive aller möglichen Parameter.
impsys | -d:<str>
[-blocksize:<int>] [-parallelUpdate:<int>] [-params:<str>] [-preferred:<str>] |
Parameter
Die Parameter des Befehls werden in der folgenden Tabelle erläutert. Die in eckigen Klammern gesetzten Parameter sind optional, die anderen hingegen sind Pflichtparameter. Für einige Parameter kann ein Stern (*) als Platzhalter angegeben werden, um damit alle möglichen Werte ausgeben zu können. Nicht alle Parameter können mehrfach genannt werden, nur die, die folgenden Zusatz an den Parametervariablen aufweisen, sind für die Mehrfachnennung zugelassen: „<str-1> … <str–n>“.
Der Parameter ist vollständig, z. B. –f<str>, und gemäß der Reihenfolge der Verwendung im Befehl aufzulisten.
Parameter | Erläuterung |
-d:<str> | Legen Sie mit diesem Parameter den Quell-Ordner fest. Darin müssen die zuvor mit dem Tool „System exportieren“ erzeugten Dateien liegen.
Wenn Sie die Leistung des Tools mit einer Siehe auch dieses Kapitel: Leistungssteigerung |
[-blocksize:<int>] | Die Daten einer Tabelle werden nicht alle auf einmal, sondern blockweise geschrieben. Nachdem die festgelegte Blockgröße (blocksize) erreicht ist, werden diese auf die Datenbank geschrieben und danach mit einem neuen Block und entsprechender Zählung begonnen. Für diesen Parameter wird eine Blockgröße von 1000 vorgeschlagen. Sie können diesen Wert ändern. |
[-parallelUpdate:<int>] | Für den Import werden mehrere Threads genutzt, die parallel ausgeführt werden. Ein Thread bearbeitet immer genau eine Datenbanktabelle. Für diesen Parameter wird eine Anzahl von 4 Threads vorgeschlagen. Sie können diesen Wert ändern. |
[-params:<str>] | Sie können die Verbindungsinformationen mithilfe des Parameters „params“ angeben. Der Inhalt der referenzierten Datei muss der im Kapitel „Verbindungsinformationen“ beschriebenen Datei entsprechen. |
[-preferred:<str>] | Sie können die bevorzugt zu importierenden Tabellen mit dem Parameter „preferred“ festlegen. Der Inhalt der referenzierten Datei muss der im Kapitel „Leistungssteigerung“ beschriebenen Datei entsprechen. |
Verbindungsinformationen
Vor dem Datenbankenimport muss folgende Datei im Quell-Ordner abgelegt werden:
connection.properties
Der Quell-Ordner oder die als Quelle verwendete „zip“-Datei wird mit dem Befehl-Parameter –d festgelegt, z. B. c:\temp\MySystem oder c:\temp\MySystemExport.zip.
Die abzulegende Datei kann folgende Parameter enthalten:
- databases
Mit dem Parameter „databases“ werden die gewünschten Ziel-Datenbanken spezifiziert. Da mehrere Datenbanken angegeben werden können, wird der eigentlichen Property der Datenbank immer zusätzlich der Ziel-Datenbankname als Präfix vorangestellt.
- source
Mit dem Parameter „source“ wird der entsprechende Unterordner angegeben.
- ContentType
Inhaltstyp (Konfiguration, Repository, OLTP, OLAP)
- Type
Datenbanktyp (Oracle, DB2 UDB, …)
- Driver
Datenbanktreiber
- DriverAccessPath
Zugriffspfad
Der Inhaltstyp, der Zugriffspfad und der Datenbanktreiber entsprechen den Einträgen in der Anwendung „Systemcockpit“.
Beispiel für eine Postgres-Datenbank:
// databases, Namen der gewünschten Datenbanken. In der Folge als Präfix verwendet.
// source: Quell-(Unter)-Ordner für die exportierten Daten.
// content type:1=CONFIGURATION, 2=REPOSITORY, 3=OLTP, 4=OLAP
// Comarch ERP Enterprise database type: 1=Oracle 8i (deprecated), 2=DB2 UDB for iSeries, 4=Generisch, 5=Oracle 9i, 6=SQL-Server 2000, 7=DB2 UDB 8.1, 9 postgresql
// JDBC driver type: 1=Oracle, 2=DB2 UDB for iSeries (remote), 3=DB2 UDB for iSeries (native), 4=DB2 UDB (app), 5=SQL-Server, 6=Sprinta 2000 / SQL-Server, 7=DB2 UDB (net), 13 Postgres
databases:SYSTEM01RP, SYSTEM0110
SYSTEM0110.source:OLTP_MYSYSTEMOLTP1
SYSTEM0110.ContentType:3
SYSTEM0110.Type:9
SYSTEM0110.Driver:13
SYSTEM0110.DriverAccessPath:jdbc:postgresql://sysdev01.cisag.com:5432/SYSTEM0110
SYSTEM01RP.source:REPOSITORY_MYSYSTEMRP
SYSTEM01RP.ContentType:2
SYSTEM01RP.Type:9
SYSTEM01RP.Driver:13
SYSTEM01RP.DriverAccessPath:jdbc:postgresql://sysdev01.cisag.com:5432/SYSTEM01RP
Optionale Parameter
Folgende Parameter entsprechen den Werten in der Anwendung „Systemcockpit“ (Typ „Datenbank“) für Benutzer, Schema und Kennwort. Weitere Informationen zu diesen Daten finden Sie in dieser Dokumentation: Typ „Datenbank“
Beispielhaft wird der Datenbankname „System01RP“ verwendet.
- User:
Angabe der Benutzerkennung des Datenbank-Management-System für den Zugriff auf die Datenbank. Wenn Sie den Wert nicht angeben, dann wird stattdessen der Datenbankname verwendet.
- Schema:
Angabe des vom genutzten Datenbank-Management-System abhängigen Schemas. Wenn Sie den Wert nicht angeben, dann wird stattdessen der Benutzer (User) verwendet.
- Password:
Angabe des Kennworts zur Benutzerkennung des Datenbank-Management-Systems für den Zugriff auf die Datenbank. Wenn Sie den Wert nicht angeben, dann wird stattdessen der Benutzer (User) verwendet.
Leistungssteigerung
Sie können in Abhängigkeit der Gegebenheiten die Leistung des Importierens steigern. Dazu stellen wir Ihnen folgende Informationen bereit:
Beim Import der Datenbanken werden mehrere Threads genutzt. Threads werden parallel ausgeführt und jeder importiert genau eine Datenbanktabelle. Sobald ein Thread mit einer Tabelle fertig ist, übernimmt dieser automatisch die nächste nicht in Bearbeitung befindliche Datenbanktabelle bis alle Tabellen importiert sind.
Datenbanktabellen sind unterschiedlich groß. Je größer die Tabelle, desto länger dauert der Import. In ungünstigen Fällen wird eine sehr große Tabelle erst zum Schluss bearbeitet. Dann könnte ein Thread noch sehr viel Zeit benötigen, während alle anderen Threads bereits mit der Bearbeitung fertig sind. Dadurch wird der Importvorgang insgesamt unnötig verlängert.
Um diesen Umstand zu vermeiden und damit die Leistung des Imports zu steigern, können Sie die Datei „preferred.tables“ im Ordner ablegen, den Sie im ausführenden Befehl angegeben haben. Alternativ können Sie eine entsprechende Datei mit dem Parameter „preferred“ angeben. Mithilfe dieser Datei können Sie festlegen, dass die darin aufgeführten Dateien zuerst importiert werden. Die Datei sollte demnach die Namen der größten Tabellen auf der Datenbank enthalten.
Das folgende Beispiel gibt einen Hinweis über die größten Tabellen.
Inhalt der Datei „preferred.tables“:
LANGUAGEDEPENDENTDATAARCHIVE
FILECONTENTARCHIVE
MONITORINGDATA
LANGUAGEDEPENDENTTEXTARCHIVE
BLOB_STORAGE
VERSION
INVENTORYTRANSACTION