5. معالجة حقول الزيادة التلقائية في جداول قاعدة البيانات
بالنسبة للجداول التي تحتوي على حقول الزيادة التلقائية التي تحتاج إلى تحميل، أي أن ملف بيانات ixf الخاص بالجدول يحتوي على قيم أعمدة ذات زيادة تلقائية، يمكنك إضافة المعلمات التالية إلى أمر التحميل إلى التحكم في قيم حقول الزيادة التلقائية:
1). تم التعديل بواسطة الهوية: توجد قيم حقول الزيادة التلقائية في ملف البيانات المحمل، ويتم تجاهل قيم حقول الزيادة التلقائية في ملف البيانات عند التحميل؛
2). تم التعديل بواسطة الهوية المفقودة: لا توجد قيمة حقل زيادة تلقائية في ملف البيانات المحمل، ويتم إنشاء قيمة حقل الزيادة التلقائية تلقائيًا عند التحميل
3). ملف البيانات الذي تم تحميله، ويتم استخدام ملف البيانات عند التحميل.
من أجل جعل البيانات الموجودة في الجدول الذي يحتوي على حقول الزيادة التلقائية في قاعدة البيانات الهدف متسقة مع البيانات الموجودة في قاعدة البيانات المصدر، نختار استخدام المعلمة المعدلة بواسطة الهوية في مثال هذه المقالة، واستخدام حقل الزيادة التلقائية القيم في ملف البيانات عند استيراد البيانات. يمكن للقراء اختيار معلمات التحكم المناسبة وفقًا للمواقف المختلفة.
أولاً، ابحث في الملف srcdb1_tables.ddl عن كافة أسماء الجداول التي تحتوي على حقول الزيادة التلقائية (الجداول التي تحتوي على الحقول التي يتم إنشاؤها دائمًا كهوية)، ثم قم بإدراج الجزء المعدل بواسطة عبارة الهوية في هذه الجداول مع حقول الزيادة التلقائية في srcdb1_load.sql. في سطر أوامر التحميل المقابل.
القائمة 8. معالجة الحقول المضافة تلقائيًا في
تحميل البرنامج النصي db2 من test.ixf لـ ixf المعدل عن طريق إدراج الهوية في الاختبار
6. قم بتنفيذ البرنامج النصي للتصدير
لتصدير بيانات جميع الجداول.
# 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 لإنشاء تجمعات عازلة ومساحات الجدول وUDFs والجداول وكائنات قاعدة البيانات مثل الفهرس والتسلسل وطرق العرض.
# 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 الثنائي في وقت الترجمة، أو يمكن تجميعها في كائنات ديناميكية مشتركة (DSO) مستقلة عن ملف httpd الثنائي. يمكن تجميع وحدات DSO مع الخادم أو بشكل منفصل باستخدام أدوات ملحق Apache (apxs). التحميل الديناميكي أكثر مرونة من التحميل الثابت. لاستخدام ميزة التحميل الديناميكي، يجب تجميع خادم Apache ككائن ديناميكي مشترك (DSO، كائن ديناميكي مشترك). يعتمد دعم Apache لـ DSO على وحدة تسمى mod_so لدعم التحميل الديناميكي، يجب تجميع هذه الوحدة بشكل ثابت في kernel مسبقًا. لذلك، يمكنك استخدام الوحدة 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 && make install
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/ )
# القطران 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 وثيقة.
# make && make install
# 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 المطلوبة فقط:
if test -f /home/reportdb/sqllib/
db2profile
;
5. ثم أعد تشغيل خادم Apache لترث تغييرات التكوين المذكورة أعلاه.
# إعادة تشغيل أباتشيكتل
6. اكتب ملف اختبار PHP test.php بالمحتوى التالي:
echo phpinfo();
?>
قم بتخزينه في الدليل الرئيسي لملف html الخاص بـ Apache /home/web/www، وقم بالوصول إلى صفحة الويب من خلال المتصفح، إذا كان من الممكن الوصول إليها بشكل طبيعي (كما هو موضح في الشكل أدناه)، فقد اكتملت عملية التكوين.
الاستنتاج
تتناول هذه المقالة بشكل أساسي عملية الترحيل عبر الأنظمة الأساسية لنظام تطبيق يعتمد على PHP وDB2 UDB، وهي تعرض تفاصيل الترحيل عبر الأنظمة الأساسية لنظام قاعدة بيانات DB2 وعملية التثبيت والتكوين لخادم Apache ونظام تطبيق PHP. استناداً إلى الخبرة العملية، تم توفير حل عملي لمشكلة الترحيل عبر الأنظمة الأساسية لنظام قاعدة بيانات DB2. تقدم هذه المقالة أيضًا وصفًا تفصيليًا وحلولًا مناسبة للمشاكل التي قد تنشأ أثناء عملية الزرع. على الرغم من أن هذه المقالة تغطي فقط عملية زرع نظام التطبيق من نظام AIX إلى نظام LINUX، إلا أنه يمكن للقراء أيضًا الرجوع إلى عملية الزرع المحددة وتطبيقها على منصات أخرى.