5. Обработка полей автоинкремента в таблицах базы данных
Для таблиц, содержащих поля автоинкремента, которые необходимо загрузить, то есть файл данных ixf таблицы содержит значения столбцов с автоинкрементом, вы можете добавить следующие параметры в команду загрузки. управлять значениями полей автоинкремента:
1) изменено идентификатором: в загруженном файле данных имеются значения полей автоинкремента, а значения полей автоинкремента в файле данных игнорируются при загрузке;
2). Изменено идентификатором: в загруженном файле данных нет значения поля автоприращения, и значение поля автоинкремента генерируется автоматически при загрузке.
3) Изменено идентификатором: в нем есть значение поля автоинкремента; загруженный файл данных, и файл данных используется при загрузке. Значение поля автоинкремента в формате .
Чтобы данные в таблице, содержащей поля автоинкремента, в целевой базе данных соответствовали данным в исходной базе данных, мы решили использовать параметр, измененный по идентификатору в примере этой статьи, и использовать поле автоинкремента. значения в файле данных при импорте данных. Читатели могут выбрать подходящие параметры управления в зависимости от различных ситуаций.
Сначала найдите в файле srcdb1_tables.ddl все имена таблиц, которые содержат поля автоинкремента (таблицы, содержащие поля GENERATED ALWAYS AS IDENTITY), а затем вставьте фрагмент оператора, измененный с помощью идентификатора, в эти таблицы с полями автоинкремента в srcdb1_load.sql. в соответствующей командной строке загрузки.
Листинг 8. Обработка автоматически добавленных полей в сценарии загрузки
db2. Загрузка из test.ixf файла ixf, измененного с помощью вставки идентификатора в TEST
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 для создания пулов буферов, табличных пространств, пользовательских функций, таблиц и объектов базы данных, таких как индекс, последовательность и представления.
# 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 HTTP-сервер Apache представляет собой модульное программное обеспечение, и администраторы могут увеличивать или уменьшать функции, выбирая модули, включенные в сервер. Модули могут быть статически включены в двоичный файл httpd во время компиляции или скомпилированы в динамические общие объекты (DSO), независимые от двоичного файла httpd. Модули DSO можно компилировать вместе с сервером или отдельно с помощью инструментов расширения Apache (apxs). Динамическая загрузка более гибкая, чем статическая. Чтобы использовать функцию динамической загрузки, сервер Apache должен быть скомпилирован как динамический общий объект (DSO, Dynamic Shared Object). Поддержка DSO в Apache основана на модуле 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 && make install
3. Запустить apache
# ln -s /usr/local/apache2/bin/apachectl /sbin/apachectl
# apachectl запустить
процесс установки и настройки php
во время установки и настройки php , есть два аспекта, на которые необходимо обратить внимание: первый — это комбинация http-сервера php и apache, а второй — соединение между 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 документ.
# 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 elements/libphp4.so
в списке активных модулей4. Отредактируйте файл конфигурации /usr/local/apache2/bin/apachectl:
чтобы обеспечить соединение с базой данных DB2, при запуске службы Apache необходимо одновременно инициализировать среду экземпляра клиента DB2. При создании экземпляра DB2 DB2 автоматически создаст сценарий оболочки для инициализации необходимой среды экземпляра DB2. Просто вызовите его напрямую:
if test -f /home/reportdb/sqllib/db2profile
then
.
5. Затем перезапустите сервер Apache, чтобы унаследовать вышеуказанные изменения конфигурации.
# перезапуск apachectl
6. Напишите тестовый файл PHP test.php со следующим содержимым:
echo phpinfo();
?>
Сохраните его в главном каталоге html-файла Apache /home/web/www и получите доступ к веб-странице через браузер. Если доступ к ней возможен в обычном режиме (как показано на рисунке ниже), работа по настройке завершена.
Заключение
В этой статье в основном рассматривается процесс межплатформенной миграции системы приложений на основе PHP и DB2 UDB. В ней подробно описан процесс межплатформенной миграции системы баз данных DB2, а также процесс установки и настройки сервера Apache и системы приложений PHP. На основе практического опыта предложено реальное решение проблемы межплатформенной миграции системы баз данных DB2. В этой статье также дается подробное описание и соответствующие решения проблем, которые могут возникнуть в процессе трансплантации. Хотя в этой статье рассматривается только процесс трансплантации системы приложений из системы AIX в систему LINUX, читатели также могут ознакомиться с конкретным процессом трансплантации и применить его к другим платформам.