Используем навыки работы с MySQL для изучения DB2 Express: DB2 против MySQL (администрирование и основные задачи)

Использование навыков в DB2 Universal Database

Требует ли ваша среда баз данных умения работать с несколькими системами баз данных одновременно? Если вы уже знаете MySQL, то можете использовать многие из имеющихся навыков для изучения DB2® Express. В этой статье, первой из серии статей по применению навыков работы с MySQL для изучения DB2, для начала предлагается сопоставление административных задач, типов данных, команд SQL, механизмов блокировки и т. п.

Алан Там (Allan Tham), специалист по предпродажной подготовке, ASEAN Techline, IBM

Алан  Там (Allan Tham)Алан Там (Allan Tham) работает в отделе технической предпродажной подготовки DB2 Content Manager для бизнес-партнеров. Он помогает им решать различные технические проблемы. Алан является сертифицированным администратором DB2 Content Management. До IBM он три года работал в пользовательском окружении администратором баз данных Oracle.



23.02.2006

Введение

Работа с разными базами данных – это образ жизни большинства администраторов баз данных. Очень редко администраторы просто управляют однородным набором баз данных. Часто в корпоративном центре обработки данных на стороне сервера имеются различные репозитарии, например, данные в виде таблиц, изображений или файлов видео/аудиозаписей, размещенные в разных базах данных, среди которых могут быть DB2 Universal Database™, Oracle, Microsoft® SQL Server, Informix®, Sybase или базы данных с открытым исходным кодом, например, MySQL. Большая часть компаний для управления этими разносортными базами требует от администратора баз данных навыков работы с несколькими базами одновременно, и те специалисты, которые покажут обширные знания различных источников данных, окажутся незаменимыми для корпоративного центра обработки данных.

Эта статья – первая в серии статей, которые помогут вам использовать имеющиеся навыки администрирования MySQL, чтобы приступить к изучению DB2 Express. Статья являет собой средство для быстрого продвижения к DB2 Express, так как в ней подчеркиваются особенности и функции и рассматриваются сильные стороны DB2 Express по сравнению с открытой базой данных MySQL.

Автор статьи сравнивает обычные административные задачи, но не углубляется в проблемы, связанные с управляемостью, стабильностью и масштабируемостью. Мы не будем рассматривать написание механизмов или принципы работы оптимизаторов для каждой базы. Цель статьи – начать процесс перенесения знаний и навыков в общем виде, или предоставить описание двух упомянутых программных продуктов для тех, кто достаточно заинтересован в их сравнении.

Для стесненных в финансах начинающих пользователей IBM предоставляет бесплатную версию DB2 Express, которая называется DB2 Express-C. DB2 Express-C имеет такой же базовый код, как DB2 Express Workgroup Edition и Enterprise Edition. С ростом бизнеса покупатели стремятся перейти либо на DB2 Workgroup, либо DB2 Enterprise, в которых можно добиться подлинно корпоративной высокой доступности и производительности благодаря использованию функции разбиения данных (Data Partitioning Feature, DPF) и функции высокой готовности к аварийному восстановлению (High Availability Disaster Recovery, HADR). DB2 Express-C идеально приспособлена для разработчиков C/C++, Java™, .NET®и PHP; ее можно бесплатно загрузить с сайта разработчика и использовать. Заметим, однако, что DB2 Express-C имеет ограничение на использование процессоров (не более двух) и оперативной памяти (не более 4 Гбайт). Сравнение вариантов распределенной платформы DB2 UDB можно найти в сравнительной таблице.


Темы

В данной статье будут рассмотрены следующие темы:

А теперь давайте перейдем к подробному рассмотрению каждой темы.


Установка

Сначала рассмотрим этапы установки MySQL и DB2 Universal Database Express edition. Обе СУБД просты в установке.

Установка MySQL

Установка сервера MySQL (вместе с настройкой после установки программы) требует немного больше действий, чем установка DB2 Express. Тем не менее, повторю: оба сервера баз данных просты в установке. Как MySQL, так и DB2 Express допускают послеустановочную настройку базы данных через инструменты администрирования графического интерфейса пользователя.

Примечания к программам установки MySQL – что включено

Для установки MySQL 5.0.18 Windows® программа установки сервера не включает администратор GUI или программу для просмотра запросов. После установки сервера MySQL вы получаете следующие продукты:

  • Клиент командной строки MySQL;
  • Руководство по MySQL;
  • Мастер настройки экземпляра сервера MySQL;

см. рисунок 1.

Рисунок 1. Что вы получаете вместе с MySQL
What you get

Чтобы получить GUI Administrator и Query Browser, необходимо загрузить отдельные программы установки. Обратите внимание, что на сайте имеются различные загружаемые файлы для разных платформ. Напротив, DB2 Express устанавливает все необходимые инструменты администрирования и утилиты за один раз; нет необходимости загружать что-то отдельно.

Установка DB2 Universal Database

DB2 logo Установка DB2 Universal Database Express editon очень проста. Чтобы установить программу, выполните следующие действия.

  1. Нажмите мышью кнопку Install Product на экране приветствия.
    Рисунок 2. Экран приветствия
    Экран приветствия
  2. Нажмите Next.
    Рисунок 3. Выберите программу, которую нужно установить
    Выберите программу, которую нужно установить
  3. Нажмите Next.
    Рисунок 4. Мастер установки
    Мастер установки
  4. Примите лицензионное соглашение и нажмите Next.
    Рисунок 5. Принятие лицензионного соглашения
    Принятие лицензионного соглашения
  5. Для данного примера выбрана стандартная установка Typical. Вы можете также выбрать Custom (Выборочная) или Compact (Компактная). Нажмите Next.
    Рисунок 6. Варианты установки - Typical, Compact или Custom
    Варианты установки - Typical, Compact или Custom
  6. Выберите диск и каталог, в который будет установлена программа. Можно оставить каталог по умолчанию.
    Рисунок 7. Установочный каталог
    Установочный каталог
  7. Введите пароль для db2admin. Идентификатор db2admin – это пользователь, создаваемый по умолчанию для администрирования сервера DB2.
    Рисунок 8. Информация о пользователе
    Информация о пользователе
  8. Нажмите Next. Обратите внимание, что вы можете на этом этапе настроить протоколы и варианты автозагрузки.
    Рисунок 9. Быстрая настройка
    Быстрая настройка
  9. Нажмите Next, чтобы установить программу.
    Рисунок 10. Нажмите кнопку, чтобы установить программу
    Нажмите кнопку, чтобы установить программу
  10. Нажмите Next. Обратите внимание, что вы можете на этом этапе настроить протоколы и варианты автозагрузки.
    Рисунок 11. Завершение установки
    Завершение установки

После установки DB2 Express имеет следующую конфигурацию (общая схема) Установочный каталог DB2 Express по умолчанию – C:\Program Files\IBM\SQLLIB. Обратите внимание, что в таблице показана раскладка по каталогам только для платформы Windows. Linux® и UNIX® имеют другие варианты путей.

Таблица 1. Раскладка по каталогам файлов DB2 Express
Имя каталогаСодержимое
/adsmсодержит файл dsmapipw.exe для шифрования пароля
/BINсодержит все двоичные файлы, необходимые для запуска, остановки и администрирования баз данных
/bndсодержит все связанные архивы
/convсодержит таблицы перекодировки для кодовых страниц
/DB2Связанные с экземпляром DB2 файлы. Например, файл журнала db2, db2diag.log
/DB2DAS00содержит файлы, связанные с сервером администрирования DB2 (DAS) Например, он содержит файл db2dasdiag.log в своем каталоге дампа. Если у вас несколько серверов DAS, то номер каждого следующего каталога будет больше на единицу, например DB2DAS01 и так далее. Обычно достаточно иметь один сервер DAS.
/javaсодержит драйверы JDBC™
/samplesсодержит множество примеров кода
/TOOLSсодержит, по большей части, файлы JAR для инструментов DB2
/tutorialsсодержит различные учебные руководства

Архитектура системы

В этой статье будут рассмотрены две системных структуры:

  • Структура памяти;
  • Контейнеры.

Сначала рассмотрим верхний уровень основного размещения в памяти DB2 Express. Дополнительную информацию по управлению памятью можно найти в статье на сайте developerWorks "The DB2 UDB memory model: How DB2 uses memory" (Модель памяти DB2 UDB: как DB2 использует память) (ссылка в разделе "Ресурсы").

Структура памяти

Рисунок 12. Структура памяти DB2 Express
Структура памяти DB2 Express

Эти компоненты предоставляют следующие функции:

  • Кэш пакетов (Package cache) – память, отведенная под хранение статических и динамических операторов SQL;
  • Буферный пул (Buffer pool) – область памяти, отведенная под хранение данных до их сброса на диски;
  • Буфер журнала (Log buffer) – область памяти, отведенная для хранения любых изменений в базе данных до сброса в файлы журнала на диск.

Контейнеры

В зависимости от используемого типа таблиц, MySQL хранит данные в одном файле, нескольких файлах или пространстве таблиц. Приведенная в конце этой статьи таблица 2 объединяет контейнеры, используемые MySQL и DB2 Express.

Рисунок 13. Контейнеры MySQL
Контейнеры MySQL

DB2 logo

В отличие от MySQL, DB2 Express хранит все данные в пространстве таблиц. Пространством таблиц называется логическое представление физических контейнеров в файловой системе. Вот некоторые сведения о пространстве таблиц:

  • База данных должна иметь по меньшей мере одно пространство таблиц. По умолчанию, обычная установка DB2 Express создает три пространства таблиц:
    • Syscatspace – используется для хранения информации системного каталога;
    • Tempspace1 – используется для хранения системных временных таблиц. Временное пространство таблиц может быть либо системным, либо пользовательским. Лучше всего создавать пользовательское временное пространство таблиц из системного;
    • Userspace1 – используется для хранения пользовательских данных.

    Размещение контейнеров DB2 Express в физической файловой системе показано на рисунке С:\DB2\ - это путь по умолчанию для базы данных, используемый администратором базы данных. Для нахождения пути к базе данных вы можете также использовать список команд активных баз данных. На рисунке представлен примерный вид структуры базы данных DB2, где каждый уровень представляет следующие элементы:

    Рисунок 14. Структура контейнеров DB2 Express
    Структура контейнеров DB2 Express
    • Диск/каталог – диск или каталог, заданный командой CREATE DATABASE;
    • Имя экземпляра DB2 – имя владельца экземпляра DB2;
    • NODE0000 – количество сегментов базы данных. 0 означает отсутствие разбиения;
    • SQL00001 – идентификаторы баз данных, начиная с 1;
    • SQLOGDIR – каталог журнала базы данных по умолчанию;
    • SQLT0000.0 – пространство таблиц каталога, SYSCATSPACE;
    • SQLT0001.0 – временное пространство таблиц, TEMPSPACE1;
    • SQLT0002.0 – пользовательское пространство таблиц, USERSPACE1.

    Администратор может в любое время создать дополнительные пространства таблиц, воспользовавшись, например, командами, показанными в листинге 1 and листинге 2 (дополнительную информацию по синтаксису создания пространства таблиц можно найти в разделе Информационный центр).

    Листинг 1. Создание системного пространства таблиц в DB2 Express
    Create System Temporary Tablespace systemp1_space
     	managed by system      
    	using ('c:\systemp1_space','d:\systemp1_space')
    Листинг 2. Создание пользовательского пространства таблиц в DB2 Express
    Create User Temporary Tablespace usertemp1_space
    	managed by database   
    	using (file 'c:\userdata1\usertemp1_space' 10000, 
                                file 'd:\userdata2\usertemp1_space' 20000)
  • Таблица может быть распределена по нескольким пространствам таблиц;
  • Представления, триггеры и хранимые процедуры также размещаются в пространствах таблиц;
  • Администраторы могут создать столько пространств таблиц, сколько нужно; каждое пространство таблиц может включать необходимое количество контейнеров. Поддерживается функция авторасширения;
  • Пространство таблицы может управляться системой (SMS) или базой данных (DMS).

Чаще всего администраторы баз данных DB2 сталкиваются с выбором: создать контейнер, управляемый системой, или контейнер, управляемый базой данных. Выбор определяется исключительно сочетанием нескольких факторов, таких как управляемость, бизнес-требования (например, размер базы данных и коэффициент роста) и параметры производительности. Обычно использование SMS подходит для малых сред, где система может при необходимости выделить больше места для базы данных. Для более тяжелых и более крупных сред предпочтительнее использовать DMS, так как в этом случае администратор может вручную выделить дополнительное место при помощи функции авторасширения. Не так уж редко встречается комбинация в одной базе данных обоих принципов, например, каталог и временные таблицы представлены в SMS, а индексы и данные - в DMS.

В таблице 2 подытожены различия между контейнерами MySQl и DB2 Express.

Таблица 2. Различия между контейнерами
База данныхТип таблицыПримечание
MySQLMyISAMСохраняется в файле с расширением .MYI для индексов и .MYD для данных. Только по одному файлу для индекса и данных, соответственно.
MySQLInnonDBХранит данные в пространстве таблиц, идентифицируемом параметром пути innodb_data_file_path. По умолчанию установлено следующее значение: ibdata1:10M:autoextend. Может использоваться несколько файлов данных.
MySQLMerge Файл .MRG содержит имена таблиц, которые должны использоваться как одна таблица, а файл .FRM - определения таблиц. Используется несколько файлов данных.
DB2 ExpressВсе типыХранится как пространство таблиц, которое может распределяться по нескольким дискам. Существует два типа контейнеров:
  • Управляемый системой (SMS) – управляется файлом операционной системы;
  • Управляемый базой данных (DMS) – управляется администратором базы данных.

Чтобы точно определить, какой тип пространства таблиц, SMS или DMS, следует использовать, ознакомьтесь со сравнительной информацией SMS и DMS в Центре информации по DB2.


Исполняемые файлы

Сначала рассмотрим важнейшие исполняемые файлы MySQL и их эквиваленты в DB2 Express. Затем опишем специфику исполняемых файлов DB2 Express. В этой статье мы концентрируемся на исполняемых файлах в среде операционной системы Windows. Испольняемые файлы для Linux и UNIX могут отличаться от описанных.

Таблица 3. Исполняемые файлы MySQL и DB2 Express
Имя исполняемого файла MySQLИмя исполняемого файла DB2 ExpressПримечание
MySQLInstanceConfig.exeУправляющий центр Control Center DB2Файл MySQLInstanceConfig используется для настройки экземпляра. DB2 использует для настройки параметров экземпляра интерфейс Control Center. См. раздел " Настройка параметров базы данных " этой статьи.
myisamchk.exeПроверка для обеспечения целостности таблиц MyISAMDB2 для тех же целей использует интерфейс Control Center. Для индекса вы можете использовать команду Check Index в окне Index или команду Check Index в окне Tablspace. Для таблицы используйте условие CHECK, чтобы обеспечить целостность. Для обеспечения целостности таблиц также используется команда SET INTEGRITY . Например, при помощи этой операции над таблицей в Control Center можно настроить целостность конкретной таблицы.

Инструмент db2dart может быть использован для проверки корректности архитектуры базы данных. Эквивалентом db2art в Control Center является команда inspect. Чтобы проверить целостность образа резервного копирования, воспользуйтесь командой db2ckbkp . Для проверки состояния всей системы баз данных используйте пользовательский интерфейс Health Center.

myisampack.exeОсуществляет сжатие таблицы MyISAMВключите параметр VALUE COMPRESSION в предложение create table, чтобы использовать компактный формат записей на уровне столбца или таблицы для уменьшения размера дискового пространства, занимаемого таблицей. API резервного копирования и восстановления базы данных предоставляет сжатие для уменьшения размера требуемого пространства.
mysql.exeКлиент MySQL для WindowsRuntime Client DB2 – отдельный программный продукт, который можно установить, чтобы обеспечить доступ к удаленным базам данных DB2.
mysqladmin.exeКлиент администрирования MySQL – при помощи этих команд можно выполнять следующие задачи (в числе прочих):
  • Создание базы данных;
  • Удаление базы данных;
  • Сброс на диск журналов, таблиц, состояния;
  • Перечисление процессов;
  • Выключение;
  • Запустить подчиненный процесс;
  • Остановить подчиненный процесс.
По существу командная строка DB2 может быть использована как для клиентских, так и для административных задач. Чтобы вызвать командную строку DB2, выберите All Programs -> IBM DB2 -> Command Line Tools.
mysqlbinlog.exeПроцесс Mysqlbinlog используется, по меньшей мере, в трех целях -
  • Регистрация всех транзакций базы данных;
  • Резервное копирование и восстановление.
  • Репликация.
DB2 Express поддерживает архивную регистрацию и регистрацию в реальном времени. Все транзакции регистрируются с той же целью, что и в MySQL. DB2 Express поддерживает бесконечно активный журнал для отдельной транзакции, чтобы длительная транзакция не завершилась неудачно (при необходимости выделяет физическое дисковое пространство), Максимальное поддерживаемый размер журнала 256 Гбайт.

По умолчанию DB2 также регистрирует ошибки в файле db2diag.log. Вы можете проанализировать журнал ошибок при помощи утилиты db2diag . Могут быть выбраны следующие уровни серьезности ошибок:

  • Info (Уведомление)
  • Warning (Предупреждение)
  • Error (Ошибка)
  • Severe (Серьезная ошибка)
  • Critical (Критическая ошибка)
  • Event (Событие)
mysqlcheck.exeИнспектирует состояние базы данных, например, с целью проверки, исправления, анализа или оптимизации таблицы. Пример: mysqlcheck -u root -p awtDB2 не имеет прямого аналога для проверки таблицы на повреждение. Любое повреждение таблицы может быть внесено в файл db2diag.log с временной меткой, указывающей, когда был снят дамп. Файлы дампа предназначены не для малодушных, именно так они мыслятся представителями службы поддержки DB2. Тем не менее, существуют действия, которые можно выполнить над таблицей, например:
  • Quiesce - например, quiesce tablespaces for table <имя_схемы>.<имя_таблицы> Share|Intent to Update|Exclusive;
  • Reorg - например, reorg table <имя_схемы>.<Имя таблицы>;
  • Reorg index - например, reorg indexes all for table <Имя схемы>.<Имя таблицы> allow no access;
  • Runstats - например, runstats on table <Имя схемы>.<Имя таблицы> on all columns allow write access;
  • Set Integriy - например, set integrity for <Имя схемыe>.<Имя таблицы> off no access cascade deferred.
mysqld.exeЗапускает сервер MySQL, можно использовать много параметров (чтобы узнать больше, наберите mysqld --help -- verbose)Экземпляр базы данных DB2 Express можно запустить при помощи команды db2start. Однако вы можете запустить несколько экземпляров, настроив параметр окружения db2instance на те экземпляры, которые вы хотите запустить. Чтобы остановить экземпляр, воспользуйтесь командой db2stop.

Обратите внимание, что для запуска и остановки экземпляра DB2 вы должны иметь полномочия SYSADM, SYSCTRL или SYSMAINT.

mysqldump.exeЭта утилита осуществляет экспорт таблиц, отдельных записей таблицы, целой базы данных или выбранных баз данных.DB2 Export - DB2 Express поддерживает экспорт четырех различных форматов таблиц или записей таблиц, а именно:
  • IXF - Integrated Exchange Format files (файлы собственного обменного формата);
  • ASC - файлы ASCII без разделителей;
  • DEL - файлы ASCII с разделителями;
  • WSF - файлы рабочих таблиц.

Чтобы экспорт был непосредственным, например, экспортируем данные из таблицы Employee: export to employee.del of del messages emp.log select * from allanwtham.employee.

mysqlimport.exeЭта утилита импортирует данные из неструктурированных файлов DB2 Import – поддерживает те же четыре формата, что и DB2 Export.
Нет аналогаЗагрузкаЗагрузка DB2 – ускоренная загрузка данных в базы данных
Нет аналогаАудитdb2audit - средство аудита для обнаружения неизвестного или неприемлемого доступа к данным
Нет аналогаОбъяснениеdb2expln – объясняет выбор плана доступа для статических предложений SQL.
Нет аналогаСредство конфигурацииdb2ca – настраивает удаленный доступ
Нет аналогаdb2adminсвязанные с сервером администрирования DB2 (DAS) административные задачи.

Типы таблиц базы данных

В MySQL существуют различные типы таблиц для разных целей. Вы можете комбинировать и приводить в соответствие эти различные типы таблиц в одной базе данных. Какой именно тип таблиц следует использовать, определяется потребностями. Перечислим типы таблиц (самые известные – это MyISAM и InnoDB):

  • SAM

    SAM – один из ранних типов таблиц. Этот тип, главным образом, используется в традиционных целях. Он вытесняется типом MyISAM, и разработчик планирует отказаться от поддержки этого типа таблиц.

  • MyISAM

    MyISAM является типом таблицы, который используется по умолчанию. Для создания таблицы типа MyISAM вы можете оставить настройки по умолчанию или явно определить тип таблицы, используя ключевое слово ENGINE, например:

    Листинг 3. Создание таблицы с использованием типа MyISAM
    Create table employee (
      empno int not null auto_increment primary key,
     firstnme varchar(30),
     lastname varchar(30),
     deptno int
      ) engine=MYISAM;

    MyISAM нельзя назвать типом таблиц, надежным в отношении транзакций. Для нескольких транзакций чтения/записи с высоким параллелизмом он не может считаться предпочтительным вариантом. MyISAM не гарантирует атомарности, непротиворечивости, изолированности и долговечности транзакции (принцип ACID). Однако MyISAM обеспечивает сжатие данных и полнотекстовый поиск. Индексы для таблиц типа MyISAM хранятся в файлах с расширением .MYI (MyIndex) , а файлы данных хранятся в файлах MYD (MyData). Тип таблиц MyISAM не использует понятие пространство таблиц – все данные и индексы хранятся в файлах. Чтобы проверить/исправить таблицы MyISAM, воспользуйтесь утилитой myisamchk, а для сжатия таблицы – myisampack. Единственный механизм блокировки, используемый в MyISAM – это блокировка на уровне таблицы, что означает непригодность этого типа для сред с интенсивным использованием данных.

  • InnoDB

    Все больше и больше видов бизнеса требует использования этого типа таблиц. InnoDB – это тип таблиц, совместимый с принципом ACID. Таблицы InnoDB хранят данные и индексы в пространстве таблиц, что позволяет распределить большое количество файлов по всей файловой системе. Первоначально этот тип таблиц был разработан компанией InnoBase Oy, он прекрасно приспособлен для быстрых, высокопроизводительных, надежных в отношении транзакций сред. InnoDB использует самый тонкий механизм блокировки, блокировку на уровне записей. Дополнительную информацию см. в разделе "Механизмы блокировки".

    Чтобы создать таблицу типа InnoDB, определите ключевое слово Innodb в параметре ENGINE предложения create table. Пример в листинге 4.

    Листинг 4. Создание таблицы с использованием типа InnoDBCreate
     table employee (
      empno int not null auto_increment primary key,
     firstnme varchar(30),
     lastname varchar(30),
     deptno int
      ) engine=InnoDB;
  • BerkeleyDB (BDB)

    Задачи этого типа таблиц - это достижение условий, которые отличают InnoDB. Разработанные компанией Sleepycat, таблицы этого типа хранятся в дереве B-tree c блокировкой на уровне страниц.

  • Merge

    Тип merge – это вариант MyISAM, решающий единственную крупную проблему с файлами. Он позволяет разместить несколько файлов MyISAM на различных дисках, а запросы могут выполняться на основании спецификации MERGE в предложении create table. Чтобы произвести вставку в таблицу merge, необходимо определить параметр INSERT_METHOD (либо first, либо last). По умолчанию доступны только операторы Select, Update и Delete.

  • Heap

    Хранит в памяти целую таблицу. Это обеспечивает высокую скорость, но при аварийной ситуации ведет к потере данных. Лучше всего использовать этот тип для временных таблиц.

DB2 logo DB2 Express хранит данные в контейнерах – как было замечено ранее, они могут управляться системой или базой данных. По умолчанию таблицы, создаваемые в DB2 Express, соответствуют принципам ACID. Здесь не существует несовместимых с ACID таблиц. Синтаксис создания таблиц очень прост.

В качестве примера создадим таблицу сотрудников с несколькими столбцами:

Листинг 5. Создание таблицы в DB2 Express
Create sequence sq1;
Create table employee1 
   (empno int not null default next_value of sq1,
    firstnme varchar(30), 
    lastname varchar(30), 
    deptno int, 
    primary key (empno))

Определение понятия ACID

В интернет-энциклопедии Википедия понятие ACID определяется следующим образом.

  • Атомарность (atomicity) – должны быть выполнены либо все части транзакции, либо ни одна из них. Транзакция должна быть либо завершена, либо отменена (откат транзакции);
  • Непротиворечивость (consistency) – каждая транзакция должна фиксировать ограничители целостности – заявленные правила непротиворечивости – для всей базы данных. Она не может оставить данные в противоречивом состоянии;
  • Изолированность (isolation) – две одновременные транзакции не могут пересекаться друг с другом. Промежуточные результаты внутри транзакции невидимы для других транзакций;
  • Долговечность (Durability) – завершенные транзакции впоследствии не могут быть отменены, как не могут быть отброшены их результаты. Они должны сохраняться (для экземпляра) после перезагрузки СУБД в результате аварийного завершения.

DB2 Express поддерживает еще четыре типа таблиц, а именно:

  • Временная таблица -

    Эта таблица, называемая также общим выражением таблицы, является временной таблицей в процессе выполнения предложения SQL. К ней можно обращаться без дополнительных перерасчетов столько раз, сколько необходимо. Таблицы такого типа могут быть использованы вместо представлений;

  • Типизированная таблица -

    Таблица, определенная при помощи структурированного типа. Структурированный тип – это тип данных, содержащий ряд атрибутов;

  • Сводная таблица -

    Таблица, извлекающая собственное определение из запроса. Используется, главным образом, в системах складского учета.

  • Таблица материализованного запроса -

    Таблица, извлекающая собственное определение из запроса или нескольких таблиц. Используется, главным образом, в системах складского учета;

Среди объектов базы данных, кроме таблиц, имеются индексы, функции, триггеры, хранимые процедуры и т. д., которые и составляют основу работы реляционной базы данных. В таблице 4 приводится параллельное сравнение этих объектов для двух систем:

Таблица 4. Сходства и различия между объектами баз данных
Название объектаMySQLDB2 ExpressПримечание
Пользовательская таблица×Два типа пользовательских таблиц
  • Временная таблица (общее выражение таблицы);
  • Типизированная таблица.
Производные таблицы в MySQL напоминают временные таблицы DB2 Express.
Пользовательские функцииПоддерживаются пользовательские функции скаляров и столбцов
Пользовательские типы данных×Используются три вида пользовательских типов данных -
  • Специальный тип;
  • Структурированный тип;
  • Ссылочный тип.
Хранимые процедурыDB2 Express поддерживает хранимые процедуры SQL и Java
ПредставленияMySQL поддерживает представления с версии 5
Обновляемые представленияDB2 Express поддерживает также типизированные представления
ТриггерыMySQL поддерживает триггеры с версии 5
Рекурсивный SQL×Как и рекурсивная функция, рекурсивный SQL в DB2 Express может рекурсивно использовать результирующее множество для получения окончательного результата.
Последовательности×В MySQL нет собственных средств поддержки последовательностей, но вы можете имитировать последовательность.

Настройка параметров базы данных

В MySQL параметры конфигурации определяются в разделе [mysqld] файла конфигурации my.cnf. Для систем под управлением Windows предусмотрено несколько примеров конфигурации, например, my-medium.ini. Существуют и другие файлы my-xxx.ini. MySQL предоставляет для Windows пример файла конфигурации *.ini. Один из разделов my-medium.ini представлен в следующем листинге. Обратите внимание, что вам нужно убрать символы комментариев с того типа таблицы, который вы выберете.

Листинг 6. Пример файла конфигурации MySQL
...
# The MySQL server
[mysqld]
port		= 3306
socket		= /tmp/mysql.sock
skip-locking
key_buffer = 16M
max_allowed_packet = 1 M
table_cache = 64
sort_buffer_size = 512K 
net_buffer_length = 8K
read_buffer_size = 256K 
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
...

# Uncomment the following if you are using InnoDB tables
#innodb_data_home_dir = /usr/local/var/
#innodb_data_file_path = ibdata1:10M:autoextend
#innodb_log_group_home_dir = /usr/local/var/ 
#innodb_log_arch_dir = /usr/local/var/
# You can set .._buffer_pool_size up to 50 - 80 %
# of RAM but beware of setting memory usage too high
#innodb_buffer_pool_size = 16M
#innodb_additional_mem_pool_size = 2M
# Set .._log_file_size to 25 % of buffer pool size
#innodb_log_file_size = 5M
#innodb_log_buffer_size = 8M
#innodb_flush_log_at_trx_commit = 1
#innodb_lock_wait_timeout = 50

В случае DB2 Express вы можете получить и установить значения параметров конфигурации базы данных или экземпляра через интерфейс Control Center или обработчик командной строки (CLP). Чтобы настроить конфигурацию базы данных через интерфейс Control Center, нажмите правой кнопкой мыши на выбранной базе данных и выберите Configure Parameters.

Рисунок 15. Использование правой кнопки мыши для настройки параметров
Использование правой кнопки мыши для настройки параметров

Обратите внимание: вы можете динамически изменять значения параметров в широких пределах (некоторые параметры начнут действовать только после остановки и перезапуска процесса администратора базы данных). Параметры конфигурации можно сгруппировать по следующим категориям:

  • Приложение;
  • Среда;
  • Журналы;
  • Обслуживание;
  • Производительность;
  • Восстановление.

Полный список информации можно найти в Центре информации по DB2.

Рисунок 16. Параметры конфигурации базы данных DB2 Express
Параметры конфигурации базы данных DB2 Express

Кроме того, чтобы запросить и настроить параметры конфигурации, вы можете использовать обработчик командной строки. Синтаксис команды для изменения конфигурации базы данных представлен в листинге 7:

Листинг 7. Синтаксис команды изменения конфигурации db
	>>-UPDATE--+-DATABASE-+--+-CONFIGURATION-+---------------------->
           '-DB-------'  +-CONFIG--------+
                         '-CFG-----------'

                                   .----------------------.
                                   V                      |
        >--+---------------------+--USING----config-keyword value-+----->
        '-FOR--database-alias-'

        .-IMMEDIATE-.
        >--+-----------+-----------------------------------------------><
        '-DEFERRED--'

Например, чтобы узнать параметры сервера администрирования, выполните команду db2 get admin cfg. Можно получить параметры конфигурации базы данных SAMPLE, выполнив команду db2 get db cfg for SAMPLE.

Поскольку IBM стремится к автоматизации продуктов DB2 UDB, пакет программных средств DB2 UDB Express поставляется с большим набором функций автоматизации, доступных через интерфейс Control Center. Мастера Сreate Database with Automation (Создание базы данных с функциями автоматизации), Designe Advisor (Консультант по проекту), Configuration Advisor (Консультант по настройке конфигурации), Configure Automatic Maintenance (Настройка автоматического обслуживания) и т. д. – это шаги в направлении автоматизации таких общих задач администрирования, как резервное копирование, настройка конфигурации и автоматическое обслуживание объектов базы данных, а также многое другое. Например, администраторы могут выбрать настройку параметров конфигурации баз данных при помощи консультанта Configuration Advisor. Эта функция освобождает администраторов от изнурительного подбора правильных параметров конфигурации, которые наилучшим образом подходили бы к базе данных. Configuration Advisor предложит использовать самые лучшие параметры конфигурации. Мы рекомендуем администраторам использовать эту функцию, чтобы добиться оптимальной производительности базы данных.


Графический интерфейс пользователя (GUI)

Администрирование при помощи графического интерфейса пользователя с неизбежностью становится образом жизни для многих администраторов. GUI не только предоставляет быстрый и простой способ выполнения некоторых задач, но также помогает в том случае, если вы забыли синтаксис какой-либо команды (или если вы вообще никогда не изучали команды). Все чаще простота использования становится решающим фактором, склоняющим пользователей к работе с инструментами администрирования графического интерфейса.

MySQL предоставляет два главных инструмента GUI – MySQL Administration и Query Browser. Пользователи, которые решают задачи администрирования традиционным способом, не очень жалуют администрирование при помощи графического интерфейса. Часто командная строка остается предпочитаемым методом. На сегодняшний день последняя из выпущенных версий MySQL Administrator - это версия 1.1.6.

Рисунок 17. Вход в систему MySQL Admin
Вход в систему MySQL Admin

После входа в систему задачи, перечисленные ниже, могут выполняться через этот графический Administrator (наряду с другими способами):

  • Управление сервисами – запуск и остановка сервисов;
  • Параметры запуска – параметры для таблиц MyISAM и InnoDB, буферов и кэша, файлов журналов, параметров настройки сети и безопасности;
  • Администрирование пользователей – назначение прав пользователям и группам и управление паролями;
  • Состояние – проверка состояния оперативной памяти и соединений;
  • Резервное копирование и восстановление.
Рисунок 18. MySQL Admin - задачи
MySQL Admin - задачи

Обратите внимание также на то, что вы можете использовать инструмент phpMyAdmin, который поставляется вместе с WAMP (текущая версия 1.6.0).

DB2 logo

Много можно сказать о графическом интерфейсе DB2 Express. При помощи графического интерфейса могут выполняться задачи администрирования базы данных, включая общее администрирование, мониторинг и настройка состояния, и т.д., как показано на рисунке 19:

Рисунок 19. Администрирование через GUI DB2 Express – различные аспекты
Администрирование через GUI DB2 Express – различные аспекты

Возможно, вы заметите, что из всех графических инструментов администрирования чаще всего используете Control Center DB2. Модуль Control Center DB2 можно запустить при помощи ярлыка, нажав мышью на зеленый значок в виде диска в системном лотке, который находится в правом нижнем углу рабочего стола Windows.

Рисунок 20. Администрирование через GUI DB2 Express – Control Center
Администрирование через GUI DB2 Express – Control Center

Control Center DB2 Express является контекстно-зависимым. Нажатие правой кнопкой мыши на любом элементе вызовет появление различных раскрывающихся меню, с которыми вы можете работать в зависимости от контекста ваших действий. Например, при нажатии правой кнопкой мыши на конкретной базе данных в меню появятся следующие варианты задач:

Рисунок 21. DB2 Express Control Center – список задач для базы данных
DB2 Express Control Center – список задач для базы данных

Еще одна отличительная особенность интерфейса Control Center DB2 заключается в том, что вы можете воспользоваться кнопкой SHOW COMMAND, чтобы увидеть соответствующую команду для выполнения задачи. В некоторых случаях можно выборочно сохранить команду в скрипт и запланировать ее выполнение в определенное время. Фактически, здесь много полезных функций, среди которых компоненты Design Advisor и Configuration Advisor, которые в данной статье не рассматриваются. Об этих замечательных функциях речь пойдет в одной из следующих статей.


Обработчик командной строки

MySQL предоставляет консоль для командной строки (mysql.exe). Задачи администрирования можно выполнять и при помощи этой консоли.

Рисунок 22. Командная строка MySQL
Командная строка MySQL

DB2 logo

В DB2 Express есть практически такая же консоль, как и в MySQL. Один из способов вызвать ее – это выбрать из меню All Programs -> IBM DB2 -> Command line tools -> Command Windows.

Все задачи администрирования могут быть выполнены в этой консоли.

Рисунок 23. Командная строка DB2 Express
Командная строка DB2 Express

Сравнение средств SQL

Известно, что не все операторы SQL могут быть перенесены с одной базы данных в другую в полном смысле слова. Это применимо и к переносу кода SQL из MySQL в DB2Express. Далее в статье мы подчеркнем различия операторов SQL. Это всего лишь попытка сопоставить некоторые различия между двумя системами, не прибегая к обходным маневрам. Обратите внимание также на то, что не все функции базы данных, поддерживаемые DB2 Express, в настоящее время поддерживаются MySQL. Например, возможность использования ограничений внешнего ключа доступна только для таблиц InnoDB в MySQL 5.1 согласно плану списка поддерживаемых функций:

  • Внешний ключ для всех типов таблиц кроме InnoDB;
  • "Горячее" резервное копирование таблиц MyISAM;
  • Переименование базы данных;
  • Ограничения на уровне столбца.

Давайте рассмотрим сходства и различия под следующими углами:

  • Оператор Select.

    Стандартный оператор SQL поддерживает ключевые слова DISTINCT, GROUP BY, ORDER BY и HAVING. Эти ключевые слова хорошо поддерживаются и MySQL, и DB2 Express. Однако для ограничения возвращаемого результирующего множества MySQL использует ключевое слово LIMIT, а DB2 Express - FETCH FIRST n ROWS. Пример выборки показан на рисунке 24:

    Рисунок 24. Использование ключевого слова Fetch n Rows в DB2 Express
    Использование ключевого слова Fetch n Rows в DB2 Express

    И MySQL, и DB2 Express поддерживают выражение CASE для проверки условий в предложении SQL. Например, можно определить желаемый вывод для запроса, который соответствует некоторым условиям. В следующем примере сотрудники классифицируются по размеру заработной платы.

    Листинг 7. Синтаксис команды Set Transaction
    Select empno, firstnme, lastname, 
       case
         when integer (salary) > 40000 then 'High'
         when integer (salary) > 30000 and integer (salary) < 40000 then 'Medium'
         else 'Low'
        end
    from employee

    Независимо от этого, DB2 Express поддерживает также выражения для вложенных таблиц. Вложенная таблица может рассматриваться как локальная временная таблица, которая определена и используется в границах предложения SQL.

    В MySQL имеется подзапрос одного значения, который эквивалентен скаляру full select DB2 Express.

  • Объединения – в следующей таблице приведены типы объединений, доступные и в MySQL, и в DB2 Express.
    Таблица 5. Типы объединений
    Типы объединенийMySQLDB2 ExpressПримечание
    Inner joinInner join (внутреннее объединение) отбирает записи, которые существуют в объединяемых таблицах. Традиционно обе системы используют для получения такого объединения запятые. Внутреннее объединение представляет собой результат декартова произведения данных таблиц. В MySQL это объединение также известно как декартово произведение. В DB2 Express не используется ключевое слово cross.
    Cross joinДекартово произведение. То же, что и внутреннее объединение
    Left [Outer] joinLeft [Outer] join (левое объединение или левое внешнее объединение) отбирает значения, соответствующие условию, и значения, представленные только в левой таблице. Например, в MySQL, если вам нужно отобрать все записи из таблицы tableA, отсутствующие в таблице tableB, предложение SQL будет выглядеть примерно так - select tableA.* from tableA left join tableB on tableA.id=tableB.id where tableB.id is null.
    Right [Outer] JoinRight [Outer] Join (правое внешнее объединение). Прямо противоположно левому объединению. Отбирает из объединяемых таблиц значения, соответствующие условию, и добавляет к ним значения, которые существуют только в правой таблице.
    Full [Outer] Join×Full [Outer] Join (полное внешнее объединение) отбирает из объединяемых таблиц значения, соответствующие условию, а также те значения, которые представлены только в другой таблице – либо левой, либо правой. Этот вариант объединения доступен только в MySQL.
    Straight join×В MySQL Straight join (прямое объединение) идентично объединению, за исключением того, что обращение к левой таблице происходит всегда до обращения к правой таблице. Хотя в DB2 не используется это ключевое слово, вы можете получить те же результаты в DB2 Express.
    Natural join×В MySQL Natural join (тривиальное объединение) является эквивалентом внутреннего объединения. Хотя в DB2 не используется это ключевое слово, вы можете получить те же результаты в DB2 Express.

    Обратите внимание, что вы можете назначить тип объединения через графический интерфейс SQL Assist. Следующий пример иллюстрирует, как можно использовать SQL Assist с доступными вариантами объединений.

    Рисунок 25. DB2. Объединение таблиц при помощи SQL Assist
    DB2. Объединение таблиц при помощи SQL Assist

Системные полномочия и привилегии

В MySQL существует два уровня привилегий – административные и пользовательские. Все привилегии могут быть предоставлены или отозваны, соответственно, операторами GRANT и REVOKE. Пользователю могут быть предоставлены привилегии пользователя – на создание, выбор, изменение, удаление, вставка, выполнение, индексирование объектов и т. д., или системные привилегии - alter, drop и shutdown(вспомните привилегии, предоставляемые MySQL.) Привилегированный пользователь будет иметь следующие привилегии по умолчанию:

Рисунок 26. Привилегии, доступные в MySQL
Привилегии, доступные в MySQL

DB2 logo

В DB2 Express используются как системные полномочия, так и привилегии. Системные полномочия – это набор предварительно определенных административных прав высшего уровня, который может быть назначен индивидуальному пользователю или группам пользователей для выполнения таких общих задач, как соединение с базой данных, создание, удаление, резервное копирование и восстановление баз данных, тогда как привилегии – как пользовательские, так и системные – обычно используются для действий с объектами. Сразу после установки DB2 Express предоставляет следующие уровни системных полномочий:

  • SYSADM - дминистрирование системы;
  • SYSCONTROl - Управление системой;
  • SYSMAINT - Обслуживание системы;
  • DBADM - Администратор базы данных.

Таким образом, SYSADM имеет самые высокие системные полномочия; однако чаще всего пользователь, выполняющий задачи резервного копирования и восстановления базы данных нуждается только в системных полномочиях SYSMAINT. Поэтому хорошее знание системных полномочий необходимо для правильного назначения их пользователям. Чтобы узнать свои системные полномочия, выполните команду get authorizations, которая сделает запрос системной таблицы каталога SYSCAT.DBAUTH. На рисунке 27 показан пример вывода команды get authorizations:

Рисунок 27. DB2 Express – вывод команды get authorization для текущего пользователя
DB2 Express – вывод команды get authorization для текущего пользователя

Привилегии в DB2 Express мало отличаются от привилегий MySQL. Привилегии (и пользовательские, и системные) могут быть предоставлены или отозваны командами GRANT или REVOKE. Существует три типа привилегий:

  • Привилегия на управление объектом – эта привилегия обычно предоставляется создателю объекта, это привилегия владельца. Например, если пользователь А создает таблицу В, то пользователю А автоматически предоставляется привилегия на управление объектом В;
  • Обычная привилегия – эта привилегия разрешает выполнять конкретные задачи. Привилегия предоставляется явно или неявно для выполнения таких операций над объектами базы данных, как SELECT, UPDATE, DELETE и т. д.;
  • Неявная привилегия – этот вид привилегий предоставляется в том случае, если пользователю уже предоставлена привилегия более высокого уровня. Например, если пользователь осуществляет выполнение пакета, неявная привилегия предоставляется "на лету", чтобы выполнение пакета успешно завершилось, не ожидая явного предоставления привилегий.

Рисунок 28 показывает некоторые из привилегий, которые могут быть предоставлены пользователю.

Рисунок 28. DB2 Express - управление привилегиями через Control Center
DB2 Express - Privileges administered via Control Centre

Обратите внимание, что вы можете выполнять предложения SQL GRANT и REVOKE также из командной строки.


Механизмы блокировки

Механизм MySQL InnoDB предоставляет надежные в отношении транзакций операторы, которые поддерживают четыре уровня локализации, описанные в спецификации SQL-1992. Чтобы обеспечить надежность в отношении транзакций, MySQL выполняет требования принципа ACID. По умолчанию MySQL использует уровень локализации Repeatable Read для всех транзакций. Но вы можете изменить уровень локализации любого нового входящего сеанса при помощи предложения Set Transaction. В предложении SQL можно использовать либо SESSION, либо GLOBAL. SESSION означает, что следующее соединение будут использовать данный набор локализации, тогда как GLOBAL означает, что и при последующих соединениях будет использоваться данный набор. Синтаксис команды Set Transaction показан в листинге 8.

Листинг 8. Синтаксис команды Set Transaction
SET [SESSION | GLOBAL] TRANSACTION ISOLATION LEVEL
    {READ UNCOMMITTED | READ COMMITTED
    | REPEATABLE READ | SERIALIZABLE}

Для всех четырех поддерживаемых уровней локализации, в таблице 6 показано, какой уровень локализации - phantom, dirty, or non-repeatable read - возможен (от самого строгого до самого слабого).

  • √ - состоится;
  • × - не состоится;
Таблица 6. Параметры локализации и чтения – состоится или не состоится
Уровень локализацииPhantom ReadNon Repeatable ReadDirty Read
Serializable×××
Repeatable Read××
Read Committed×
Read Uncommitted

DB2 logo

DB2 Express предоставляет такие же уровни локализации. Четыре уровня локализации, поддерживаемые DB2 Express, включают, от самого строгого до самого слабого:

  • Repeatable read - RR;
  • Read stability - RS;
  • Cursor stability - CS;
  • Uncommitted read – UR.

Благодаря тому, что каждый уровень локализации предоставляет определенную безопасность для транзакций, следует принять компромиссное решение, учитывая последствия использования более строгого уровня локализации для производительности системы. Например, чтение таблицы только для чтения не требует уровня Repeatable Read, достаточно и Uncommitted Read. Уровень локализации по умолчанию для встроенных предложений SQL - cursor stability (CS). Существуют способы, благодаря которым можно изменить уровень локализации (в зависимости от контекста транзакции).

  • Вы можете изменить уровень локализации при помощи ключевого слова With в стандартном предложении DML. Например, сделаем выборку из списка сотрудников с уровнем локализации UR;
  • Используйте команду изменения уровня локализации, если работаете с командной строкой;
  • Определите условие в файле db2cli.ini file, если используете интерфейс уровня вызова DB2.

В таблице 7 показаны уровни локализации для DB2 и их параметры чтения, от самого строгого до самого слабого:

  • √ - состоится;
  • × - не состоится;
Таблица 7. Параметры локализации и чтения – состоится или не состоится
Уровень локализацииPhantom ReadNon Repeatable ReadDirty Read
Repeatable read - RR×××
Read stability - RS××
Cursor stability - CS×
Uncommitted read - UR

DB2 Express поддерживает явные блокировки для пространства таблиц и таблиц. DB2 Express обеспечивает эскалацию блокировок, если DB2 определит, что блокировка таблицы потребует меньше ресурсов, чем блокировка записей в таблице. Такие параметры, как Locklist и Maxlocks, влияют на ход эскалации блокировки.


Поддержка разработки на языке PHP

Вследствие растущего применения PHP в качестве платформы для web-разработки, разработчики часто хотят приобрести быстро устанавливаемую и многофункциональную среду разработки, которая ликвидирует все препятствия. Вместе с MySQL поставляется дистрибутив быстрого инструмента разработки WAMP (текущая версия 1.6.1). Корпорация IBM совместно с компанией Zend Core предоставляет подобную комбинацию для разработки на языке PHP.

DB2 logo

Zend Core for IBM – это однородная, готовая, несложная в установке, предоставляющая поддержку PHP среда для разработки и эксплуатации. Этот продукт включает тесную интеграцию с IBM DB2 Universal Database и IBM Cloudscape®, собственную поддержку XML и web-сервисов, а также поддержку для растущего внедрения сервис-ориентированной архитектуры (Service Oriented Architectures, SOA). Она предоставляет фундамент для быстрой разработки и развертывания приложений, управляемых через базу данных и предлагает способ обновления от простой в использовании, нетребовательной к ресурсам базы данных Cloudscape до ответственной системы DB2, предоставляя согласованный пользовательский интерфейс между двумя системами. Дополнительную информацию можно найти на странице Zend Core, посвященной IBM.


Управление объектами LOB и файлами видео/аудиозаписей

В то время как большая часть разговоров об управлении данными сегодня касается сферы управления информационными ресурсами предприятия (Enterprise Content Management, ECM), MySQL в значительной степени является программным продуктом для управления структурированными данными. Пользователям, которые испытывают потребность в ECM, следует "наброситься" на существующие системы ECM, которые поддерживают MySQL в качестве серверной системы. MySQL работает с неструктурированными данными, используя ряд типов данных BLOB.

DB2 logo

C другой стороны, IBM предлагает DB2 Content Manager в качестве репозитария информационных ресурсов как для структурированных, так и для неструктурированных данных. Тому, кто хочет соответствовать сегодняшним требованиям бизнеса, где 80% данных хранятся в неструктурированном виде, программа типа Enterprise Content Management (ECM) кажется необходимой для корпоративной среды. Без правильного понимания этой технологии, возможно, кто-нибудь возьмется утверждать, что нет ничего сложного в создании системы управления информационными ресурсами предприятия с нуля. Давайте рассмотрим различные цифровые ресурсы типичного предприятия, их проблемы и отметим, что IBM DB2 Content Manager как раз и был создан с полным набором функций, который соответствует таким потребностям.

Информационными ресурсами могут называться:

  • Счета, заявления, отчеты;
  • Факсимильные и отсканированные документы;
  • Данные управления цепочками снабжения, системы взаимоотношений с клиентами и партнерами и системы планирования ресурсов предприятия;
  • Сообщения электронной почты и рабочие документы;
  • Аудиозаписи, видеоклипы и фотографии;
  • Web-содержимое.

Зачастую покупатели сталкиваются с проблемами, потому что их информационные ресурсы хранятся в различных форматах и размещены в разных местах. Без централизованного репозитария пользователи не могут эффективно использовать информационные ресурсы, оставляя сотрудничество только для обеспечения плавной непрерывности бизнеса. Потоки бизнес-процессов не организованы, и пользователи считают, что сложно вносить вклад в совместную работу и искать Web-cодержимое. На большинстве предприятий существуют общие проблемные точки.

Разработанный с учетом требования масштабирования, DB2 Content Manager имеет трехуровневую архитектуру, которая включает централизованное индексирование в модуль Library Server и хранилище объектов в Resource Manager. Гибкая система лицензирования с использованием авторизованных пользовательских лицензий делает возможным разместить столько модулей Resource Manager, сколько нужно для удовлетворения потребностей бизнеса. Например, двух модулей Resource Manager может оказаться достаточно для штаб-квартиры компании в Нью-Йорке, поскольку филиалы в Сиэттле, Атланте и Ванкувере могут иметь собственные модули Resource Manager. Пакет программных средств поставляется с кэшем локальной сети для минимизации сетевого трафика. IBM DB2 Content Manager поддерживает управление иерархическими хранилищами, причем объекты могут переноситься через определенные и регулярные промежутки времени на внешние устройства. Например, программа автоматизирует перенос объектов один раз в 6 месяцев через устройство памяти с прямым доступом (DASD) на внешние диски для хранения в течение 3 лет, а затем сохраняет их на ленточный носитель для хранения в течение 7 лет.

IBM DB2 Content Manager поставляется также с системными полномочиями, привилегиями и средствами управления доступом, что обеспечивает надежность и безопасность операций для пользователей или групп пользователей. IBM DB2 Content Manager обеспечивает надлежащий доступ и использование на любом уровне: от действий на уровне документа и очень гранулярных привилегий, таких как создание, изменение, удаление, печать, изменение аннотаций, до коллекции средств управления доступом модуля Resource Manager. Можно включить протоколирование событий для усиления аудита системы информационных ресурсов.

От создания до управления и распространения информационных ресурсов, жизненный цикл IBM управляет банками при помощи функций, предоставляемых системой IBM DB2 Content Manager. Некоторые из этих функций IBM DB2 Content Manager перечислены ниже:

  • сканирование по потребности;
  • массовая загрузка содержимого различных форматов;
  • собственный модуль просмотра контента через клиент Windows, web-клиент или портлет;
  • проверка на входе/проверка на выходе
  • поток процесса (может быть создан при помощи конструктора потоков графического интерфейса пользователя);
  • поддержка версий;
  • аннотации;
  • интеграция LDAP;
  • регистрация событий (как пользовательской, так и административной активности);
  • интеграция с комплексом программных средств SAP & Siebel;
  • интеграция с модулем управления записями IBM DB2 Record Management для достижения соответствия техническим требованиям;
  • интеграция в сферу деятельности покупателя;
  • содержит интерфейс для взаимодействия с Web-сервисами, который можно использовать в приложениях или с другими Web-сервисами;
  • преобразование схемы XML.

В случае разработки систем управления информационными ресурсами для собственных нужд покупателя, IBM DB2 Express предоставляет типы данных LOB/CLOB для использования с этой целью.


Типы данных

Типы данных в MySQL и DB2 Express похожи. Обратите внимание, что DB2 Express поддерживает и встроенные, и пользовательские типы данных (о которых говорилось ранее). Общая схема организации типов данных программой DB2 Express представлена нарисунке 29 :

Рисунок 29. DB2 Express – иерархия типов данных
DB2 Express – иерархия типов данных

Используя данную схему, сопоставьте типы данных MySQL с эквивалентами (или ближайшими приближениями) в DB2 Express, сравнивая следующие три основные категории.

  • Numeric (Числовые);
  • String (Строковые);
  • Time & date (Дата и время).

Дополнительную информацию о сходствах и различиях объектов баз данных см. в таблице 8.

Полное описание ограничений DB2 SQL можно найти в Центре информации по DB2.


Резервное копирование и восстановление данных

Резервное копирование и восстановление является необходимой практикой для обеспечения непрерывности бизнеса в случае неисправности носителя. Варианты резервного копирования и восстановления MySQL в значительной степени зависят от используемых типов таблиц. Например, такие типы таблиц, как MyISAM и InnoDB допускают обычное резервное копирование базы данных. Однако, начиная с версии 4, в MySQL в качестве коммерческого модуля расширения стало доступно "горячее" резервное копирование таблиц InnoDB; (InnoDB продукт корпорации Oracle Corp.), тогда как "горячее" резервное копирование для таблиц MyISAM все еще в плане поддержки для MySQL version 5.1.

DB2 logo

DB2 Express c самого начала предлагала оба способа – и "горячее", и "холодное" резервное копирование. При "холодном" копировании, безусловно, пользователи должны на время выполнения резервного копирования отключиться от базы данных. Последствиями "холодного" резервного копирования может стать потеря данных в случае неисправности носителя с последней резервной копией. "Горячее" резервное копирование, наоборот, позволяет непрерывно регистрировать транзакции без необходимости отключать базу данных во время резервного копирования. При надлежащем планировании, "горячая" резервная копия гарантирует отсутствие потери данных в случае неисправности носителя. Этот метод резервного копирования требует непрерывной круглосуточной работы оборудования.

В DB2 Express существует два метода регистрации, циклическая регистрация и архивная. Циклическая регистрация (при которой данные записываются циклически и перезаписываются в случае переполнения) позволяет осуществлять "холодное" резервное копирование, тогда как архивная регистрация (архивирует те данные, которые были завершены) позволяет выполнять "горячее" резервное копирование.

И "горячее", и "холодное" резервное копирование зависит от параметров, которые вы установите в файле db config, например, от тех, которые перечислены ниже:

  • LOGFILSIZ – Размер файла журнала. Общее количество страниц по 4 Кбайт для выделения памяти (по умолчанию - 250);
  • LOGPRIMARY – Общее количество первичных журналов (по умолчанию 3);
  • LOGSECOND – Общее количество вторичных журналов, которые могут использоваться после заполнения первичных журналов;
  • NEWLOGPATH – Для изменения места хранения файлов будущего журнала. Действует только после перезагрузки базы данных;
  • MIRRORLOGPATH – Дополнительный путь для записи журналов в целях предотвращения потери всех данных при неисправности в одном месте;
  • OVERFLOWLOGPATH – Определяет место записи журналов в процессе операции прогона для обеспечения доступа к журналам, хранимых в разных местах.

Выполнить "холодное" резервное копирование несложно. Сначала надо отключить базу данных, а затем выполнить команду, например db2 backup database <имя_db> to c:\backup.

"Горячее" резервное копирование почти также просто. Сначала установите параметр log retain в on, а затем выполните команду, например db2 backup database online <имя_db> to c:\backup.

Оба вида резервного копирования можно выполнить через интерфейс Control Center DB2 Express всего несколькими нажатиями мыши. Помимо этого, DB2 Express предоставляет возможность инкрементного и дифференциального резервного копирования.

  • Инкрементное - резервное копирование всех изменений с момента самого последнего успешного резервного копирования;
  • Дифференциальное – резервное копирование изменений с момента последнего успешного полного инкрементного или дифференциального резервного копирования.

Более подробно проблемы резервного копирования и восстановления будут рассмотрены в одной из следующих статей.


Заключение

В данной статье мы рассмотрели много аспектов серверов базы данных MySQL и DB2 Express. Не прикладывая много усилий, вы прошли через сравнение на основе установки, системной структуры, как оперативная память или контейнеры и добрались до методики резервного копирования. Эта статья, как уже указывалось ранее, была написана для того, чтобы предоставить работающим администраторам баз данных MySQL общую схему DB2 Express.


Оговорки

Данная статья написана на основе наших знаний. Если вы обнаружите какое-либо несоответствие, пожалуйста, не стесняйтесь сообщить об этом автору.


Благодарности

Особая благодарность Рагулу Китчлу (Rahul Kitchlu) и Гранту Хатчисону (Grant Hutchison) за рецензирование этой статьи.

Ресурсы

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Профиль создается, когда вы первый раз заходите в developerWorks. Информация в вашем профиле (имя, страна / регион, название компании) отображается для всех пользователей и будет сопровождать любой опубликованный вами контент пока вы специально не укажите скрыть название вашей компании. Вы можете обновить ваш IBM аккаунт в любое время.

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Information Management
ArticleID=148535
ArticleTitle=Используем навыки работы с MySQL для изучения DB2 Express: DB2 против MySQL (администрирование и основные задачи)
publish-date=02232006