5. Processamento de campos de incremento automático em tabelas de banco de dados
Para tabelas contendo campos de incremento automático que precisam ser carregados, ou seja, o arquivo de dados ixf da tabela possui valores de coluna de incremento automático, você pode adicionar os seguintes parâmetros ao comando load para. controlar os valores do campo de incremento automático:
1) modificado por Identityignore: Existem valores de campo de incremento automático no arquivo de dados carregado e os valores de campo de incremento automático no arquivo de dados são ignorados durante o carregamento;
2) Modificado por falta de identidade: Não há valor de campo de incremento automático no arquivo de dados carregado e o valor do campo de incremento automático é gerado automaticamente durante o carregamento
3). o arquivo de dados carregado e o arquivo de dados é usado ao carregar. O valor do campo de incremento automático em .
Para tornar os dados da tabela que contém campos de incremento automático no banco de dados de destino consistentes com os dados do banco de dados de origem, optamos por usar o parâmetro modificado por IdentityOverride no exemplo deste artigo e usar o campo de incremento automático valores no arquivo de dados ao importar dados. Os leitores podem escolher parâmetros de controle apropriados de acordo com diferentes situações.
Primeiro, pesquise no arquivo srcdb1_tables.ddl todos os nomes de tabelas que contêm campos de incremento automático (tabelas contendo campos GENERATED ALWAYS AS IDENTITY) e, em seguida, insira o fragmento da instrução modificado por Identityoverride nessas tabelas com campos de incremento automático em srcdb1_load.sql. na linha de comando de carregamento correspondente.
Listagem 8. Processamento de campos adicionados automaticamente no script de carregamento
db2 load de test.ixf de ixf modificado pela inserção de Identityoverride em TEST
6. Execute o script de exportação
para exportar os dados de todas as tabelas.
# db2 -tvf
Os dados da tabela exportados por srcdb1_export.sql são armazenados no caminho atual no formato ixf.
7. Salvando scripts e arquivos de dados
Copie todos os scripts DDL e arquivos de dados *.ixf para o site onde o sistema de destino está localizado.
Operação no sistema LINUX
1. Crie a instância SRCDB1 por meio do processador de linha de comandos (CLP):
# db2icrt SRCDB1
2. Utilize o comando CREATE DATABASE para criar o banco de dados SRCDB1, criar o espaço de tabela necessário e configurar os parâmetros de banco de dados necessários.
# db2 cria banco de dados SRCDB1
3. Conecte-se ao banco de dados SRCDB1 e execute o script srcdb1_tables.ddl para criar buffer pools, espaços de tabela, UDFs, tabelas e objetos de banco de dados, como índice, sequência e visualizações.
# db2 conecta-se a srcdb1
# db2 -tvf srcdb1_tables.ddl
4. Insira o diretório onde o arquivo de dados .ixf está colocado e execute o seguinte comando para importar os dados da tabela.
#db2 -tvfsrcdb1_load.sql
5. Use os arquivos de script srcdb1_foriegnkeys.ddl, srcdb1_triggers.ddl, srcdb1_procedures.ddl para criar restrições de chave estrangeira, acionadores e procedimentos armazenados.
# db2 -tvf srcdb1_foriegnkeys.ddl
# db2 -tvf srcdb1_triggers.ddl
# db2 -tvf srcdb1_procedures.ddl
Após concluir com êxito as etapas acima, o trabalho de migração do banco de dados está basicamente concluído.
Instalação e configuração do servidor Apache e php
Instalação e configuração do servidor Apache
O servidor Apache HTTP é um software modular, e os administradores podem aumentar ou diminuir funções selecionando módulos incluídos no servidor. Os módulos podem ser incluídos estaticamente no binário httpd em tempo de compilação ou podem ser compilados em objetos dinâmicos compartilhados (DSO) independentes do binário httpd. Os módulos DSO podem ser compilados junto com o servidor ou separadamente usando as ferramentas de extensão Apache (apxs). O carregamento dinâmico é mais flexível que o carregamento estático. Para usar o recurso de carregamento dinâmico, o servidor Apache deve ser compilado como um objeto dinâmico compartilhado (DSO, Dynamic Shared Object). O suporte do Apache para DSO é baseado em um módulo chamado mod_so. Para suportar carregamento dinâmico, este módulo deve ser compilado estaticamente no kernel com antecedência. Portanto, é possível usar o módulo mod_so para detectar se o Apache instalado suporta DSO:
Listagem 9. Detecção do módulo mod_so
# $APACHEHOME/bin/httpd –l
Compilado em módulos:
core.c
prefork.c
http_core.c
mod_so.c
Se houver mod_so.c no nome do módulo listado, significa que o Apache instalado já suporta DSO, caso contrário, o Apache precisa ser recompilado. O processo de instalação e configuração do Apache é muito simples, conforme segue:
1. Baixe httpd-2.0.54.tar.gz ( http://httpd.apache.org/ ) e extraia-o para o diretório especificado
# tar zxvf httpd-2.0.54.tar.gz && cd httpd-2.0.54
2 . Compilar e instalar o apache
# ./configure --prefix=/usr/local/apache2 --enable-module=so
-- prefix especifica o caminho de instalação do apache
--enable-module=so compila estaticamente o módulo so (mod_so) em o kernel do servidor apache para suportar o modo DSO
# make && make install
3. Inicie o apache
# ln -s /usr/local/apache2/bin/apachectl /sbin/apachectl
# apachectl inicia
o processo de instalação e configuração do php
durante a instalação e configuração do php , há dois aspectos que precisam ser observados: o primeiro é a combinação do servidor php e apache http, e o segundo é a conexão entre a fonte de dados php e db2.
Ao instalar o PHP no ambiente Apache, existem três modos de instalação para escolher: módulo estático, módulo dinâmico (DSO) e CGI. Recomenda-se instalar no modo DSO. A manutenção e atualização deste modo são relativamente simples. Novos módulos funcionais podem ser adicionados dinamicamente de acordo com as necessidades, sem recompilar o Apache. É claro que isso também causará alguma diminuição na eficiência operacional. O servidor Apache será cerca de 20% mais lento ao iniciar.
Existem também três maneiras de o PHP se conectar às fontes de dados do DB2: driver ODBC unificado, IBM_DB2 e PDO (objeto de dados php).
◆O driver ODBC unificado é um dos primeiros módulos de extensão do PHP para acessar bancos de dados. A partir do DB2 v7.2, o driver ODBC unificado suporta acesso a ele. O driver ODBC unificado fornece uma interface unificada de acesso a dados para todos os bancos de dados que suportam ODBC. Para garantir a generalidade da interface, o driver ODBC unificado não faz otimizações específicas para diferentes tipos de bancos de dados.
◆IBM_DB2 é um módulo de extensão desenvolvido e mantido pela IBM para interagir com fontes de dados DB2. Ele está em conformidade com o contrato de software livre. Para aplicativos baseados em DB2 UDB e PHP 4.x, IBM_DB2 é a melhor escolha porque é otimizado para DB2 UDB e evita alguns problemas de compatibilidade que podem existir ao usar o driver ODBC unificado. No entanto, o IBM_DB2 suporta apenas o DB2 v8.2.2 ou superior.
◆PDO é um novo método de acesso a banco de dados que será suportado no PHP 5.x. Neste artigo, como as versões do banco de dados de origem e do banco de dados de destino são DB2 v8.1 e o ambiente de origem usa o driver ODBC unificado, para manter a consistência da configuração do ambiente, o driver ODBC unificado ainda está selecionado como a interface de acesso entre o PHP e a fonte de dados.
O processo de instalação e configuração do PHP é o seguinte:
1. Baixe e descompacte php-4.4.4.tar.gz ( http://www.php.net/ )
# tar zxvf php-4.4.4.tar.gz
# cd php-4.4.4
2. Configure e compile o código-fonte php
# ./configure --prefix=/usr/local/php --with-apxs2=/usr/sbin/apxs --without-mysql --with-ibm-db2=/home/reportdb/ sqllib
--prefix especifica o caminho de instalação do php
--with-apxs2 especifica o caminho do programa apxs (apxs é um script perl, que pode compilar o módulo php em um arquivo DSO sem o código fonte do apache)
--with- ibm-db2 especifica o driver ODBC unificado como a interface de acesso entre php e fonte de dados e especifica o diretório de instalação da instância do DB2.
--without-mysql Ignora a configuração de instalação padrão do banco de dados mysql
#cp php.ini-dist /usr/local/lib
Copie o php.ini-dist no arquivo de instalação do php para /usr/local/lib como a configuração do php documento.
# make && make install
# cp php.ini-dist /usr/local/lib/php.ini
3. Edite o arquivo /usr/local/apache2/conf/httpd.conf e faça as seguintes alterações:
Defina o diretório inicial do arquivo html: o diretório inicial usado para armazenar os arquivos da web necessários para o site
. /www/"
define o padrão para o apache A ordem dos nomes dos arquivos: o apache procurará o arquivo da página inicial padrão suportado
DirectoryIndex index.php index.html.var index.cgi index.html
no caminho atual, na ordem de frente para trás.Adicione o sufixo do arquivo de interpretação php: para todas as necessidades Para tipos de arquivo interpretados por PHP, você precisa adicionar o sufixo ao item de configuração AddType
AddType application/x-httpd-php .php .inc
para carregar o módulo PHP: carregue a biblioteca libphp4 .so no diretório do módulo module e adicione o nome da estrutura do módulo php4_module a
LoadModule php4_module module/libphp4.so
na lista de módulos ativos4. Edite o arquivo de configuração /usr/local/apache2/bin/apachectl:
Para garantir a conectividade com o banco de dados DB2, ao iniciar o serviço Apache, é necessário inicializar o ambiente da instância do cliente DB2 ao mesmo tempo. Ao criar uma instância do DB2, o DB2 gerará automaticamente um script de shell para inicializar o ambiente da instância do DB2 necessário. Basta chamá-lo diretamente:
if
test -f /home/reportdb/sqllib/db2profile then
.
5. Em seguida, reinicie o servidor Apache para herdar as alterações de configuração acima.
# apachectl reiniciar
6. Escreva um arquivo de teste PHP test.php com o seguinte conteúdo:
echo phpinfo();
?>
Armazene-o no diretório principal do arquivo html do apache /home/web/www e acesse a página da web através do navegador. Se puder ser acessado normalmente (como mostrado na figura abaixo), o trabalho de configuração está concluído.
Conclusão
Este artigo cobre principalmente o processo de migração entre plataformas de um sistema de aplicativos baseado em PHP e DB2 UDB. Ele detalha a migração entre plataformas do sistema de banco de dados DB2 e o processo de instalação e configuração do servidor Apache e do sistema de aplicativos PHP. Com base na experiência prática, é fornecida uma solução viável para o problema de migração entre plataformas do sistema de banco de dados DB2. Este artigo também fornece uma descrição detalhada e soluções correspondentes para problemas que possam surgir durante o processo de transplante. Embora este artigo cubra apenas o processo de transplante do sistema aplicativo do sistema AIX para o sistema LINUX, os leitores também podem consultar o processo de transplante específico e aplicá-lo a outras plataformas.