ホームページ >バックエンド開発 >PHPチュートリアル >DB2 および PHP に基づくアプリケーション システムのクロスプラットフォーム移行の詳細な手順 (2)_PHP チュートリアル
5.处理数据库表中的自增字段 对于需要加载的含有自增字段的表,即该表的 ixf 数据文件中有自增列的值, 可以在 load 命令中加入如下参数控制自增字段值: 3). modified by identityoverride :加载的数据文件中有自增字段值,load 时使用数据文件中的自增字段值 。 为了使目标数据库中含有自增字段的表中数据与源数据库中的数据保持一致,本文实例中选择使用 modified by identityoverride 参数,在导入数据时使用数据文件中的自增字段值。读者可以根据不同情况选择适当的控制参数。 首先,在 srcdb1_tables.ddl 文件中查找所有包自增字段的表名 ( 含有 GENERATED ALWAYS AS IDENTITY 字段的表 ),然后在 srcdb1_load.sql 中将 modified by identityoverride 语句片段插入到这些含有自增字段的表所对应的 load 命令行中。 清单8. load 脚本中自增字段处理 db2 load from test.ixf of ixf modified by identityoverride insert into TEST; 6.执行导出脚本 执行导出脚本,导出所有表的数据 。 # db2 -tvf srcdb1_export.sql 导出的表数据以 ixf 格式存放于当前路径下。 7.保存脚本和数据文件 将所有 DDL 脚本以及数据文件 *.ixf 复制到目标系统所在站点。 LINUX 系统上的操作 1.通过命令行处理器(CLP)创建实例 SRCDB1: # db2icrt SRCDB1 2.使用 CREATE DATABASE 命令创建数据库 SRCDB1,创建必要的表空间及配置必要的数据库参数。 # db2 create database SRCDB1 3.连接到数据库 SRCDB1,执行 srcdb1_tables.ddl 脚本创建缓冲池,表空间,UDF,表以及 Index,Sequence,视图等数据库对象。 # db2 connect to srcdb1 # db2 -tvf srcdb1_tables.ddl 4.进入到放置 .ixf 数据文件的目录,执行下面的命令导入表数据。 # db2 -tvf srcdb1_load.sql 5.使用 srcdb1_foriegnkeys.ddl,srcdb1_triggers.ddl ,srcdb1_procedures.ddl 脚本文件创建外键约束,触发器和存储过程。 # db2 -tvf srcdb1_foriegnkeys.ddl # db2 -tvf srcdb1_triggers.ddl # db2 -tvf srcdb1_procedures.ddl 成功完成上述步骤后,数据库的迁移工作基本完成。 Apache 服务器与 php 的安装和配置 Apache 服务器的安装和配置 Apache HTTP 服务器是一个模块化的软件,管理员可以通过选择服务器中包含的模块进行功能增减。模块可以在编译时被静态包含进httpd二进制文件,也可以编译成独立于httpd二进制文件的动态共享对象 (DSO)。DSO 模块可以与服务器一起编译,也可以用 Apache 扩展工具 (apxs) 单独编译。动态加载的方式相比静态加载具有更高的灵活性。使用动态载入特性,Apache 服务器必须以动态共享对象(DSO,Dynamic Shared Object)的方式编译。Apache 对 DSO 的支持,是基于一个叫 mod_so 的模块来实现的,为支持动态加载方式,这个模块必须预先被静态编译到内核中。因此可以通过 mod_so 模块检测已安装的 Apache 是否支持 DSO: 清单9. mod_so 模块检测 # $APACHEHOME/bin/httpd –l core.c prefork.c http_core.c mod_so.c 如果在列出的模块名中有 mod_so.c,则说明安装的 Apache 已经支持 DSO,否则需要重新编译 Apache。Apache 的安装和配置过程十分简单,如下所示: 1.下载 httpd-2.0.54.tar.gz(http://httpd.apache.org/),并将其解压到制定目录 # tar zxvf httpd-2.0.54.tar.gz && cd httpd-2.0.54 2.编译安装 apache # ./configure --prefix=/usr/local/apache2 --enable-module=so -- prefix 指定 apache 的安装路径 --enable-module=so 将 so 模块(mod_so)静态编译进 apache 服务器的内核,以支持 DSO 模式 # make && make install 3. 启动 apache # ln -s /usr/local/apache2/bin/apachectl /sbin/apachectl # apachectl start php 的安装和配置 在 php 的安装和配置过程中,有两个方面需要注意,首先是 php 与 apache http server 的结合,其次是 php 与 db2 数据源的连接。 Apache 環境に PHP をインストールする場合、静的モジュール、動的モジュール (DSO)、CGI の 3 つのインストール モードから選択できます。 DSO モードでインストールすることをお勧めします。このモードのメンテナンスとアップグレードは、Apache を再コンパイルすることなく、必要に応じて動的に追加できます。もちろん、これにより、Apache サーバーの起動速度が約 20% 低下します。 PHP には、統合 ODBC ドライバー、IBM_DB2、および PDO (php データ オブジェクト) という DB2 データ ソースに接続する 3 つの方法もあります。 ◆統合 ODBC ドライバーは、PHP がデータベースにアクセスするための最も初期の拡張モジュールの 1 つです。 DB2 v7.2 以降、統合 ODBC ドライバーは、DB2 へのアクセスをサポートします。統合 ODBC ドライバーは、ODBC をサポートするすべてのデータベースに統合データ アクセス インターフェイスを提供します。インターフェイスの汎用性を確保するために、統合 ODBC ドライバーは、さまざまな種類のデータベースに対して特定の最適化を行いません。 ◆IBM_DB2 は、DB2 データ ソースと対話するために IBM によって開発および保守されている拡張モジュールであり、オープン ソース ライセンスに準拠しています。 DB2 UDB および PHP 4.x に基づくアプリケーションの場合、IBM_DB2 が最適な選択です。これは、IBM_DB2 が DB2 UDB 用に最適化されており、統合 ODBC ドライバーの使用時に発生する可能性のある互換性の問題を回避できるためです。ただし、IBM_DB2 は DB2 v8.2.2 以降のみをサポートします。 ◆PDOはphp 5.xでサポートされる新しいデータベースアクセス方法です。この記事では、ソース データベースとターゲット データベースのバージョンが両方とも DB2 v8.1 であり、ソース環境では統合 ODBC ドライバーが使用されているため、環境構成の一貫性を維持するために、引き続き統合 ODBC ドライバーが選択されています。 PHP とデータ ソース間のアクセス インターフェイスとして。 PHP のインストールと設定のプロセスは次のとおりです: 1. php-4.4.4.tar.gz (http://www.php.net/) をダウンロードして解凍します # cd php-4.4.4 2. PHPソースコードを設定してコンパイルする # ./configure --prefix=/usr/local/php --with-apxs2=/usr/sbin/apxs --without-mysql --with-ibm-db2=/home/reportdb/sqllib --プレフィックスはphp --with-apxs2 は、apxs プログラムのパスを指定します (apxs は、Apache ソース コードを使用せずに PHP モジュールを DSO ファイルにコンパイルできる Perl スクリプトです) --with-ibm-db2 は、php とデータ ソース間のアクセス インターフェイスとして統合 ODBC ドライバーを指定し、DB2 インスタンスのインストール ディレクトリを指定します。 --without-mysql は、mysql データベースのデフォルトのインストール構成を無視します #cp php.ini-dist /usr/local/lib PHP インストールファイル内の php.ini-dist を PHP 設定ファイルとして /usr/local/lib にコピーします。 # 作成 && インストールを行う # cp php.ini-dist /usr/local/lib/php.ini 3. /usr/local/apache2/conf/httpd.conf ファイルを編集し、次の変更を加えます: HTML ファイルのホーム ディレクトリを設定します: Web サイトに必要な Web ファイルを保存するために使用されるホーム ディレクトリ ドキュメントルート「/home/web/www/」 Apache のデフォルトのファイル名の順序を設定します。Apache は、現在のパスでサポートされているデフォルトのホームページ ファイルを前から後ろの順序で検索します DirectoryIndexindex.phpindex.html.varindex.cgiindex.html PHP 解釈ファイルのサフィックスを追加: PHP によって解釈される必要があるすべてのファイル タイプについて、AddType 構成項目にサフィックスを追加する必要があります AddType application/x-httpd-php .php .inc PHP モジュールをロードします: モジュール ディレクトリ modules の下にライブラリ libphp4.so をロードし、モジュール構造名 php4_module をアクティブなモジュール リストに追加します LoadModule php4_module modules/libphp4.so 4.構成ファイル /usr/local/apache2/bin/apachectl を編集します: DB2 データベースとの接続を確保するには、Apache サービスを開始するときに、DB2 クライアント インスタンス環境も同時に初期化する必要があります。 DB2 インスタンスを作成するとき、DB2 は必要な DB2 インスタンス環境を初期化するシェル スクリプトを自動的に生成します。それを直接呼び出すだけです。
?>
結論
1). modified by identityignore :加载的数据文件中有自增字段值,load 时忽略数据文件中自增字段值 ;
2). modified by identitymissing :加载的数据文件中没有自增字段值,load 时自动生成自增字段值 ;
Compiled in modules:
# tar zxvf php-4.4.4.tar.gz