5. Verarbeiten von automatisch inkrementierenden Feldern in Datenbanktabellen,
die geladen werden müssen, d. h. die ixf-Datendatei der Tabelle verfügt über automatisch inkrementierende Spaltenwerte. Sie können dem Ladebefehl die folgenden Parameter hinzufügen Steuern Sie die automatisch inkrementierten Feldwerte:
1) Durch Identityignore geändert: Die geladene Datendatei enthält automatisch inkrementierte Feldwerte, und die automatisch inkrementierten Feldwerte in der Datendatei werden beim Laden ignoriert.
2) Geändert durch „identitymissing“: Es gibt keinen automatisch inkrementierenden Feldwert in der geladenen Datendatei, und der automatisch inkrementierte Feldwert wird beim Laden automatisch generiert.
3). die geladene Datendatei, und die Datendatei wird beim Laden verwendet. Der Feldwert wird automatisch erhöht.
Um die Daten in der Tabelle mit den Feldern für die automatische Inkrementierung in der Zieldatenbank mit den Daten in der Quelldatenbank konsistent zu machen, verwenden wir im Beispiel dieses Artikels den durch Identityoverride geänderten Parameter und verwenden das Feld für die automatische Inkrementierung Werte in der Datendatei beim Importieren von Daten. Der Leser kann je nach Situation geeignete Steuerparameter auswählen.
Durchsuchen Sie zunächst die Datei srcdb1_tables.ddl nach allen Tabellennamen, die automatisch inkrementierende Felder enthalten (Tabellen, die Felder vom Typ GENERATED ALWAYS AS IDENTITY enthalten), und fügen Sie dann das durch die Identityoverride-Anweisung geänderte Fragment in diese Tabellen mit automatisch inkrementierenden Feldern in srcdb1_load.sql ein. in der entsprechenden Ladebefehlszeile.
Listing 8. Verarbeitung von automatisch hinzugefügten Feldern im Ladeskript
db2 Load from test.ixf von ixf, geändert durch Identityoverride-Einfügung in TEST
6. Führen Sie das Exportskript aus,
um die Daten aller Tabellen zu exportieren.
# db2 -tvf
Die von srcdb1_export.sql exportierten Tabellendaten werden im aktuellen Pfad im ixf-Format gespeichert.
7. Skripte und Datendateien speichern
Kopieren Sie alle DDL-Skripte und Datendateien *.ixf auf die Site, auf der sich das Zielsystem befindet.
Betrieb auf LINUX-System
1. Erstellen Sie die Instanz SRCDB1 über den Befehlszeilenprozessor (CLP):
# db2icrt SRCDB1
2. Verwenden Sie den Befehl CREATE DATABASE, um die Datenbank SRCDB1 zu erstellen, den erforderlichen Tabellenbereich zu erstellen und die erforderlichen Datenbankparameter zu konfigurieren.
# db2 Datenbank SRCDB1 erstellen
3. Stellen Sie eine Verbindung zur Datenbank SRCDB1 her und führen Sie das Skript srcdb1_tables.ddl aus, um Pufferpools, Tabellenbereiche, UDFs, Tabellen und Datenbankobjekte wie Index, Sequenz und Ansichten zu erstellen.
# db2 verbindet sich mit srcdb1
# db2 -tvf srcdb1_tables.ddl
4. Geben Sie das Verzeichnis ein, in dem die .ixf-Datendatei abgelegt ist, und führen Sie den folgenden Befehl aus, um Tabellendaten zu importieren.
# db2 -tvf srcdb1_load.sql
5. Verwenden Sie die Skriptdateien srcdb1_foriegnkeys.ddl, srcdb1_triggers.ddl, srcdb1_procedures.ddl, um Fremdschlüsseleinschränkungen, Trigger und gespeicherte Prozeduren zu erstellen.
# db2 -tvf srcdb1_foriegnkeys.ddl
# db2 -tvf srcdb1_triggers.ddl
# db2 -tvf srcdb1_procedures.ddl
Nach erfolgreichem Abschluss der oben genannten Schritte ist die Datenbankmigrationsarbeit im Wesentlichen abgeschlossen.
Installation und Konfiguration des Apache-Servers und PHP
Installation und Konfiguration des Apache-Servers
Der Apache-HTTP-Server ist eine modulare Software, und Administratoren können Funktionen erweitern oder verringern, indem sie im Server enthaltene Module auswählen. Module können zur Kompilierzeit statisch in die httpd-Binärdatei eingebunden werden oder unabhängig von der httpd-Binärdatei in dynamische gemeinsam genutzte Objekte (DSO) kompiliert werden. DSO-Module können zusammen mit dem Server oder separat mit den Apache-Erweiterungstools (apxs) kompiliert werden. Dynamisches Laden ist flexibler als statisches Laden. Um die dynamische Ladefunktion nutzen zu können, muss der Apache-Server als dynamisches Shared Object (DSO, Dynamic Shared Object) kompiliert werden. Die Unterstützung von Apache für DSO basiert auf einem Modul namens mod_so. Um dynamisches Laden zu unterstützen, muss dieses Modul vorab statisch in den Kernel kompiliert werden. Daher können Sie das Modul mod_so verwenden, um zu erkennen, ob der installierte Apache DSO unterstützt:
Listing 9. Erkennung des Moduls mod_so
# $APACHEHOME/bin/httpd –l
In Modulen kompiliert:
core.c
prefork.c
http_core.c
mod_so.c
Wenn mod_so.c im aufgelisteten Modulnamen vorhanden ist, bedeutet dies, dass der installierte Apache DSO bereits unterstützt. Andernfalls muss Apache neu kompiliert werden. Der Installations- und Konfigurationsprozess von Apache ist wie folgt sehr einfach:
1. Laden Sie httpd-2.0.54.tar.gz ( http://httpd.apache.org/ ) herunter und extrahieren Sie es in das angegebene Verzeichnis
# tar zxvf httpd-2.0.54.tar.gz && cd httpd-2.0.54
2 . Kompilieren und installieren Sie Apache
# ./configure --prefix=/usr/local/apache2 --enable-module=so
-- prefix gibt den Installationspfad von Apache an
--enable-module=so kompilieren Sie das so-Modul (mod_so) statisch Der Apache-Server-Kernel soll den DSO-Modus unterstützen
# make && make install
3. Apache starten
# ln -s /usr/local/apache2/bin/apachectl /sbin/apachectl
# apachectlPHP-Installations- und Konfigurationsprozess
während der Installation und Konfiguration von PHP
starten
Es gibt zwei Aspekte, auf die geachtet werden muss: Der erste ist die Kombination von PHP und dem Apache-HTTP-Server und der zweite ist die Verbindung zwischen PHP und der DB2-Datenquelle.
Bei der Installation von PHP in der Apache-Umgebung stehen drei Installationsmodi zur Auswahl: statisches Modul, dynamisches Modul (DSO) und CGI. Es wird empfohlen, im DSO-Modus zu installieren. Die Wartung und Aktualisierung dieses Modus ist relativ einfach. Neue Funktionsmodule können je nach Bedarf dynamisch hinzugefügt werden, ohne Apache neu zu kompilieren. Dies führt natürlich auch zu einer gewissen Verringerung der Betriebseffizienz. Der Apache-Server wird beim Start etwa 20 % langsamer sein.
Es gibt auch drei Möglichkeiten für PHP, eine Verbindung zu DB2-Datenquellen herzustellen: einheitlicher ODBC-Treiber, IBM_DB2 und PDO (PHP-Datenobjekt).
◆Der einheitliche ODBC-Treiber ist eines der frühesten Erweiterungsmodule für PHP für den Zugriff auf Datenbanken. Ab DB2 v7.2 unterstützt der einheitliche ODBC-Treiber den Zugriff darauf. Der einheitliche ODBC-Treiber bietet eine einheitliche Datenzugriffsschnittstelle für alle Datenbanken, die ODBC unterstützen. Um die Allgemeingültigkeit der Schnittstelle sicherzustellen, nimmt der einheitliche ODBC-Treiber keine spezifischen Optimierungen für verschiedene Datenbanktypen vor.
◆IBM_DB2 ist ein von IBM entwickeltes und gepflegtes Erweiterungsmodul zur Interaktion mit DB2-Datenquellen. Es entspricht der Open-Source-Vereinbarung. Für Anwendungen, die auf DB2 UDB und PHP 4.x basieren, ist IBM_DB2 die beste Wahl, da es für DB2 UDB optimiert ist und einige Kompatibilitätsprobleme vermeidet, die bei Verwendung des einheitlichen ODBC-Treibers auftreten können. Allerdings unterstützt IBM_DB2 nur DB2 v8.2.2 oder höher.
◆PDO ist eine neue Datenbankzugriffsmethode, die in PHP 5.x unterstützt wird. Da in diesem Artikel sowohl die Versionen der Quelldatenbank als auch der Zieldatenbank DB2 v8.1 sind und die Quellumgebung den einheitlichen ODBC-Treiber verwendet, wird zur Wahrung der Konsistenz der Umgebungskonfiguration weiterhin der einheitliche ODBC-Treiber ausgewählt als Zugriffsschnittstelle zwischen PHP und der Datenquelle.
Der Installations- und Konfigurationsprozess von PHP ist wie folgt:
1. Laden Sie php-4.4.4.tar.gz ( http://www.php.net/ ) herunter und entpacken Sie es.
# tar zxvf php-4.4.4.tar.gz
# cd php-4.4.4
2. PHP-Quellcode konfigurieren und kompilieren
# ./configure --prefix=/usr/local/php --with-apxs2=/usr/sbin/apxs --without-mysql --with-ibm-db2=/home/reportdb/ sqllib
--prefix gibt den Installationspfad von PHP
an --with-apxs2 gibt den Pfad des Apxs-Programms an (apxs ist ein Perl-Skript, das das PHP-Modul ohne den Quellcode von Apache in eine DSO-Datei kompilieren kann)
--with- ibm-db2 gibt den einheitlichen ODBC-Treiber als Zugriffsschnittstelle zwischen PHP und Datenquelle an und gibt das Installationsverzeichnis der DB2-Instanz an.
--without-mysql Ignoriert die Standardinstallationskonfiguration der MySQL-Datenbank
#cp php.ini-dist /usr/local/lib
Kopieren Sie den php.ini-dist in der PHP-Installationsdatei nach /usr/local/lib als PHP-Konfiguration dokumentieren.
# make && make install
# cp php.ini-dist /usr/local/lib/php.ini
3. Bearbeiten Sie die Datei /usr/local/apache2/conf/httpd.conf und nehmen Sie die folgenden Änderungen vor:
Legen Sie das Home-Verzeichnis der HTML-Datei fest: das Home-Verzeichnis, in dem die für die Website erforderlichen Webdateien gespeichert
werden /www/“
legt den Standard für Apache fest. Die Reihenfolge der Dateinamen: Apache sucht im aktuellen Pfad in der Reihenfolge von vorne nach hinten nach der unterstützten Standard-Homepage-Datei
DirectoryIndex index.php index.html.var index.cgi index.html
.Fügen Sie das Suffix der PHP-Interpretationsdatei hinzu: für alle Anforderungen Für von PHP interpretierte Dateitypen müssen Sie das Suffix zum AddType-Konfigurationselement
AddType application/x-httpd-php .php .inc
hinzufügen, um das PHP-Modul zu laden: Laden Sie die Bibliothek libphp4 .so im Modulverzeichnis module und fügen Sie den Modulstrukturnamen php4_module zu
LoadModule php4_module module/libphp4.so
in der Liste der aktiven Module hinzu4. Bearbeiten Sie die Konfigurationsdatei /usr/local/apache2/bin/apachectl:
Um die Konnektivität mit der DB2-Datenbank sicherzustellen, müssen Sie beim Starten des Apache-Dienstes gleichzeitig die DB2-Client-Instanzumgebung initialisieren. Beim Erstellen einer DB2-Instanz generiert DB2 automatisch ein Shell-Skript, um die erforderliche DB2-Instanzumgebung zu initialisieren:
if test -f /home/reportdb/sqllib/db2profile
,
then
5. Starten Sie dann den Apache-Server neu, um die oben genannten Konfigurationsänderungen zu übernehmen.
# apachectl restart
6. Schreiben Sie eine PHP-Testdatei test.php mit folgendem Inhalt:
echo phpinfo();
?>
Speichern Sie es im Hauptverzeichnis der Apache-HTML-Datei /home/web/www und greifen Sie über den Browser auf die Webseite zu. Wenn normal darauf zugegriffen werden kann (wie in der Abbildung unten gezeigt), ist die Konfigurationsarbeit abgeschlossen.
Fazit:
Dieser Artikel behandelt hauptsächlich den plattformübergreifenden Migrationsprozess eines auf PHP und DB2 UDB basierenden Anwendungssystems. Er beschreibt detailliert die plattformübergreifende Migration des DB2-Datenbanksystems sowie den Installations- und Konfigurationsprozess des Apache-Servers und des PHP-Anwendungssystems. Basierend auf praktischen Erfahrungen wird eine praktikable Lösung für das plattformübergreifende Migrationsproblem des DB2-Datenbanksystems bereitgestellt. Dieser Artikel enthält auch eine detaillierte Beschreibung und entsprechende Lösungen für Probleme, die während des Transplantationsprozesses auftreten können. Obwohl dieser Artikel nur den Transplantationsprozess des Anwendungssystems vom AIX-System zum LINUX-System behandelt, können Leser auch auf den spezifischen Transplantationsprozess verweisen und ihn auf andere Plattformen anwenden.