5. กำลังประมวลผลฟิลด์การเพิ่มอัตโนมัติในตารางฐานข้อมูล
สำหรับตารางที่มีฟิลด์การเพิ่มอัตโนมัติซึ่งจำเป็นต้องโหลด นั่นคือ ไฟล์ข้อมูล ixf ของตารางมีค่าคอลัมน์การเพิ่มอัตโนมัติ คุณสามารถเพิ่มพารามิเตอร์ต่อไปนี้ลงในคำสั่ง load ได้ ควบคุมค่าฟิลด์ที่เพิ่มขึ้นอัตโนมัติ:
1) แก้ไขโดย Identignore: มีค่าฟิลด์เพิ่มอัตโนมัติในไฟล์ข้อมูลที่โหลด และค่าฟิลด์เพิ่มอัตโนมัติในไฟล์ข้อมูลจะถูกละเว้นเมื่อโหลด
โดย
การระบุตัวตน: ไม่มีค่าฟิลด์เพิ่มอัตโนมัติในไฟล์ข้อมูลที่โหลด และค่าฟิลด์เพิ่มอัตโนมัติจะถูกสร้างขึ้นโดยอัตโนมัติเมื่อโหลด
ไฟล์ข้อมูลที่โหลด และไฟล์ข้อมูลจะถูกใช้เมื่อโหลด ค่าฟิลด์ที่เพิ่มขึ้นอัตโนมัติใน
เพื่อให้ข้อมูลในตารางที่มีฟิลด์การเพิ่มอัตโนมัติในฐานข้อมูลเป้าหมายสอดคล้องกับข้อมูลในฐานข้อมูลต้นทาง เราเลือกใช้พารามิเตอร์ที่แก้ไขโดย Identityoverride ในตัวอย่างของบทความนี้ และใช้ฟิลด์การเพิ่มอัตโนมัติ ค่าในไฟล์ข้อมูลเมื่อนำเข้าข้อมูล ผู้อ่านสามารถเลือกพารามิเตอร์การควบคุมที่เหมาะสมตามสถานการณ์ต่างๆ
ขั้นแรก ค้นหาไฟล์ srcdb1_tables.ddl เพื่อหาชื่อตารางทั้งหมดที่มีฟิลด์ส่วนเพิ่มอัตโนมัติ (ตารางที่มีฟิลด์ GENERATED ALWAYS AS IDENTITY) จากนั้นแทรกส่วนคำสั่งที่แก้ไขโดย Identityoverride ลงในตารางเหล่านี้ด้วยฟิลด์ส่วนเพิ่มอัตโนมัติใน srcdb1_load.sql ในบรรทัดคำสั่งโหลดที่สอดคล้องกัน
รายการ8.
การประมวลผลฟิลด์ที่เพิ่มอัตโนมัติในสคริปต์โหลด
db2 โหลดจาก test.ixf ของ ixf ที่แก้ไขโดย Identityoverride แทรกลงใน TEST
รันสคริปต์การส่งออก
เพื่อส่งออกข้อมูลของตารางทั้งหมด
# db2 -tvf
ข้อมูลตารางที่ส่งออกโดย srcdb1_export.sql จะถูกเก็บไว้ในเส้นทางปัจจุบันในรูปแบบ ixf
7. การบันทึกสคริปต์และไฟล์ข้อมูล
คัดลอกสคริปต์ DDL และไฟล์ข้อมูลทั้งหมด *.ixf ไปยังไซต์ที่ระบบเป้าหมายตั้งอยู่
การทำงานบนระบบ LINUX
1. สร้างอินสแตนซ์ SRCDB1 ผ่านตัวประมวลผลบรรทัดคำสั่ง (CLP):
# 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 แบบคงที่ ณ เวลาคอมไพล์ หรือสามารถคอมไพล์เป็น Dynamic Shared Objects (DSO) โดยไม่ขึ้นอยู่กับไบนารี httpd โมดูล 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
-- คำนำหน้าระบุเส้นทางการติดตั้งของ apache
--enable-module=so รวบรวมโมดูล so (mod_so) แบบคงที่ลงใน เคอร์เนลเซิร์ฟเวอร์ apache เพื่อรองรับโหมด DSO
# make && ทำการติดตั้ง
3. เริ่ม apache
# ln -s /usr/local/apache2/bin/apachectl /sbin/apachectl
# apachectl เริ่ม
การติดตั้ง php และกระบวนการกำหนดค่า
ระหว่างการติดตั้งและการกำหนดค่าของ php มีสองด้านที่ต้องให้ความสนใจ ด้านแรกคือการรวมกันของเซิร์ฟเวอร์ php และ apache http และด้านที่สองคือการเชื่อมต่อระหว่างแหล่งข้อมูล php และ db2
เมื่อติดตั้ง PHP ในสภาพแวดล้อม Apache จะมีโหมดการติดตั้งสามโหมดให้เลือก: โมดูลคงที่ โมดูลไดนามิก (DSO) และ CGI ขอแนะนำให้ติดตั้งในโหมด DSO การบำรุงรักษาและการอัพเกรดโหมดนี้ค่อนข้างง่าย สามารถเพิ่มโมดูลการทำงานใหม่ได้ตามความต้องการโดยไม่ต้องคอมไพล์ Apache ใหม่ แน่นอนว่าการทำเช่นนี้จะทำให้ประสิทธิภาพการทำงานลดลงบ้าง เซิร์ฟเวอร์ Apache จะช้าลงประมาณ 20% เมื่อเริ่มทำงาน
นอกจากนี้ยังมีสามวิธีสำหรับ PHP ในการเชื่อมต่อกับแหล่งข้อมูล DB2: ไดรเวอร์ ODBC แบบรวม, IBM_DB2 และ PDO (วัตถุข้อมูล php)
◆ไดรเวอร์ ODBC แบบรวมเป็นหนึ่งในโมดูลส่วนขยายที่เก่าแก่ที่สุดสำหรับ PHP ในการเข้าถึงฐานข้อมูล ตั้งแต่ DB2 v7.2 เป็นต้นไป ไดรเวอร์ ODBC แบบรวมรองรับการเข้าถึง โปรแกรมควบคุม ODBC แบบรวมมีอินเทอร์เฟซการเข้าถึงข้อมูลแบบรวมสำหรับฐานข้อมูลทั้งหมดที่รองรับ ODBC เพื่อให้มั่นใจถึงความทั่วไปของอินเทอร์เฟซ โปรแกรมควบคุม ODBC แบบรวมไม่ได้ทำการปรับให้เหมาะสมเฉพาะสำหรับฐานข้อมูลประเภทต่างๆ
◆IBM_DB2 เป็นโมดูลส่วนขยายที่พัฒนาและดูแลโดย IBM เพื่อโต้ตอบกับแหล่งข้อมูล DB2 ซึ่งสอดคล้องกับข้อตกลงโอเพ่นซอร์ส สำหรับแอปพลิเคชันที่ใช้ 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 และแหล่งข้อมูล
ขั้นตอนการติดตั้งและกำหนดค่า 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 ซึ่งสามารถคอมไพล์โมดูล php ลงในไฟล์ DSO โดยไม่ต้องใช้ซอร์สโค้ดของ apache)
--with- ibm-db2 ระบุไดรเวอร์ ODBC แบบรวมเป็นอินเทอร์เฟซการเข้าถึงระหว่าง php และแหล่งข้อมูล และระบุไดเร็กทอรีการติดตั้งอินสแตนซ์ DB2
--without-mysql ละเว้นการกำหนดค่าการติดตั้งเริ่มต้นของฐานข้อมูล mysql
#cp php.ini-dist /usr/local/lib
คัดลอก php.ini-dist ในไฟล์การติดตั้ง php ไปที่ /usr/local/lib เป็นการกำหนดค่า php เอกสาร.
# ทำ && ทำการติดตั้ง
# cp php.ini-dist /usr/local/lib/php.ini
3. แก้ไขไฟล์ /usr/local/apache2/conf/httpd.conf และทำการเปลี่ยนแปลงต่อไปนี้:
ตั้งค่าโฮมไดเร็กทอรีของไฟล์ html: โฮมไดเร็กทอรีที่ใช้เก็บไฟล์เว็บที่จำเป็นสำหรับเว็บไซต์
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: โหลดไลบรารี libphp4 .so ใต้โมดูลไดเร็กทอรีโมดูล และเพิ่มชื่อโครงสร้างโมดูล php4_module ลงใน
LoadModule php4_module modules/libphp4.so
ในรายการโมดูลที่ใช้งานอยู่4 แก้ไขไฟล์การกำหนดค่า /usr/local/apache2/bin/apachectl:
เพื่อให้มั่นใจในการเชื่อมต่อกับฐานข้อมูล DB2 เมื่อเริ่มบริการ Apache คุณจะต้องเตรียมใช้งานสภาพแวดล้อมอินสแตนซ์ไคลเอนต์ DB2 ในเวลาเดียวกัน เมื่อสร้างอินสแตนซ์ DB2 DB2 จะสร้างเชลล์สคริปต์โดยอัตโนมัติเพื่อเริ่มต้นสภาพแวดล้อมอินสแตนซ์ DB2 ที่จำเป็น เพียงเรียกมันโดยตรง:
ถ้า test -f /home/reportdb/sqllib/
db2profile
;
5. จากนั้นรีสตาร์ทเซิร์ฟเวอร์ Apache เพื่อสืบทอดการเปลี่ยนแปลงการกำหนดค่าข้างต้น
#apachectl รีสตาร์ท
6 เขียนไฟล์ทดสอบ PHP test.php โดยมีเนื้อหาดังต่อไปนี้:
echo phpinfo();
?>
เก็บไว้ในไดเร็กทอรีหลักของไฟล์ html ของ apache /home/web/www และเข้าถึงหน้าเว็บผ่านเบราว์เซอร์ หากสามารถเข้าถึงได้ตามปกติ (ดังแสดงในรูปด้านล่าง) แสดงว่างานการกำหนดค่าเสร็จสมบูรณ์
ครอบคลุม
ถึงกระบวนการย้ายข้ามแพลตฟอร์มของระบบแอปพลิเคชันที่ใช้ PHP และ DB2 UDB เป็นหลัก โดยมีรายละเอียดเกี่ยวกับการโยกย้ายข้ามแพลตฟอร์มของระบบฐานข้อมูล DB2 และกระบวนการติดตั้งและกำหนดค่าของเซิร์ฟเวอร์ Apache และระบบแอปพลิเคชัน PHP จากประสบการณ์จริง ได้มีการจัดเตรียมโซลูชันที่เป็นไปได้สำหรับปัญหาการย้ายข้ามแพลตฟอร์มของระบบฐานข้อมูล DB2 บทความนี้ยังให้คำอธิบายโดยละเอียดและวิธีแก้ปัญหาที่เกี่ยวข้องสำหรับปัญหาที่อาจเกิดขึ้นระหว่างกระบวนการปลูกถ่าย แม้ว่าบทความนี้จะครอบคลุมเฉพาะกระบวนการปลูกถ่ายระบบแอปพลิเคชันจากระบบ AIX ไปยังระบบ LINUX แต่ผู้อ่านยังสามารถอ้างถึงกระบวนการปลูกถ่ายเฉพาะและนำไปใช้กับแพลตฟอร์มอื่นได้