Import systemu (impsys)

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.

Uwaga
Do ścieżki klas należy dodać klasy instalacji Comarch ERP Enterprise oraz bibliotekę zawierającą odpowiedni sterownik bazy danych.

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.
Uwaga
Nazwa „obszaru” zależy od systemu bazy danych. Oracle nazywa samą instalację „bazą danych”, a „obszar” – „schematem”. W innych systemach baz danych zamiast nazwy „obszar” używana jest nazwa „baza danych”.
  • 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
W poniższych przykładach użyto systemu o nazwie targetSystem.

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.

Przykład
Przykład dla bazy danych Postgres:

// 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.
Przykład
Poniższy przykład wskazuje największe tabele.

Zawartość pliku preferred.tables:

LANGUAGEDEPENDENTDATAARCHIVE

FILECONTENTARCHIVE

MONITORINGDATA

LANGUAGEDEPENDENTTEXTARCHIVE

BLOB_STORAGE

VERSION

INVENTORYTRANSACTION

Czy ten artykuł był pomocny?