首页 后端开发 php教程 基于DB2及PHP的应用系统跨平台迁移详细步骤(二)_PHP教程

基于DB2及PHP的应用系统跨平台迁移详细步骤(二)_PHP教程

Jul 13, 2016 pm 05:35 PM
db2 php 基于 处理 字段 应用系统 数据库 步骤 自增 详细 跨平台 迁移 需要

5.处理数据库表中的自增字段

对于需要加载的含有自增字段的表,即该表的 ixf 数据文件中有自增列的值, 可以在 load 命令中加入如下参数控制自增字段值:
1). modified by identityignore :加载的数据文件中有自增字段值,load 时忽略数据文件中自增字段值 ;


2). modified by identitymissing :加载的数据文件中没有自增字段值,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


Compiled in modules:

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。建议以 DSO 模式安装,这种模式的维护和升级都相对简单,可以在无需重新编译 Apache 的条件下,根据需求动态增加新功能模块。当然,这样做也会带来一些运行效率上的下降,Apache 服务器在启动时会慢约 20%。

PHP 连接 DB2 数据源同样有三种方式 : unified ODBC driver、IBM_DB2 和 PDO(php data object)。

◆unified ODBC driver 是最早的 PHP 访问数据库的扩展模块之一。从 DB2 v7.2 开始,unified ODBC driver 就支持对其的访问。对所有支持 ODBC 的数据库,unified ODBC driver 提供了统一的数据访问接口。为了保证接口的一般性,unified ODBC driver 并未对不同类型的数据库做特定的优化。

◆IBM_DB2 是由 IBM 开发和维护的与 DB2 数据源交互的扩展模块,它遵守开源协议。对基于 DB2 UDB 和 php 4.x 的应用来说,IBM_DB2 是最优的选择,因为它针对 DB2 UDB 进行了优化,同时避免了一些使用 unified ODBC driver 时可能存在的兼容性问题。不过,IBM_DB2 只支持 DB2 v8.2.2 或更高版本。

◆PDO 则是 php 5.x 中即将支持的新的数据库访问方式。本文中,由于源数据库与目标数据库的版本均为 DB2 v8.1,并且源环境中采用 unified ODBC driver 的方式,为了保持环境配置的一致性,仍然选择 unified ODBC driver 作为 php 与数据源的访问接口。

PHP 的安装与配置过程具体如下:

1.下载并解压 php-4.4.4.tar.gz(http://www.php.net/)


# tar zxvf php-4.4.4.tar.gz

# 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

--prefix 指定 php 的安装路径

--with-apxs2 指定 apxs 程序的路径 (apxs 是一个 perl 脚本,它可以脱离 apache 的源码将 php 模块编译成 DSO 文件 )

--with-ibm-db2 指定 unified ODBC driver 作为 php 与数据源的访问接口,并指定 DB2 的实例安装目录。

--without-mysql 忽略 mysql 数据库缺省的安装配置

#cp php.ini-dist /usr/local/lib

将 php 安装文件中的 php.ini-dist 拷贝到 /usr/local/lib 下作为 php 的配置文件。

# make && make install

# cp php.ini-dist /usr/local/lib/php.ini

3.编辑 /usr/local/apache2/conf/httpd.conf 文件,做如下修改:

设置 html 文件主目录:用于存放网站所需 web 文件的主目录

DocumentRoot "/home/web/www/"

设置 apache 的默认文件名的次序: apache 将按照由前至后的顺序在当前路径下查找其所支持的默认主页文件

DirectoryIndex index.php index.html.var index.cgi index.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 会自动生成 shell 脚本用于初始化所需的 DB2 实例环境,只需直接调用即可:

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

. /home/reportdb/sqllib/db2profile

fi

5.然后,重新启动 Apache 服务器以继承上面的配置更改。

# apachectl restart

6.编写 PHP 的测试文件 test.php,内容如下:

echo phpinfo();
?>

将其存放在 apache 的 html 文件主目录 /home/web/www 下,通过浏览器访问该网页,若能正常访问(如下图所示),则配置工作全部完成。


结束语

本文主要涵盖了一个基于 php 和 DB2 UDB 的应用系统的跨平台移植过程,详细介绍了 DB2 数据库系统的跨平台迁移以及 Apache 服务器与 php 应用系统的安装和配置过程。基于实践经验,为 DB2 数据库系统的跨平台迁移问题提供了一个可行的解决方案。对于移植过程中可能出现的问题,本文也给予详细的描述并提供相应的解决方案。虽然本文所涉及的只是从 AIX 系统到 LINUX 系统的应用系统移植过程,读者亦可以参考具体的移植过程,将其应用于其它平台之上。

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/508262.htmlTechArticle5.处理数据库表中的自增字段 对于需要加载的含有自增字段的表,即该表的 ixf 数据文件中有自增列的值, 可以在 load 命令中加入如下参...
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

适用于 Ubuntu 和 Debian 的 PHP 8.4 安装和升级指南 适用于 Ubuntu 和 Debian 的 PHP 8.4 安装和升级指南 Dec 24, 2024 pm 04:42 PM

PHP 8.4 带来了多项新功能、安全性改进和性能改进,同时弃用和删除了大量功能。 本指南介绍了如何在 Ubuntu、Debian 或其衍生版本上安装 PHP 8.4 或升级到 PHP 8.4

如何设置 Visual Studio Code (VS Code) 进行 PHP 开发 如何设置 Visual Studio Code (VS Code) 进行 PHP 开发 Dec 20, 2024 am 11:31 AM

Visual Studio Code,也称为 VS Code,是一个免费的源代码编辑器 - 或集成开发环境 (IDE) - 可用于所有主要操作系统。 VS Code 拥有针对多种编程语言的大量扩展,可以轻松编写

您如何在PHP中解析和处理HTML/XML? 您如何在PHP中解析和处理HTML/XML? Feb 07, 2025 am 11:57 AM

本教程演示了如何使用PHP有效地处理XML文档。 XML(可扩展的标记语言)是一种用于人类可读性和机器解析的多功能文本标记语言。它通常用于数据存储

在PHP API中说明JSON Web令牌(JWT)及其用例。 在PHP API中说明JSON Web令牌(JWT)及其用例。 Apr 05, 2025 am 12:04 AM

JWT是一种基于JSON的开放标准,用于在各方之间安全地传输信息,主要用于身份验证和信息交换。1.JWT由Header、Payload和Signature三部分组成。2.JWT的工作原理包括生成JWT、验证JWT和解析Payload三个步骤。3.在PHP中使用JWT进行身份验证时,可以生成和验证JWT,并在高级用法中包含用户角色和权限信息。4.常见错误包括签名验证失败、令牌过期和Payload过大,调试技巧包括使用调试工具和日志记录。5.性能优化和最佳实践包括使用合适的签名算法、合理设置有效期、

php程序在字符串中计数元音 php程序在字符串中计数元音 Feb 07, 2025 pm 12:12 PM

字符串是由字符组成的序列,包括字母、数字和符号。本教程将学习如何使用不同的方法在PHP中计算给定字符串中元音的数量。英语中的元音是a、e、i、o、u,它们可以是大写或小写。 什么是元音? 元音是代表特定语音的字母字符。英语中共有五个元音,包括大写和小写: a, e, i, o, u 示例 1 输入:字符串 = "Tutorialspoint" 输出:6 解释 字符串 "Tutorialspoint" 中的元音是 u、o、i、a、o、i。总共有 6 个元

我后悔之前不知道的 7 个 PHP 函数 我后悔之前不知道的 7 个 PHP 函数 Nov 13, 2024 am 09:42 AM

如果您是一位经验丰富的 PHP 开发人员,您可能会感觉您已经在那里并且已经完成了。您已经开发了大量的应用程序,调试了数百万行代码,并调整了一堆脚本来实现操作

解释PHP中的晚期静态绑定(静态::)。 解释PHP中的晚期静态绑定(静态::)。 Apr 03, 2025 am 12:04 AM

静态绑定(static::)在PHP中实现晚期静态绑定(LSB),允许在静态上下文中引用调用类而非定义类。1)解析过程在运行时进行,2)在继承关系中向上查找调用类,3)可能带来性能开销。

什么是PHP魔术方法(__ -construct,__destruct,__call,__get,__ set等)并提供用例? 什么是PHP魔术方法(__ -construct,__destruct,__call,__get,__ set等)并提供用例? Apr 03, 2025 am 12:03 AM

PHP的魔法方法有哪些?PHP的魔法方法包括:1.\_\_construct,用于初始化对象;2.\_\_destruct,用于清理资源;3.\_\_call,处理不存在的方法调用;4.\_\_get,实现动态属性访问;5.\_\_set,实现动态属性设置。这些方法在特定情况下自动调用,提升代码的灵活性和效率。

See all articles