首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> DB2 資料庫 >> DB2 教學

基於 DB2 與 PHP 的跨平台遷移實戰(二):Linux 端部署與驗證

     編輯:DB2 教學

自增欄位資料載入策略

針對含 GENERATED ALWAYS AS IDENTITY 的表,LOAD 命令提供三種模式:

參數行為
identityignore忽略資料檔中的自增值,由資料庫自動產生
identitymissing資料檔無自增值,資料庫自動產生
identityoverride使用資料檔中的自增值(本文採用,保持資料一致)

操作:從 srcdb1_tables.ddl 找出所有自增表,在 srcdb1_load.sql 對應的 LOAD 行插入 modified by identityoverride。例:

db2 load from test.ixf of ixf modified by identityoverride insert into TEST;

執行匯出與檔案傳輸

# db2 -tvf srcdb1_export.sql   # 匯出所有表為 IXF 格式
# 複製所有 DDL 腳本與 *.ixf 至 Linux 目標主機

Linux 端資料庫重建與資料載入

  1. 建立實例與資料庫
    # db2icrt SRCDB1
    # db2 create database SRCDB1
  2. 建立資料庫物件
    # db2 connect to srcdb1
    # db2 -tvf srcdb1_tables.ddl
  3. 載入表資料
    # cd 
    # db2 -tvf srcdb1_load.sql
  4. 建立約束、觸發器、預存程序
    # db2 -tvf srcdb1_foreignkeys.ddl
    # db2 -tvf srcdb1_triggers.ddl
    # db2 -tvf srcdb1_procedures.ddl

完成上述步驟,資料庫遷移基本告成。

Apache HTTP Server 安裝與配置(支援 DSO)

驗證 DSO 支援

# $APACHE_HOME/bin/httpd -l
Compiled in modules:
core.c
prefork.c
http_core.c
mod_so.c   <-- 必須存在

若無 mod_so.c 需重新編譯。

編譯安裝 Apache 2.0.54

# tar zxvf httpd-2.0.54.tar.gz && cd httpd-2.0.54
# ./configure --prefix=/usr/local/apache2 --enable-module=so
# make && make install

啟動與註冊服務

# ln -s /usr/local/apache2/bin/apachectl /sbin/apachectl
# apachectl start

PHP 4.4.4 安裝與整合(採用 Unified ODBC Driver)

選擇資料庫介面考量

  • Unified ODBC:通用介面,源環境即採用此驅動,為保持一致性續用
  • IBM_DB2:針對 DB2 優化,但需 v8.2.2+
  • PDO:PHP 5.x 新特性,本案不適用

編譯安裝 PHP

# tar zxvf php-4.4.4.tar.gz && cd php-4.4.4
# ./configure --prefix=/usr/local/php \
  --with-apxs2=/usr/sbin/apxs \
  --without-mysql \
  --with-ibm-db2=/home/reportdb/sqllib
# cp php.ini-dist /usr/local/lib
# make && make install
# cp php.ini-dist /usr/local/lib/php.ini

修改 httpd.conf 關鍵設定

DocumentRoot "/home/web/www/"
DirectoryIndex index.php index.html.var index.cgi index.html
AddType application/x-httpd-php .php .inc
LoadModule php4_module modules/libphp4.so

整合 DB2 實例環境至 Apache 啟動腳本

編輯 /usr/local/apache2/bin/apachectl,在啟動區塊加入:

if test -f /home/reportdb/sqllib/db2profile; then
. /home/reportdb/sqllib/db2profile
fi

重啟 Apache 並驗證

# apachectl restart
# echo '' > /home/web/www/test.php
# 瀏覽器訪問 https://host/test.php 應顯示 PHP 資訊頁

結語

本文完整記錄了從 AIX 到 Linux 的 DB2 資料庫遷移、自增欄位處理、Apache+PHP 編譯整合及 DB2 客戶端環境注入的實戰步驟。該方案經實測可行,亦可參考應用於其他平台遷移專案。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved