5. 데이터베이스 테이블의 자동 증가 필드 처리
로드해야 하는 자동 증가 필드가 포함된 테이블의 경우, 즉 테이블의 ixf 데이터 파일에 자동 증가 열 값이 있는 경우 로드 명령에 다음 매개변수를 추가할 수 있습니다. 자동 증가 필드 값을 제어합니다.
1) Identityignore에 의해 수정됨: 로드된 데이터 파일에 자동 증가 필드 값이 있으며, 로드 시 데이터 파일의 자동 증가 필드 값이 무시됩니다.
2) ID 누락에 의해 수정됨: 로드된 데이터 파일에 자동 증가 필드 값이 없으며, 로드 시 자동 증가 필드 값이 자동으로 생성됩니다.
3) ID 재정의에 의해 수정됨: 자동 증가 필드 값이 있습니다. 로드된 데이터 파일이며, 데이터 파일은 로드할 때 사용됩니다.
대상 데이터베이스의 자동 증가 필드가 포함된 테이블의 데이터가 원본 데이터베이스의 데이터와 일치하도록 하기 위해 이 기사의 예에서 수정된 by Identityoverride 매개변수를 사용하고 자동 증가 필드를 사용하도록 선택했습니다. 데이터를 가져올 때 데이터 파일의 값. 독자는 다양한 상황에 따라 적절한 제어 매개변수를 선택할 수 있습니다.
먼저 srcdb1_tables.ddl 파일에서 자동 증가 필드(GENERATED ALWAYS AS IDENTITY 필드가 포함된 테이블)가 포함된 모든 테이블 이름을 검색한 다음 srcdb1_load.sql의 자동 증가 필드가 있는 이러한 테이블에 ID 재정의 문 조각에 의해 수정된 내용을 삽입합니다. 해당 로드 명령줄에서.
목록 8.ID 재정의를 통해 수정된 ixf의 test.ixf에서
로드 스크립트 db2 로드의 자동 추가 필드 처리
6. 내보내기 스크립트를 실행하여
모든 테이블의 데이터를 내보냅니다.
# db2 -tvf
srcdb1_export.sql에서 내보낸 테이블 데이터는 ixf 형식으로 현재 경로에 저장됩니다.
7. 스크립트 및 데이터 파일 저장
모든 DDL 스크립트 및 데이터 파일 *.ixf를 대상 시스템이 있는 사이트에 복사합니다.
LINUX 시스템에서의 작동
1. 명령행 처리기(CLP)를 통해 인스턴스 SRCDB1을 작성하십시오.
# db2icrt SRCDB1
2. CREATE DATABASE 명령을 사용하여 SRCDB1 데이터베이스를 생성하고, 필요한 테이블스페이스를 생성하고, 필요한 데이터베이스 매개변수를 구성합니다.
# db2 데이터베이스 SRCDB1 생성
3. SRCDB1 데이터베이스에 연결하고 srcdb1_tables.ddl 스크립트를 실행하여 버퍼 풀, 테이블스페이스, UDF, 테이블 및 인덱스, 시퀀스, 뷰와 같은 데이터베이스 개체를 생성합니다.
# db2는 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의 설치 및 구성 프로세스는 다음과 같이 매우 간단합니다
. 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
-- 접두어는 apache의 설치 경로를 지정합니다.
--enable-module=so so 모듈(mod_so)을 정적으로 컴파일합니다. DSO 모드를 지원하는 아파치 서버 커널
# make && make install
3. 아파치 시작
# ln -s /usr/local/apache2/bin/apachectl /sbin/apachectl
# apachectl start
php 설치 및 구성 과정
중 PHP 설치 및 구성
프로세스, 주의해야 할 두 가지 측면이 있습니다. 첫 번째는 php와 apache http 서버의 조합이고, 두 번째는 php와 db2 데이터 소스 간의 연결입니다.
Apache 환경에 PHP를 설치할 때 정적 모듈, 동적 모듈(DSO) 및 CGI의 세 가지 설치 모드 중에서 선택할 수 있습니다. DSO 모드로 설치하는 것이 좋습니다. 이 모드의 유지 관리 및 업그레이드는 Apache를 다시 컴파일하지 않고도 필요에 따라 동적으로 추가할 수 있습니다. 물론 이렇게 하면 Apache 서버가 시작될 때 운영 효율성이 약간 감소하게 됩니다.
PHP가 DB2 데이터 소스에 연결하는 방법에는 통합 ODBC 드라이버, IBM_DB2 및 PDO(php 데이터 개체)라는 세 가지 방법이 있습니다.
◆Unified ODBC 드라이버는 PHP가 데이터베이스에 액세스할 수 있는 최초의 확장 모듈 중 하나입니다. DB2 v7.2부터 통합 ODBC 드라이버는 이에 대한 액세스를 지원합니다. 통합 ODBC 드라이버는 ODBC를 지원하는 모든 데이터베이스에 대한 통합 데이터 액세스 인터페이스를 제공합니다. 인터페이스의 일반성을 보장하기 위해 통합 ODBC 드라이버는 다양한 유형의 데이터베이스에 대해 특정 최적화를 수행하지 않습니다.
◆IBM_DB2는 DB2 데이터 소스와 상호 작용하기 위해 IBM이 개발하고 유지 관리하는 확장 모듈입니다. 오픈 소스 계약을 준수합니다. DB2 UDB 및 PHP 4.x 기반 애플리케이션의 경우 IBM_DB2는 DB2 UDB에 최적화되어 있고 통합 ODBC 드라이버를 사용할 때 발생할 수 있는 일부 호환성 문제를 방지하므로 최선의 선택입니다. 그러나 IBM_DB2는 DB2 v8.2.2 이상만 지원합니다.
◆PDO는 PHP 5.x에서 지원되는 새로운 데이터베이스 액세스 방법입니다. 이 기사에서는 원본 데이터베이스와 대상 데이터베이스의 버전이 모두 DB2 v8.1이고 원본 환경은 통합 ODBC 드라이버를 사용하므로 환경 구성의 일관성을 유지하기 위해 통합 ODBC 드라이버가 여전히 선택됩니다. PHP와 데이터 소스 간의 액세스 인터페이스입니다.
1.
PHP의 설치 및 구성 과정은 다음과 같습니다.
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는 Apache의 소스 코드 없이 PHP 모듈을 DSO 파일로 컴파일할 수 있는 Perl 스크립트입니다.)
--with- ibm-db2는 통합 ODBC 드라이버를 PHP와 데이터 소스 간의 액세스 인터페이스로 지정하고 DB2 인스턴스 설치 디렉토리를 지정합니다.
--without-mysql mysql 데이터베이스의 기본 설치 구성을 무시합니다.
#cp php.ini-dist /usr/local/lib
php 설치 파일의 php.ini-dist를 php 구성으로 /usr/local/lib에 복사합니다. 문서.
# make && make install
# cp php.ini-dist /usr/local/lib/php.ini
3. /usr/local/apache2/conf/httpd.conf 파일을 편집하고 다음과 같이 변경합니다.
html 파일의 홈 디렉터리를 설정합니다: 웹 사이트에 필요한 웹 파일을 저장하는 데 사용되는 홈 디렉터리
"/home/web
./www/"는
apache의 기본값을 설정합니다. 파일 이름 순서: apache는 지원되는 기본 홈페이지 파일인
DirectoryIndex index.php index.html.var index.cgi index.html을
현재 경로에서 앞에서 뒤로 순서대로 검색합니다.PHP 해석 파일 접미사 추가: 모든 요구 사항에 대해 PHP로 해석되는 파일 유형의 경우 PHP 모듈을 로드하려면 AddType 구성 항목
AddType application/x-httpd-php .php .inc
에 접미사를 추가해야 합니다. libphp4 라이브러리 로드 .so 모듈 디렉터리 모듈 아래에 있는 모듈 구조 이름 php4_module을 활성 모듈 목록의
LoadModule php4_module module/libphp4.so
에 추가합니다. 4. /usr/local/apache2/bin/apachectl 구성 파일을 편집합니다.
DB2 데이터베이스와의 연결을 보장하려면 Apache 서비스를 시작할 때 동시에 DB2 클라이언트 인스턴스 환경을 초기화해야 합니다. DB2 인스턴스를 생성할 때 DB2는 필요한 DB2 인스턴스 환경을 초기화하는 쉘 스크립트를 자동으로 생성합니다.
if test -f /home/reportdb/sqllib/db2profile then
/home/reportdb/sqllib/ db2profile
fi
.5. 그런 다음 Apache 서버를 다시 시작하여 위의 구성 변경 사항을 상속합니다.
# apachectl 재시작
6. 다음 내용으로 PHP 테스트 파일 test.php를 작성합니다.
echo phpinfo();
?>
Apache의 html 파일인 /home/web/www의 메인 디렉터리에 저장하고, 브라우저를 통해 웹 페이지에 접속하면(아래 그림과 같이) 정상적으로 접속이 되면 설정 작업이 완료된 것입니다.
결론
이 기사에서는 주로 PHP 및 DB2 UDB 기반 애플리케이션 시스템의 크로스 플랫폼 마이그레이션 프로세스를 다루며, DB2 데이터베이스 시스템의 크로스 플랫폼 마이그레이션과 Apache 서버 및 PHP 애플리케이션 시스템의 설치 및 구성 프로세스를 자세히 설명합니다. 실제 경험을 바탕으로 DB2 데이터베이스 시스템의 크로스 플랫폼 마이그레이션 문제에 대한 실행 가능한 솔루션을 제공합니다. 또한 이 문서에서는 이식 과정에서 발생할 수 있는 문제에 대한 자세한 설명과 해당 해결 방법을 제공합니다. 이 기사에서는 AIX 시스템에서 LINUX 시스템으로의 애플리케이션 시스템 이식 프로세스만 다루지만 독자는 특정 이식 프로세스를 참조하여 다른 플랫폼에 적용할 수도 있습니다.