Данной теме в последнее время уделяют внимание немало компаний, в том числе и IBM. На недавнем семинаре, посвященном XenoBridge (один из продуктов, составляющих IBM Migration Factory), было показано, как он работает с базой данных Oracle. При этом заявляется, что возможна не только работа с другими базами, но и миграция между ними.
Рассмотрим способы межплатформенной миграции, которые предлагает сам Oracle. В первую очередь это проверенные временем способы переноса данных:
- export/import;
- create as select через db link;
- insert select через db link.
Эти способы существовали задолго до выхода Oracle Database 10g и в целом считаются медленными. Скорость миграции тем или иным способом существенно зависит от структуры базы данных, однако в общем можно сказать что скорость переноса 100Гб за 10 часов для export/import считается хорошей. Поэтому в среде администраторов Oracle существует устойчивое мнение, что данные способы не подходят для миграции современных 24x7 баз данных, когда размер базы 1Тб и больше, а окно не превышает 10 часов (одна ночь).
Рис. 1. Архитектура XenoBridge
Рис. 2. Cоздание логической структуры
Именно поэтому начиная с Oracle Database 10g появилась возможность конвертации Transportable Tablespace с помощью RMAN. Сами Transportable Tablespace существовали в Oracle и до выхода Oracle Database 10g, они позволяли относительно быстро мигрировать данные в рамках одной платформы. Теперь же появилась возможность конвертации, которая может быть организована как на старой платформе, так и на новой – там, где достаточно дискового пространства. Данным способом можно перенести базу данных размером 1Tб в среднем за 5-10 часов (на это время существенно влияет скорость сети и время отклика дисковой подсистемы).
Рис. 3. Основной этап миграции
Однако у межплатформенной миграции через Transportable Tablespace с конвертацией RMAN есть недостаток. База данных переносится физически (на уровне файлов) и нет никакой возможности ее реорганизовать. А в проектах миграции современных систем все чаще возникают дополнительные требования по реорганизации данных – по крайней мере в следующих направлениях:
- изменение фрагментации сегментов (как правило уплотнение таблиц);
- изменение структуры партиций (либо организация, либо реорганизация партициированных таблиц и индексов);
- перестройка индексов и (что реже) ограничений.
В этом случае Transportable Tablespace не помогают, и администраторам Oracle приходится возвращаться к старым «медленным» способам. Оказывается, что параллельный поэтапный export/import в сочетании с несколькими db link позволяет перенести 1Тб за 10 часов с попутной реорганизацией данных. Но несмотря на то, что в Oracle Database 10g появился достаточно удобный инструментарий (DataPump), такой проект получается трудоемким и только тестирование может занять месяцы. Для решения подобных задач как раз и создан XenoBridge, осуществляющий именно такой интеллектуальный алгоритм миграции, который описан выше.
При этом межплатформенная миграция Oracle Database с помощью XenoBridge выглядит следующим образом:
- перенос структуры базы данных с возможностью реорганизации;
- проверка перенесенной структуры в сравнении с изначальной;
- отключение индексов/триггеров/ограничений;
- интеллектуальный перенос самих данных – в зависимости от размера таблицы либо через db link, либо export/import параллельно для разных групп таблиц/партиций;
- включение триггеров/ограничений и пересоздание индексов с заданной степенью параллелизма.
На рис. 1 схематично представлена архитектура продукта XenoBridge – консоль имеет свой собственный репозиторий, в частности необходимый для реорганизации данных в процессе миграции.
Заявленная скорость миграции Oracle Database с помощью XenoBridge при средней скорости сети и среднем времени отклика дисковой подсистемы – 100Gb/час, что дает для 1Tb приемлемое время 10 часов. Наглядным примером работы XenoBridge является опыт специалистов IBM по миграции базы данных одного из крупных казахским банков (размер около 1Тб). Данные были успешно перенесены в выделенное окно (порядка 12 часов), при этом все процессоры в ходе миграции были постоянно загружены на 90-95%, что является хорошим показателем утилизации и едва ли достижимо при «ручной» миграции «медленными» способами.
В завершение следует сказать, что продукт XenoBridge имеет дружественный интерфейс, существенно облегчающий процесс межплатформенной миграции Oracle Database. На рис. 2 и рис. 3 приведены примеры этого интерфейса для двух важнейших этапов миграции – создания логической структуры и собственно переноса данных.