5. Procesamiento de campos de incremento automático en tablas de base de datos
Para tablas que contienen campos de incremento automático que deben cargarse, es decir, el archivo de datos ixf de la tabla tiene valores de columna de incremento automático, puede agregar los siguientes parámetros al comando de carga. controlar los valores del campo de incremento automático:
1) Modificado por Identityignore: hay valores de campo de incremento automático en el archivo de datos cargado, y los valores de campo de incremento automático en el archivo de datos se ignoran al cargar;
2) Modificado por falta de identidad: no hay un valor de campo de incremento automático en el archivo de datos cargado, y el valor del campo de incremento automático se genera automáticamente al cargar
3). el archivo de datos cargado, y el archivo de datos se utiliza al cargar el valor del campo de incremento automático.
Para que los datos de la tabla que contiene campos de incremento automático en la base de datos de destino sean consistentes con los datos de la base de datos de origen, elegimos usar el parámetro modificado por identidad override en el ejemplo de este artículo y usar el campo de incremento automático. valores en el archivo de datos al importar datos. Los lectores pueden elegir los parámetros de control apropiados según diferentes situaciones.
Primero, busque en el archivo srcdb1_tables.ddl todos los nombres de tablas que contengan campos de incremento automático (tablas que contienen campos GENERADOS SIEMPRE COMO IDENTIDAD) y luego inserte el fragmento de declaración modificado por identidad override en estas tablas con campos de incremento automático en srcdb1_load.sql. en la línea de comando de carga correspondiente.
Listado 8. Procesamiento de campos agregados automáticamente en el script de carga
db2 desde test.ixf de ixf modificado mediante inserción de identidad en TEST
6.; Ejecute el script de exportación
para exportar los datos de todas las tablas.
# db2 -tvf
Los datos de la tabla exportados por srcdb1_export.sql se almacenan en la ruta actual en formato ixf.
7. Guardar scripts y archivos de datos
Copie todos los scripts DDL y archivos de datos *.ixf al sitio donde se encuentra el sistema de destino.
Funcionamiento en sistema LINUX
1. Cree la instancia SRCDB1 a través del procesador de línea de comandos (CLP):
# db2icrt SRCDB1
2. Utilice el comando CREATE DATABASE para crear la base de datos SRCDB1, cree el espacio de tabla necesario y configure los parámetros necesarios de la base de datos.
# db2 crea la base de datos SRCDB1
3. Conéctese a la base de datos SRCDB1 y ejecute el script srcdb1_tables.ddl para crear grupos de buffers, espacios de tablas, UDF, tablas y objetos de bases de datos como índices, secuencias y vistas.
# db2 conectarse a srcdb1
# db2 -tvf srcdb1_tables.ddl
4. Ingrese al directorio donde se encuentra el archivo de datos .ixf y ejecute el siguiente comando para importar datos de la tabla.
# db2 -tvf srcdb1_load.sql
5. Utilice los archivos de script srcdb1_foriegnkeys.ddl, srcdb1_triggers.ddl, srcdb1_procedures.ddl para crear restricciones de clave externa, activadores y procedimientos almacenados.
# db2 -tvf srcdb1_foriegnkeys.ddl
# db2 -tvf srcdb1_triggers.ddl
# db2 -tvf srcdb1_procedures.ddl
Después de completar con éxito los pasos anteriores, el trabajo de migración de la base de datos básicamente se completa.
Instalación y configuración del servidor Apache y php
Instalación y configuración del servidor Apache
El servidor Apache HTTP es un software modular, y los administradores pueden aumentar o disminuir funciones seleccionando los módulos incluidos en el servidor. Los módulos se pueden incluir estáticamente en el binario httpd en el momento de la compilación o se pueden compilar en objetos compartidos dinámicos (DSO) independientes del binario httpd. Los módulos DSO se pueden compilar junto con el servidor o por separado utilizando las herramientas de extensión de Apache (apxs). La carga dinámica es más flexible que la carga estática. Para utilizar la función de carga dinámica, el servidor Apache debe estar compilado como un objeto compartido dinámico (DSO, Dynamic Shared Object). El soporte de Apache para DSO se basa en un módulo llamado mod_so. Para admitir la carga dinámica, este módulo debe compilarse estáticamente en el kernel con anticipación. Por lo tanto, puede utilizar el módulo mod_so para detectar si el Apache instalado admite DSO:
Listado 9. Detección del módulo mod_so
# $APACHEHOME/bin/httpd –l
Compilado en módulos:
core.c
prefork.c
http_core.c
mod_so.c
Si hay mod_so.c en el nombre del módulo listado, significa que el Apache instalado ya es compatible con DSO; de lo contrario, es necesario volver a compilar Apache. El proceso de instalación y configuración de Apache es muy sencillo, el siguiente:
1. Descargue httpd-2.0.54.tar.gz ( http://httpd.apache.org/ ) y extráigalo al directorio especificado
# tar zxvf httpd-2.0.54.tar.gz && cd httpd-2.0.54
2 . Compile e instale apache
# ./configure --prefix=/usr/local/apache2 --enable-module=so
-- el prefijo especifica la ruta de instalación de apache
--enable-module=so compila estáticamente el módulo so (mod_so) en el kernel del servidor apache para admitir el modo DSO
# make && make install
3. Inicie apache
# ln -s /usr/local/apache2/bin/apachectl /sbin/apachectl
# apachectl inicie
el proceso de instalación y configuración de php
durante la instalación y configuración de php Hay dos aspectos a los que se debe prestar atención: el primero es la combinación de php y el servidor http apache, y el segundo es la conexión entre php y la fuente de datos db2.
Al instalar PHP en el entorno Apache, hay tres modos de instalación para elegir: módulo estático, módulo dinámico (DSO) y CGI. Se recomienda instalar en modo DSO. El mantenimiento y la actualización de este modo son relativamente simples. Se pueden agregar nuevos módulos funcionales según las necesidades sin tener que volver a compilar Apache. Por supuesto, hacerlo también provocará una disminución en la eficiencia operativa. El servidor Apache será aproximadamente un 20% más lento al iniciarse.
También hay tres formas para que PHP se conecte a fuentes de datos DB2: controlador ODBC unificado, IBM_DB2 y PDO (objeto de datos php).
◆El controlador ODBC unificado es uno de los primeros módulos de extensión para PHP para acceder a bases de datos. A partir de DB2 v7.2, el controlador ODBC unificado admite el acceso a él. El controlador ODBC unificado proporciona una interfaz de acceso a datos unificada para todas las bases de datos que admiten ODBC. Para garantizar la generalidad de la interfaz, el controlador ODBC unificado no realiza optimizaciones específicas para diferentes tipos de bases de datos.
◆IBM_DB2 es un módulo de extensión desarrollado y mantenido por IBM para interactuar con fuentes de datos DB2. Cumple con el acuerdo de código abierto. Para aplicaciones basadas en DB2 UDB y PHP 4.x, IBM_DB2 es la mejor opción porque está optimizado para DB2 UDB y evita algunos problemas de compatibilidad que pueden existir al utilizar el controlador ODBC unificado. Sin embargo, IBM_DB2 solo admite DB2 v8.2.2 o superior.
◆PDO es un nuevo método de acceso a la base de datos que será compatible con PHP 5.x. En este artículo, dado que las versiones de la base de datos de origen y de la base de datos de destino son DB2 v8.1 y el entorno de origen utiliza el controlador ODBC unificado, para mantener la coherencia de la configuración del entorno, el controlador ODBC unificado aún está seleccionado como interfaz de acceso entre PHP y la fuente de datos.
El proceso de instalación y configuración de PHP es el siguiente:
1. Descargue y descomprima php-4.4.4.tar.gz ( http://www.php.net/ )
# tar zxvf php-4.4.4.tar.gz
# cd php-4.4.4
2. Configurar y compilar código fuente php
# ./configure --prefix=/usr/local/php --with-apxs2=/usr/sbin/apxs -- without-mysql --with-ibm-db2=/home/reportdb/ sqllib
--prefix especifica la ruta de instalación de php
--with-apxs2 especifica la ruta del programa apxs (apxs es un script perl, que puede compilar el módulo php en un archivo DSO sin el código fuente de apache)
--with- ibm-db2 especifica el controlador ODBC unificado como interfaz de acceso entre php y la fuente de datos, y especifica el directorio de instalación de la instancia de DB2.
-- without-mysql Ignora la configuración de instalación predeterminada de la base de datos mysql
#cp php.ini-dist /usr/local/lib
Copie php.ini-dist en el archivo de instalación de php a /usr/local/lib como configuración de php documento.
# make && make install
# cp php.ini-dist /usr/local/lib/php.ini
3. Edite el archivo /usr/local/apache2/conf/httpd.conf y realice los siguientes cambios:
Configure el directorio de inicio del archivo html: el directorio de inicio utilizado para almacenar los archivos web necesarios para el sitio web
DocumentRoot "/home/web
./www/"
establece el valor predeterminado para apache El orden de los nombres de los archivos: apache buscará el archivo de página de inicio predeterminado compatible
DirectoryIndex index.php index.html.var index.cgi index.html
en la ruta actual en orden de adelante hacia atrás.Agregue el sufijo del archivo de interpretación php: para todas las necesidades Para los tipos de archivos interpretados por PHP, debe agregar el sufijo al elemento de configuración AddType
AddType application/x-httpd-php .php .inc
para cargar el módulo PHP: cargue la biblioteca libphp4 .so en el directorio de módulos módulos y agregue el nombre de la estructura del módulo php4_module a
LoadModule php4_module module/libphp4.so
en la lista de módulos activos4. Edite el archivo de configuración /usr/local/apache2/bin/apachectl:
para garantizar la conectividad con la base de datos DB2, al iniciar el servicio Apache, debe inicializar el entorno de la instancia del cliente DB2 al mismo tiempo. Al crear una instancia de DB2, DB2 generará automáticamente un script de shell para inicializar el entorno de instancia de DB2 requerido. Simplemente llámelo directamente:
if
test -f /home/reportdb/sqllib/db2profile then
.
5. Luego, reinicie el servidor Apache para heredar los cambios de configuración anteriores.
#apachectl reinicia
6. Escriba un archivo de prueba PHP test.php con el siguiente contenido:
echo phpinfo();
?>
Guárdelo en el directorio principal del archivo html de Apache /home/web/www y acceda a la página web a través del navegador. Si se puede acceder a ella normalmente (como se muestra en la figura siguiente), el trabajo de configuración estará completo.
Conclusión
Este artículo cubre principalmente el proceso de migración multiplataforma de un sistema de aplicaciones basado en PHP y DB2 UDB. Detalla la migración multiplataforma del sistema de base de datos DB2 y el proceso de instalación y configuración del servidor Apache y el sistema de aplicaciones PHP. Basado en la experiencia práctica, se proporciona una solución factible para el problema de migración multiplataforma del sistema de base de datos DB2. Este artículo también brinda una descripción detallada y las soluciones correspondientes a los problemas que puedan surgir durante el proceso de trasplante. Aunque este artículo solo cubre el proceso de trasplante del sistema de aplicaciones del sistema AIX al sistema LINUX, los lectores también pueden consultar el proceso de trasplante específico y aplicarlo a otras plataformas.