Минимизация конкуренции операций дискового ввода/вывода в Oracle
Из всех настраиваемых компонентов базы геоданных механизм хранения настраивается пользователями, наверное, наиболее часто и широко. У каждого администратора базы данных (DBA) есть излюбленный метод организации логических и физических структур хранения базы данных Oracle, основанный на собственном опыте и доказавших ранее свою эффективность технических приемах.
Вы можете создать самые разнообразные модели хранения для вашей базы геоданных, учитывающие специфику приложений и данных и соответствующие принципам управления в вашей организации. В ArcSDE есть несколько жестких требований к хранению. Вы может выбрать развертывание на компьютере начального уровня с одним диском данных и одним табличным пространством для данных ГИС или развертывание на высокопроизводительном сервере с десятками дисковых массивов и сотнями файлов Oracle, успешно поддерживающих среды, для которых они предназначены. К счастью, и ArcSDE, и Oracle можно адаптировать под использование любых ресурсов, которыми вы располагаете для эксплуатации базы геоданных.
Для минимизации конкуренции операций дискового ввода/вывода в базах данных Oracle размещайте, когда это возможно, часто используемые файлы на разных дисках и группируйте на одном диске часто используемые файлы с редко используемыми. Для этого
- Оцените размер каждого компонента базы данных и частоту доступа к нему.
- Расположите компоненты с учетом имеющегося дискового пространства и размера и числа дисков.
Составление схемы дисков и надписывание их названиями компонентов помогает отслеживать расположение каждого компонента. Держите эту схему под рукой при создании вашей базы данных.
Ниже даны несколько рекомендаций по устранению конкуренции ресурсов в базе геоданных ArcSDE, хранящейся в Oracle. Определения обсуждаемых здесь компонентов Oracle, таких как табличные пространства и сегменты, можно найти в документации Oracle.
-
Стремитесь к тому, чтобы структура вашей базы данных была максимально простой.
Это не значит, что она должна быть простой всегда, а значит лишь то, что сложность структуры должна соответствовать сложности моделируемых данных, а не определяться произвольными решениями. Начните с одного табличного пространства для базы геоданных и затем обосновывайте и документируйте каждое дополнительно создаваемое табличное пространство. Документирование назначения каждого табличного пространства не только пригодится в будущем любому, кто будет работать с системой (включая вас), но и побудит вас более тщательно оценивать эффект от каждого дополнительного табличного пространства, которым вам придется управлять.
-
Отделяйте системные сегменты от пользовательских.
Хранение пользовательских сегментов, таких как классы пространственных объектов, отдельно от системных сегментов, таких как словари классов ArcSDE и Oracle, упрощает управление квотами и позволяет избежать фрагментации, ведущей к снижению производительности. Кроме того, логически легче отслеживать активность на уровне табличного пространства, когда эти сегменты хранятся независимо.
-
Разделяйте данные различных проектов.
Использование выделенных табличных пространств для разных проектов, отделов организации или других логических единиц облегчает контроль и управление. Операции восстановления в табличном пространстве одного из проектов проекта не потребуют отключения другого проекта. Вы можете назначить неограниченные квоты в наборе табличных пространств пользователям одного отдела, не рискуя оставить без пространства другой отдел. Связывание операций ввода/вывода и увеличения размера файлов с командами или отдельными пользователями легче осуществить, когда у этих единиц есть собственные табличные пространства.
-
Отделяйте крупные сегменты от небольших.
Вы можете установить размер экстента на уровне табличного пространства, а не только на уровне сегмента. Использование единого размера экстента для всех сегментов в табличном пространстве устраняет фрагментацию свободного пространства и позволяет увеличить производительность. Однако, для этого необходимо сгруппировать сегменты по размеру, чтобы уравновесить число экстентов на сегмент, что ведет к потере пространства из-за избыточных размеров экстента. Разумно установить размер экстента 128 КБ для небольших таблиц, 1 МБ для больших классов пространственных объектов и 128 МБ для больших растров, хотя вы может выбрать и другие значения, соответствующие вашей среде и результатам исследований.
-
Отделяйте данные только для чтения от редактируемых данных.
Если все данные в табличном пространстве предназначены исключительно для чтения, вы можете установить для табличного пространства режим "только чтение". Это сократит объем регулярного резервного копирования данных. Кроме того, файлы данных только для чтения являются отличными кандидатами на хранение в избыточных массивах независимых дисков (RAID) 5, поскольку будут быстрее считываться, благодаря чередованию данных на дисках, и в то же время не будут замедлять работу массива дисков операциями записи.
-
Используйте несколько дисков или массивов дисков для хранения файлов.
Для обеспечения максимальной защиты программное обеспечение Oracle должно мультиплексировать или зеркально копировать важные файлы Oracle, такие как управляющие файлы, оперативные журналы изменений и архивные журналы изменений.
Даже в серверах базы данных с единственным дисковым массивом обычно предусмотрен автономный внутренний диск для хранения операционной системы, файла страниц и исполняемых файлов ArcSDE и Oracle. Используйте этот диск для хранения мультиплексированных управляющих файлов и файлов журнала изменений.Внимание:
В управляющие файлы записывается критически важная информация, например список файлов, входящих в базу данных. В оперативных и архивных файлах журнала изменений регистрируются изменения в базе данных для целей восстановления. Полностью восстановить базу данных без текущих копий этих файлов трудно или вообще невозможно.
-
При использовании дисковых массивов RAID правильно выбирайте тип RAID.
RAID – это класс сервисов управления хранением данных. Есть несколько стратегий хранения данных в RAID. Эти стратегии обозначаются номером или уровнем RAID. Существуют следующие уровни: RAID 0 или чередование, когда небольшие части одной файловой системы сохраняются на нескольких физических дисках в блоках, называемых полосами. Преимущество чередования состоит в повышении производительности. Распределяя содержание файловой системы по нескольким устройствам, контроллер RAID может считывать и записывать данные одновременно на нескольких дисках. Недостатком RAID 0 является то, что при выходе из строя одного диска в массиве RAID 0 весь массив становится непригодным.
Стратегия RAID 1 или зеркалирование предусматривает хранение копии всего, что записано на одном диске, на другом диске. Преимуществом зеркалирования является защита данных. Потеря одного диска базы данных не ведет к потере данных и снижению производительности при выходе диска из строя. По этой причине RAID 1 широко используется для баз геоданных, особенно там, где требуется высокая отказоустойчивость. Недостатком зеркалирования является дополнительная стоимость. Поскольку данные хранятся в двух экземплярах, для них требуется вдвое больше дисков по сравнению с автономными дисками или дисками с чередованием. Кроме того, несколько увеличивается время записи, поскольку необходимо записывать дополнительный экземпляр данных. RAID 10, называемый также RAID 1+0, сочетает преимущества уровней RAID 1 и 0. В массивах RAID 10 полосы данных чередуются в наборах зеркалированных дисков. Благодаря этому достигается производительность RAID 0 при уровне защиты данных RAID 1. RAID 10 и разнообразные реализации устройств хранения на основе этой стратегии позволяют обеспечить лучшую производительность ввода/вывода данных для высоконагруженных баз геоданных.
RAID 10 стоит дороже, поскольку для хранения зеркалированных данных требуется дополнительное аппаратное обеспечение. Вы можете использовать RAID 10 избирательно, чтобы обеспечить защиту данных и высокую скорость работы с часто используемыми файлами, и применять другие стратегии RAID или автономные конфигурации для данных только для чтения, архивированных или редко используемых данных. Если у вас есть возможность использовать RAID 10 для хранения всей базы данных, так и сделайте. Если нет, используйте сочетание различных стратегий RAID и конфигураций автономных дисков, позволяющее достичь оптимальной надежности и производительности имеющегося у вас аппаратного обеспечения. Там, где возможно, храните часто редактируемые файлы на устройствах RAID 1 или RAID 10. К таким файлам относятся журналы изменений и файлы данных для табличных пространств изменений. Если необходимо, используйте автономные диски с мультиплексированием Oracle и комплексную стратегию резервного копирования.
Стратегия RAID 5, называемая также чередованием с циклической записью информации о четности, требует в эквиваленте только одного дополнительного диска на весь массив для хранения избыточной информации. В RAID 5 данные распределяются по полосам на нескольких дисках, и для полосы сохраняется дополнительная информация о четности. Если один из дисков в массиве выходит из строя, процессор RAID может восстановить отсутствующие данные из остальных дисков и информации о четности. Преимуществами RAID 5 являются высокая скорость считывания, обеспечиваемая чередованием, и низкая стоимость хранения избыточных данных, благодаря использованию информации о четности, а не полного зеркалирования. Поскольку для баз геоданных характерны интенсивные операции чтения, RAID 5 хорошо подходит для приложений базы геоданных, особенно там, где не требуется очень высокая отказоустойчивость.
Однако, поскольку в RAID 5 избыточная информация хранится не полностью, вероятность потери данных выше, чем в RAID 10. Хотя такие случаи и редки, но при одновременном выходе из строя двух дисков в массиве RAID 5 оставшейся информации будет недостаточно для реконструкции утраченных данных, и весь массив станет непригодным. Кроме того, есть два фактора, которые могут снизить производительность. Во-первых, при записи данных в массив необходимо также вычислять и сохранять информацию о четности. Во-вторых, при выходе диска из строя значительно снижается скорость чтения и записи, пока процессор RAID восстанавливает на лету содержание утраченного диска. В случае высоконагруженной базы геоданных пропускная способность в это время может стать недостаточной для обеспечения приемлемого уровня обслуживания.
-
Используйте автоматизированное управление хранением Oracle.
В Oracle 10g появилась функция автоматизированного управления хранением (ASM). ASM является, по существу, системой RAID, оптимизированной для обслуживания баз данных Oracle. ASM использует экземпляр Oracle для распределения запросов на ввод/вывод данных в группе пустых разделов, управляемой как группа дисков. Группы дисков можно использовать для чередования, зеркалирования и специального зеркалирования, называемого высокой избыточностью, когда вместо обычных двух копий данных сохраняются три.
-
Используйте небольшое значение PCTFREE для данных только для чтения.
Oracle позволяет резервировать некоторый объем свободного пространства в каждом блоке данных при вставке новых данных в таблицу. Когда лимит свободного пространства в блоке выбран, Oracle больше не добавляет дополнительные данные в этот блок. Оставшееся свободное пространство используется только для обновлений существующих строк, хранящихся в этом блоке. Резервирование пространства для операций обновления позволяет избежать выхода строк за пределы доступного пространства в исходном блоке и необходимости перехода в новый блок. Переход в другой блок замедляет операции со строкой, как при обновлении, так и при последующем доступе к ней, например, при запросах.
Многие базы геоданных обновляются нечасто, либо потому что таблицы являются статичными, как это обычно бывает в случае растров, либо потому что они редактируются в версионном рабочем процессе, в котором реальные обновления заменены на пары операций удаления и вставки.
Поэтому, для максимизации в каждом блоке объема пространства, используемого для хранения данных базы геоданных, свободное пространство в ArcSDE по умолчанию не резервируется (в строках хранения DBTUNE значение PCTFREE равно 0). Если нужно зарезервировать свободное пространство для обновлений SQL пользовательскими приложениями, измените значения PCTFREE в конфигурации DBTUNE по умолчанию. Более подробно о конфигурации DBTUNE см. в Что такое таблица DBTUNE?, Что такое ключевые слова конфигурации и параметры DBTUNE? и параметры конфигурации DBTUNE в Oracle.