Wprowadzenie
Za pomocą narzędzia impsys można zaimportować cały system. Warunkiem jest wcześniejsze wyeksportowanie systemu źródłowego za pomocą narzędzia expsys. Narzędzie expsys tworzy pliki, które zawierają również informacje o tworzeniu tabel i ich indeksów. Narzędzie impsys wykorzystuje te pliki do utworzenia nowego systemu.
Grupa docelowa
- Administratorzy systemu
- Konsultanci techniczni
Opis
Narzędzia można używać w istniejących już systemach. Na przykład, jeśli aktualnie importowana jest baza repozytorium, nie można uzyskać dostępu do danych repozytorium, aby uruchomić polecenie impsys.
Kod źródłowy dostarcza następująca klasa Java:
com.cisag.sys.kernel.sql.ImportSystem
Ta klasa Java zawiera metodę main
, dlatego może być również uruchamiana bezpośrednio.
Istnieje możliwość m.in. dodania pojedynczej bazy danych OLTP do systemu, tzn. można uruchomić narzędzie w już istniejącym systemie. W takim przypadku działa następująca nazwa zasobu: impsys.
Wymagania wstępne
- System źródłowy został wyeksportowany za pomocą narzędzia expsys
- W aplikacji Panel System system docelowy, wraz z odpowiednimi bazami danych, został już zarejestrowany.
- Administrator bazy danych musi skonfigurować odpowiedni „obszar” w systemie bazy danych, aby można było w nim utworzyć bazę danych i jej tabele.
- Dostępna jest instalacja Java.
-
Dostępny jest system plików instalacji Comarch ERP Enterprise.
-
W katalogu źródłowym znajduje się plik typu properties lub odpowiedni plik został wskazany przez parametr params (szczegóły można znaleźć w rozdziale Informacje o połączeniu).
Przykład (Windows, baza danych serwera SQL) 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 Przykład (Linux, baza danych Postgres) /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
Polecenie
Poniżej znajdują się polecenia wraz ze wszystkimi możliwymi parametrami.
impsys | -d:<str>[-blocksize:<int>]
[-parallelUpdate:<int>] [-params:<str>] [-preferred:<str>] |
Parametry
Parametry polecenia zostały wyjaśnione w poniższej tabeli. Parametry w nawiasach kwadratowych są opcjonalne, podczas gdy pozostałe są parametrami obowiązkowymi. Gwiazdka (*) może być określona jako symbol zastępczy dla niektórych parametrów, aby móc wyświetlić wszystkie możliwe wartości. Nie wszystkie parametry mogą być określone wielokrotnie; tylko te z następującym dodatkiem do zmiennych parametrów są dozwolone do wielokrotnego określenia: <str-1> … <str-n>.
Parametr musi być wymieniony w całości, np. -f<str>, i w kolejności, w jakiej jest używany w poleceniu.
Parametr | Opis |
-d:<str> | Za pomocą tego parametru określa się katalog źródłowy, w którym muszą znajdować się wcześniej wygenerowane pliki za pomocą narzędzia expsys.
Aby zwiększyć wydajność działania narzędzia za pomocą pliku preferred.tables, należy umieścić ten plik w podanym folderze przed rozpoczęciem importu. Zobaczyć również rozdział: Zwiększenie wydajności. |
[-blocksize:<int>] | Dane tabeli nie są zapisywane jednorazowo, lecz blokami. Po osiągnięciu ustalonego rozmiaru bloku (blocksize), dane są zapisywane do bazy danych, a następnie rozpoczynany jest nowy blok z odpowiednim licznikiem. Dla tego parametru zalecana jest wielkość bloku wynosząca 1000.Wartość tę można zmienić. |
[ParallelUpdate:<int>] | Do importu używanych jest kilka wątków, które są wykonywane równolegle. Jeden wątek zawsze przetwarza dokładnie jedną tabelę bazy danych. Dla tego parametru sugerowana jest liczba 4 wątków.Wartość tę można zmienić. |
[-params:<str>] | Informacje o połączeniu można podać za pomocą parametru params. Zawartość wskazanego pliku musi odpowiadać formatowi opisanemu w rozdziale Informacje o połączeniu. |
[<str>] | Preferowane do importu tabele można określić za pomocą parametru preferred. Zawartość wskazanego pliku musi odpowiadać formatowi opisanemu w rozdziale Zwiększenie wydajności. |
Informacje o połączeniu
Przed zaimportowaniem bazy danych, poniższy plik musi zostać zapisany w folderze źródłowym
connection.properties
Folder źródłowy lub plik zip używany jako źródło jest określany za pomocą parametru polecenia -d, np. c:\temp\MySystem lub c:\temp\MySystemExport.zip.
Plik do wyeksportowania może zawierać następujące parametry:
- databases – za pomocą parametru databases określa się docelowe bazy danych. Ponieważ można wskazać wiele baz danych, do właściwości każdej z nich zawsze dodawany jest prefiks z nazwą docelowej bazy danych.
- source – parametr source służy do określenia odpowiedniego podfolderu.
- ContentType – typ zawartości (konfiguracja, repozytorium, OLTP, OLAP)
- Type – typ bazy danych (Oracle, DB2 UDB, …)
- Driver – sterownik bazy danych
- DriverAccessPath – ścieżka dostępu
Typ zawartości, ścieżka dostępu i sterownik bazy danych odpowiadają wpisom w aplikacji Panel System.
// bazy danych, nazwy żądanych baz danych. Używany jako przedrostek w następujących przypadkach.
// source: folder źródłowy (podrzędny) dla eksportowanych danych.
// typ zawartości:1=CONFIGURATION, 2=REPOSITORY, 3=OLTP, 4=OLAP
// typ bazy danych Comarch ERP Enterprise: 1=Oracle 8i (deprecated), 2=DB2 UDB for iSeries, 4=Generic, 5=Oracle 9i, 6=SQL-Server 2000, 7=DB2 UDB 8.1, 9 postgresql
// Typ sterownika JDBC: 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
bazy danych: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
Parametry opcjonalne
Następujące parametry odpowiadają wartościom z aplikacji Panel System (typ Baza danych) dla użytkownika, schematu i hasła. Dodatkowe informacje dotyczące tych danych znajdują się w artykule Panel System: Baza danych.
Używana jest nazwa bazy danych System01RP.
- System01RP.User – określa identyfikator użytkownika systemu zarządzania bazą danych w celu uzyskania dostępu do bazy danych. Jeśli wartość nie zostanie podana, zamiast tego zostanie użyta nazwa bazy danych.
- System01RP.Schema – określa schemat zależny od używanego systemu zarządzania bazą danych. Jeśli wartość nie zostanie podana, zamiast tego zostanie użyty użytkownik.
- System01RP.Password – określa hasła dla identyfikatora użytkownika systemu zarządzania bazą danych w celu uzyskania dostępu do bazy danych. Jeśli wartość nie zostanie podana, zamiast niej zostanie użyty użytkownik.
Zwiększenie wydajności
W zależności od przypadku można zwiększyć wydajność importu. W tym celu udostępniane są następujące informacje:
- Podczas importu baz danych wykorzystywane są wiele wątków. Wątki są wykonywane równolegle i każdy z nich importuje dokładnie jedną tabelę bazy danych. Gdy wątek zakończy import jednej tabeli, automatycznie przejmuje kolejną tabelę, która nie jest jeszcze przetwarzana, aż do momentu zaimportowania wszystkich tabel.
- Tabele bazy danych różnią się wielkością. Im większa tabela, tym dłużej trwa import. W niektórych przypadkach bardzo duża tabela jest przetwarzana dopiero na końcu. W takim przypadku jeden wątek może nadal potrzebować więcej czasu, podczas gdy wszystkie inne wątki już zakończyły przetwarzanie. To niepotrzebnie wydłuża cały proces importu.
- Aby tego uniknąć, a tym samym zwiększyć wydajność importu, można zapisać plik preferred.tables w folderze określonym w poleceniu wykonania. Alternatywnie, można określić odpowiedni plik z parametrem preferred. Można użyć tego pliku, aby określić, które pliki są importowane jako pierwsze. Plik powinien zatem zawierać nazwy największych tabel w bazie danych.
Zawartość pliku preferred.tables:
LANGUAGEDEPENDENTDATAARCHIVE
FILECONTENTARCHIVE
MONITORINGDATA
LANGUAGEDEPENDENTTEXTARCHIVE
BLOB_STORAGE
VERSION
INVENTORYTRANSACTION