Сайт Игоря Гаршина Главная страница
Письмо автору сайта garchine@mail.ru

Опыт орадмина: 1. Инсталляция 2. Генерация 3. Миграция 4. ODBC 5. Администрация 6. Утилиты 7. Netware 8. RedHat 9. NT
Синхронизация: 1. Механизмы 2. Архитектуры 3а. Снапшоты 3б. Мастер-сайт 4. Сравнение ОС 5. RepMan Пр1. Файлы ORA Пр2. CONFIG.ORA Пр3. API Пр4. Словарь данных
Практика работы с Oracle - книга о репликации распределенной базы данных Oracle 8
Вся книга: Практика работы с Oracle: генерация, администрирование, репликация. И.К.Гаршин.
ISBN 5-901314-02-6 (рус.). УДК 004.42Oracle. ББК 32.973.26-018.2. Г21.

В 1999-2000 г. программисты «Нефтегазсистемы» разработали и внедрили в большинство ОАО МН «Транснефти Информационную систему паспортизации магистральных нефтепроводов «СКУТОР». Сначала он был создан на базе MS Access, затем переведен на Oracle 8 с поддкржкой асинхронной репликации с помощью программы Oracle Multimaster. В книге подробно описан авторский опыт перевода и внедрения этой базы данных.

Автор признателен руководителям и сотрудникам ЗАО «Нефтегазсистемы», начальникам и персоналу вычислительных центров региональных управлений ОАО «Транснефть», c чьей помощью был разработан и внедрен данный Oracle-проект.

Глава 4

Особенности создания репликаций Oracle в различных сетевых ОС

 

В этой главе…

 

·        ОС Novell Netware 5.0

·        Узкие места

·        Оптимизация

·        Технические требования

·        ОС MS Windows NT 4.0

·        ОС Linux RedHat 6.0

 

ОС Novell Netware 5.0

Узкие места

                Самым узким местом ОС Novell Netware является память. Особенность этой ОС в том, что при запуске каких-либо процессов выделяется часть кэш-памяти (Cache buffer memory - см. рис. 4.1), а при их окончании не вся кэш-память освобождается. А поскольку  для нормальной работы Novell Netware требуется не менее 20% памяти под кэш, то через некоторое время после интенсивной работы (а это в первую очередь относится к обмену транзакциями) доля кэш-памяти снижается до 1% и работа ОС становится невозможной (в БД Oracle при этом нельзя выполнить даже простейшую DDL-операцию). И вообще сама ОС для загрузки модулей требует много памяти. Т.о. построение механизма репликации в Oracle на базе Novell Netware возможно лишь при наличии большого объема оперативной памяти (не менее 256 Мбайт для БД с дест-сайтом и не менее 512 Мбайт для БД с деф-сайтом).

 

 

 

Рис. 4.1. Просмотр Cache buffer memory с помощью утилиты MONITOR.

 

            Вторым узким местом ОС Novell Netware является поддержка многозадачности. Более 1 БД Oracle могут существовать на Netware-сервере, но стабильная работа при этом не гарантирована. Иногда БД становятся недоступными и сервер приходится перезагружать. Если одна из БД участвует в репликации, то перезагрузку сервера приходится выполнять примерно раз в месяц. Если в репликации участвуют две БД, то сервер становится неработоспособными несколько раз в месяц, причем одной перезагрузкой ситуация не всегда исправляется. Иногда даже приходится восстанавливать протоколы. Уровень нестабильности, конечно, зависит от оперативной памяти сервера, оптимальности его настройки, конфигурационных параметров БД Oracle, интенсивности и общего кол-ва транзакций или других операций в Oracle.

            Есть определенные методы оптимизации ОС Novell Netware (см. Часть 2, Глава 4: ОС Novell Netware 5.0, Оптимизация), и их нужно применять для ускорения работы БД Oracle, но даже это не позволяет осуществлять репликацию данных при ограниченном объеме памяти Netware-сервера.

            Имеется только одно видимое удобство в использовании Novell Netware – возможность работы с Oracle с помощью удаленной консоли (эта возможность существует также в UNIX).

            Ниже приведены примеры из практики внедрения репликационного механизма на Netware-серверах с оперативной памятью 512 Мбайт на сервере с деф-сайтом (при наличии на сервере также другой БД с репликацией) и 128 Мбайт на серверах с дест-сайтами:

·         При генерации 3-й мастер-группы (самой большой по кол-ву таблиц и кол-ву записей) у Netware-сервера с памятью 128 Мбайт размер Cache buffer memory уменьшался до 1.2 Мбайт (1%), в результате чего Oracle становился недоступным и нужно было перегружать как БД, так и сервер.

·         При отключении Netware-сервера Предприятия (дест-сайт) на 2-3 дня (проводилась замена винчестера для создания нового сайта, но такое может реально происходить и при потере связи), на деф-сайте Объединения накапливалось до 1500-2000 транзакций, и при последующем подключении эти транзакции порождали на сервере Предприятия 2 ошибки (критическую ошибку ORA-00600 или нехватку памяти), а также часто делали недоступным Oracle на деф-сайте Объединения (а с ним и другая БД, хотя у сервера Объединения память 512 Мб).

·         При попытке пересоздать обновляемый снимок на сервере Предприятия (дест-сайт) (например, при изменении структуры таблиц) команда drop snapshot зависала и делала иногда сервер Предприятия также недоступным.

 

ПРИМЕЧАНИЕ.

Чтобы посмотреть распределение памяти введите команду MONITOR и выберите пункт меню System resources. После этого в верхней части экрана в окне Server memory statistics будут отображены разделы памяти и их объем в байтах и %:

·         Allocated memory pool

·         Cache buffer memory

·         Cache movable memory

·         Cache non-movable mem

·         Code and data memory

·         Total server work memory

 

Оптимизация

            Для оптимизации распределения памяти Netware-сервера были проделаны следующие операции:

·         Отключена криптография (естесственно, что еще раньше была отключена графическая JAVA-оболочка).

·         Пакет сетевого обмена уменьшен до минимального уровня + 10 байт и составил 1526 байт (это зависит от конфигурации сервера и версии NW и Service Pack), что дало 4 Мбайт.

·         Увеличен кэш для директория и другие кэши.

·         Уменьшено время выделения блоков для кэш.

Данная настройка привела к увеличению Cache buffer memory до 20-30 Мб (17% до запуска БД Oracle и 15% после), что явилось приемлемой величиной, хотя для нормальной работы Novell Netware 5 требуется не меньше 20%.

Кроме того, для ликвидации вышеназванной (п. Узкие места данного раздела) ошибки ORA-00600, фирма Oracle рекомендует переход на протокол IPC. Т.е. в данном случае можно соединяться с Oracle через IPC-сервис.

            После оптимизации Novell Netware наблюдалось следующее:

·         Создание 3-й мастер-группы проходит успешно, но после запуска транзакций кэш опять уменьшается до 1% и запуск скриптов в БД становится невозможным.

·         Это фрагментирует память на сервере Объединения и приводит в нерабочее состояние все имеющиеся на сервере БД.

·         Экспорт полной БД с помощью BAT-файла (на клиенте) также прерывается, хотя успешно проходит на сервере после запуска NCF-файла.

 

Технические требования

            Создание репликации на серверах Novell Netware возможно, только если на выделенном сервере деф-сайтаОбъединении) не менее 512 Мб, а на серверах с дест-сайтами (на Предприятиях) - не менее 256 Мб. Это связано с "пороком" Novell Netware - не полным освобождением кэша после окончания процесса.

            При отсутствии этих возможностей (если на серверах Предприятия не более 128 Мб) репликацию нужно создавать на других платформах: MS Windows NT, Linux RedHat, Sun Solaris.

            Но, даже создав дест-сайты на серверах Предприятий, полностью не решается проблема стабильной работы Oracle в Объединении. Решения может быть 2:

            1) Перенос Oracle на отдельный Netware-сервер с памятью не менее 512 Мбайт.

            2) Перенос на сервер NT, Linux или Solaris с памятью не менее 256 Мбайт.

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

            Следует также иметь ввиду, что большой поток транзакций может также сделать неработоспособным Netware-сервер Компании, где установлена Ваша система, если он имеет память менее 256 Мб.

 

ОС MS Windows NT 4.0

При работе БД Oracle в MS Windows NT с созданной с системой репликации ни одна из  проблем, описанных для ОС Novell Netware (см. Часть 2, Глава 4: ОС Novell Netware 5.0, Узкие места), не возникала. Т.е., в этой ОС работа Oracle устойчивая.

Кроме того, работа Oracle в MS Windows NT требует в 2 раза меньше оперативной памяти, чем в Novell Netware. Например на сервере с памятью 64 Мбайт приемлемо работают 2 БД Oracle, а с памятью 128 Мбайт – 3.

Пока обнаружен лишь один недостаток этой ОС: если БД участвует в репликации Мультимастер (т.е. является дест-сайтом), то ее не всегда удается перезапустить (через Apply после изменения конфигурационных параметров в Oracle Instance Manager) удаленно с помощью локального конфигурационного файла. При этом выдается одно из следующих сообщений:

 

MGR-03514: unable to start the database

ORA-00444: background process name failed while starting

ORA-00600:internal error code, arguments: [num],[?],[?],[?],[?],[?]

 

MGR-03514: unable to start the database

ORA-27102: out of memory

OSDC-426499680: …

 

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

Так же определенным неудобством является отсутствие удаленной консоли.

Инструкцию по установке ОС MS Windows NT 4.0 см. выше (Часть 1, Глава 9: Установка и настройка Windows NT).

 

ОС Linux RedHat 6.0

ОС Linux является версией Unix, предназначенной для настольных компьютеров. Разработка ведется Линусом Торвальдсом.

Это бесплатная система (распространяется под лицензией GNU) и по оценкам многих - сверхнадежная и полностью многозадачная.

ОС Linux RedHat 6.0 (как и MS Windows NT 4.0), экономнее по памяти, чем Novell Netware 5.0, в 2 раза. Особенно Linux удобен возможностью удаленного администрирования (вплоть до перезагрузки сервера, что, кстати, выполняется очень быстро). Например, с помощью утилиты Telnet можно войти в консоль сервера Linux (через меню Подключить - см. рис. 4.2) и делать все, что нужно в режиме командной строки (рис. 4.3). Для более привычного интерфейса в меню Терминал можно настроить форму курсора, шрифт, цвет шрифта, цвет фона  и т.д. (рис. 4.4). Кроме того, в этом случае можно также загружать некоторые графические утилиты («нортоновскую» оболочку Midnight Commander - см. рис. 9.1, редакторы текстов vi и др.), что очень непроизводительно делать с помощью похожего средства MS Windows NT.

 

 

 

Рис. 4.2. Подключение к серверу Linux через утилиту Telnet.

 

 

 

Рис. 4.3. Утилита Telnet. Работа в Linux в режиме командной строки.

 

 

 

Рис. 4.4. Утилита Telnet. Окно настройки параметров работы.

 

 

Приятным сюрпризом является более быстрая работа утилит Oracle и процессов Oracle по сравнению даже с достаточно «быстрой» MS Windows NT (в несколько раз), например:

·         Прогон скрипта (CDb2.sql) по созданию табличных пространств, сегментов отката и словаря составляет в Novell Netware 40-60 мин, в MS Windows NT – 20-30 мин, в Linux RedHat – 9 мин;

·         Импорт 2 больших таблиц общим объемом 900 000 записей в Novell Netware занимает от 40 мин до 2 ч, в MS Windows NT – от 15 мин до 40 мин, в Linux RedHat – 9 мин;

·         Создание на сайте локальной сети мастер-группы из 57 таблиц общим объемом около 5000 записей выполняется в Novell Netware за 40 мин, в MS Windows NT – за 30 мин, в Linux RedHat – за 10-12 мин (за 2 мин все таблицы с записями реплицировались, через следующие 8-10 мин создалась репликационная поддержка).

Работа в БД Oracle в ОС Linux также устойчива.

Главная проблема – сложная предварительная настройка (корректировка скрипта предзагрузки, установка переменных памяти перед инсталляция сервера Oracle и др.).

Инструкцию по установке ОС Linux RedHat 6.0 см. выше (Часть 1, Глава 8: Установка и настройка Linux).


Игорь Гаршин, E-mail: garchine@mail.ru, URL: garshin.ru.

Страницы со статьей: Репликация Oracle | Все статьи
Яндекс.Метрика
На правах рекламы (см. условия): [an error occurred while processing this directive]