5. Traitement des champs à incrémentation automatique dans les tables de base de données.
Pour les tables contenant des champs à incrémentation automatique qui doivent être chargées, c'est-à-dire que le fichier de données ixf de la table a des valeurs de colonne à incrémentation automatique, vous pouvez ajouter les paramètres suivants à la commande de chargement pour contrôler les valeurs des champs d'auto-incrémentation :
1) modifié par Identityignore : il y a des valeurs de champ d'auto-incrémentation dans le fichier de données chargé, et les valeurs de champ d'auto-incrémentation dans le fichier de données sont ignorées lors du chargement ;
2) Modifié par IdentityMissing : Il n'y a pas de valeur de champ d'auto-incrémentation dans le fichier de données chargé, et la valeur du champ d'auto-incrémentation est automatiquement générée lors du chargement.
3). le fichier de données chargé, et le fichier de données est utilisé lors du chargement. La valeur du champ d'incrémentation automatique dans .
Afin de rendre les données de la table contenant les champs d'auto-incrémentation de la base de données cible cohérentes avec les données de la base de données source, nous choisissons d'utiliser le paramètre modifié par identitéoverride dans l'exemple de cet article, et d'utiliser le champ d'auto-incrémentation valeurs dans le fichier de données lors de l'importation de données. Les lecteurs peuvent choisir les paramètres de contrôle appropriés en fonction de différentes situations.
Tout d’abord, recherchez dans le fichier srcdb1_tables.ddl tous les noms de tables contenant des champs à incrémentation automatique (tables contenant des champs GENERATED ALWAYS AS IDENTITY), puis insérez le fragment d’instruction modifié par Identityoverride dans ces tables avec des champs à incrémentation automatique dans srcdb1_load.sql. dans la ligne de commande de chargement correspondante.
Listing 8. Traitement des champs ajoutés automatiquement dans le script de chargement
db2 à partir de test.ixf de ixf modifié par l'insertion de remplacement d'identité dans TEST
6. Exécutez le script d'exportation
pour exporter les données de toutes les tables.
# db2 -tvf
Les données de la table exportées par srcdb1_export.sql sont stockées dans le chemin actuel au format ixf.
7. Enregistrement des scripts et des fichiers de données
Copiez tous les scripts DDL et fichiers de données *.ixf sur le site où se trouve le système cible.
Fonctionnement sur système LINUX
1. Créez l'instance SRCDB1 via le processeur de ligne de commande (CLP) :
# db2icrt SRCDB1
2. Utilisez la commande CREATE DATABASE pour créer la base de données SRCDB1, créer l'espace table nécessaire et configurer les paramètres de base de données nécessaires.
# db2 crée la base de données SRCDB1
3. Connectez-vous à la base de données SRCDB1 et exécutez le script srcdb1_tables.ddl pour créer des pools de mémoire tampon, des espaces table, des UDF, des tables et des objets de base de données tels que des index, des séquences et des vues.
# db2 se connecte à srcdb1
# db2 -tvf srcdb1_tables.ddl
4. Entrez le répertoire où est placé le fichier de données .ixf et exécutez la commande suivante pour importer les données de la table.
# db2 -tvf srcdb1_load.sql
5. Utilisez les fichiers de script srcdb1_foriegnkeys.ddl, srcdb1_triggers.ddl, srcdb1_procedures.ddl pour créer des contraintes de clé étrangère, des déclencheurs et des procédures stockées.
# db2 -tvf srcdb1_foriegnkeys.ddl
# db2 -tvf srcdb1_triggers.ddl
# db2 -tvf srcdb1_procedures.ddl
Après avoir terminé avec succès les étapes ci-dessus, le travail de migration de la base de données est pratiquement terminé.
Installation et configuration du serveur Apache et php
Installation et configuration du serveur Apache
Le serveur HTTP Apache est un logiciel modulaire, et les administrateurs peuvent augmenter ou diminuer les fonctions en sélectionnant les modules inclus dans le serveur. Les modules peuvent être inclus statiquement dans le binaire httpd au moment de la compilation, ou ils peuvent être compilés en objets partagés dynamiques (DSO) indépendants du binaire httpd. Les modules DSO peuvent être compilés avec le serveur ou séparément à l'aide des outils d'extension Apache (apxs). Le chargement dynamique est plus flexible que le chargement statique. Pour utiliser la fonctionnalité de chargement dynamique, le serveur Apache doit être compilé en objet partagé dynamique (DSO, Dynamic Shared Object). La prise en charge par Apache de DSO est basée sur un module appelé mod_so. Afin de prendre en charge le chargement dynamique, ce module doit être compilé statiquement dans le noyau au préalable. Par conséquent, vous pouvez utiliser le module mod_so pour détecter si Apache installé prend en charge DSO :
Listing 9. Détection du module mod_so
# $APACHEHOME/bin/httpd –l
Compilé en modules :
core.c
prefork.c
http_core.c
mod_so.c
S'il y a mod_so.c dans le nom du module répertorié, cela signifie que l'Apache installé prend déjà en charge DSO, sinon Apache doit être recompilé. Le processus d'installation et de configuration d'Apache est très simple, comme suit :
1. Téléchargez httpd-2.0.54.tar.gz ( http://httpd.apache.org/ ) et extrayez-le dans le répertoire spécifié
# tar zxvf httpd-2.0.54.tar.gz && cd httpd-2.0.54
2 . Compilez et installez Apache
# ./configure --prefix=/usr/local/apache2 --enable-module=so
-- prefix spécifie le chemin d'installation d'apache
--enable-module=so compilez statiquement le module so (mod_so) dans le noyau du serveur Apache pour prendre en charge le mode DSO
# make && make install
3. Démarrez Apache
# ln -s /usr/local/apache2/bin/apachectl /sbin/apachectl
# apachectl démarre
le processus d'installation et de configuration de php
pendant l'installation et la configuration de php , il y a deux aspects auxquels il faut prêter attention, le premier est la combinaison de php et du serveur http apache, et le second est la connexion entre php et la source de données db2.
Lors de l'installation de PHP dans l'environnement Apache, vous avez le choix entre trois modes d'installation : module statique, module dynamique (DSO) et CGI. Il est recommandé d'installer en mode DSO. La maintenance et la mise à niveau de ce mode sont relativement simples. De nouveaux modules fonctionnels peuvent être ajoutés dynamiquement en fonction des besoins sans recompiler Apache. Bien entendu, cela entraînera également une diminution de l’efficacité opérationnelle du serveur Apache qui sera environ 20 % plus lent au démarrage.
Il existe également trois manières pour PHP de se connecter aux sources de données DB2 : pilote ODBC unifié, IBM_DB2 et PDO (objet de données php).
◆Le pilote ODBC unifié est l'un des premiers modules d'extension permettant à PHP d'accéder aux bases de données. À partir de DB2 v7.2, le pilote ODBC unifié prend en charge l'accès à celui-ci. Le pilote ODBC unifié fournit une interface d'accès aux données unifiée pour toutes les bases de données prenant en charge ODBC. Afin de garantir la généralité de l'interface, le pilote ODBC unifié ne réalise pas d'optimisations spécifiques pour les différents types de bases de données.
◆IBM_DB2 est un module d'extension développé et maintenu par IBM pour interagir avec les sources de données DB2. Il est conforme à l'accord open source. Pour les applications basées sur DB2 UDB et PHP 4.x, IBM_DB2 est le meilleur choix car il est optimisé pour DB2 UDB et évite certains problèmes de compatibilité qui peuvent exister lors de l'utilisation du pilote ODBC unifié. Toutefois, IBM_DB2 prend uniquement en charge DB2 version 8.2.2 ou ultérieure.
◆PDO est une nouvelle méthode d'accès aux bases de données qui sera prise en charge dans PHP 5.x. Dans cet article, étant donné que les versions de la base de données source et de la base de données cible sont toutes deux DB2 v8.1 et que l'environnement source utilise le pilote ODBC unifié, afin de maintenir la cohérence de la configuration de l'environnement, le pilote ODBC unifié est toujours sélectionné. comme interface d'accès entre PHP et la source de données.
Le processus d'installation et de configuration de PHP est le suivant :
1. Téléchargez et décompressez php-4.4.4.tar.gz ( http://www.php.net/ )
# tar zxvf php-4.4.4.tar.gz
# cd php-4.4.4
2. Configurer et compiler le code source php
# ./configure --prefix=/usr/local/php --with-apxs2=/usr/sbin/apxs --without-mysql --with-ibm-db2=/home/reportdb/ sqllib
--prefix spécifie le chemin d'installation de php
--with-apxs2 spécifie le chemin du programme apxs (apxs est un script Perl, qui peut compiler le module php dans un fichier DSO sans le code source d'Apache)
--with- IBM-db2 spécifie le pilote ODBC unifié comme interface d'accès entre php et la source de données, et spécifie le répertoire d'installation de l'instance DB2.
--without-mysql Ignorer la configuration d'installation par défaut de la base de données mysql
#cp php.ini-dist /usr/local/lib
Copiez le php.ini-dist dans le fichier d'installation php dans /usr/local/lib comme configuration php document.
# make && make install
# cp php.ini-dist /usr/local/lib/php.ini
3. Modifiez le fichier /usr/local/apache2/conf/httpd.conf et apportez les modifications suivantes :
Définissez le répertoire personnel du fichier html : le répertoire personnel utilisé pour stocker les fichiers Web requis pour le site Web
DocumentRoot "/home/web
./www/"
définit la valeur par défaut pour Apache. L'ordre des noms de fichiers : Apache recherchera le fichier de page d'accueil par défaut pris en charge
DirectoryIndex index.php index.html.var index.cgi index.html
dans le chemin actuel, de l'avant vers l'arrière.Ajoutez le suffixe du fichier d'interprétation php : pour tous les besoins Pour les types de fichiers interprétés par PHP, vous devez ajouter le suffixe à l'élément de configuration AddType
AddType application/x-httpd-php .php .inc
pour charger le module PHP : chargez la bibliothèque libphp4 .so sous le répertoire du module modules, et ajoutez le nom de la structure du module php4_module à
LoadModule php4_module modules/libphp4.so
dans la liste des modules actifs4. Modifiez le fichier de configuration /usr/local/apache2/bin/apachectl :
Afin de garantir la connectivité avec la base de données DB2, lors du démarrage du service Apache, vous devez initialiser l'environnement de l'instance client DB2 en même temps.
Lors de la création d'une instance DB2, DB2 génère automatiquementun
script shell pour initialiser l'environnement d'instance DB2 requis. Appelez-le simplement :
if test -f /home/reportdb/sqllib/db2profile then
.
5. Ensuite, redémarrez le serveur Apache pour hériter des modifications de configuration ci-dessus.
# apachectl redémarrer
6. Écrivez un fichier de test PHP test.php avec le contenu suivant :
echo phpinfo();
?>
Stockez-le dans le répertoire principal du fichier html d'Apache /home/web/www et accédez à la page Web via le navigateur Si elle est accessible normalement (comme le montre la figure ci-dessous), le travail de configuration est terminé.
Conclusion
Cet article couvre principalement le processus de migration multiplateforme d'un système d'application basé sur PHP et DB2 UDB. Il détaille la migration multiplateforme du système de base de données DB2 ainsi que le processus d'installation et de configuration du serveur Apache et du système d'application PHP. Sur la base de l'expérience pratique, une solution réalisable est proposée pour le problème de migration multiplateforme du système de base de données DB2. Cet article donne également une description détaillée et les solutions correspondantes aux problèmes pouvant survenir au cours du processus de transplantation. Bien que cet article couvre uniquement le processus de transplantation du système d'application du système AIX vers le système LINUX, les lecteurs peuvent également se référer au processus de transplantation spécifique et l'appliquer à d'autres plates-formes.