Кери Миллсап,
Oracle Corporation
Август 21, 1996
Конфигурирование сервера Oracle для сверхбольших баз данных
(Configuring Oracle Server for VLDB,
by Cary V. Millsap Oracle Corporation
August 21, 1996)
Источник: Oracle System Performance Group Technical Paper, August 21, 1996 (Технический Документ Группы по Производительности Корпорации Oracle, 21 августа, 1996), http://www.oreilly.com/catalog/oressentials2/chapter/vldb1.pdf, а также http://dsvolk.msk.ru/oracle/papers/lio_pio.pdf
Русский перевод: http://mprusov.narod.ru/oracle/vldb-ru.pdf, переводчик М.Прусов
[От редакции OM/RE: Предлагаемый Вашему вниманию фрагмент перевода большой статьи Кери Миллсапа (Cary V. Millsap) предназначен, чтобы сориентировать наших читателей в проблематике построения и применения сверхбольших баз данных Oracle.
Не трудно заметить, что по современным воззрениям это - очень давняя статья, которая, по нашему мнению, не потеряла своей значимости до настоящего времени, хотя бы потому, что многие приведенные в ней сведения до сих пор повторяются в самых современных изданиях, где со ссылкой на Кери Миллсапа, а где уже считаются само собой известной информацией. Это ли не "народное" признание автора! М.б. поэтому не удалось обнаружить исконного, первоначального адреса нахождения авторского текста, но, к счастью, статья нашлась и у нас в отечестве, и на сайте издательства OREILY, а ее переводчик сохранил свой труд на своем сайте.
Мы выражаем свою благодарную признательность переводчику этой статьи Михаилу Прусову, с разрешения которого мы публикуем ниже несколько отрывков и "Содержание" и размещаем полный его текст по ссылке vldb-ru.pdf. ]
---***---***---
Аннотация
Эта статья поможет читателю настраивать сверхбольшие базы данных Oracle (Very Large Database, в дальнейшем — VLDB) для достижения высокой производительности и высокой доступности принизких издержках на эксплуатацию. Она описывает решения выбора размера блока данных Oracle, применения RAID-технологий, использования “линейных” устройств (raw-devices), конфигурирования журнальных файлов, разбиения табличных пространств на разделы, выбора параметров хранения и настройки сегментов отката. Статья описывает технологии и связанные с ними ограничения, а также технически детальные методы для оптимизации конфигурации в рамках этих ограничений.
1 Введение
VLDB является аббревиатурой, принятой для обозначения СверхБольших Баз Данных (Very Large Database). Словосочетание “сверхбольшая” имеет разное наполнение для разных людей, но оно всегда связано с ощущением трудности, сложности, высокой стоимости и риска. VLDB являются тем, что люди связывают с огромными базами данных, поддержка которых граничит с искусством. Требуются большая изобретательность, умение планировать, упорный труд и значительные капиталовложения для того, чтобы избежать очень серьезных разочарований при попытке внедрения VLDB.
1.1 Операционная сложность
Операционная сложность является очевидной проблемой VLDB. Как оператор VLDB Вы должны постоянно оценивать множество сильно связанных параметров. Система будет “наказывать” попытки применить радикальные или случайные изменения. Огромные объекты и длительные процессы оставляют Вам мало пространства для маневра при устранении проблемы. Это требует, в первую очередь, осторожности при планировании устранения проблемы. Состояние сотен или даже тысяч людей зависит от Вашей способности быстро принимать правильные решения. Здесь требуется талант и упорный труд.
Длительность многих важнейших процедур, например резервное копирование и восстановление, пропорциональна размеру объектов, которыми они манипулируют. Поэтому в больших БД эти важнейшие процедуры могут требовать очень больших временных интервалов. С ростом БД стоимость ошибок увеличивается. Операции — подобные реконфигурации диска, перестроению объекта БД, подсчету числа строк в таблице, откату транзакции, — могут выглядеть вполне безобидно в небольших БД, но быть полностью неприемлемыми для VLDB. Если действие требует нескольких часов Вашего
рабочего времени, Вы должны избегать его выполнения.
1.2 Высокая производительность
Увеличивают сложность и другие факторы.
Рассмотрим доступ к данным. Вы можете допустить использование неэффективного запроса, который требует 2 секунды работы процессора на высокопроизводительной современной системе с 20 пользователями, но Вы не сможете допустить такое же время обслуживания в системе с 1,200 пользователями, где идет непрерывная борьба за фиксаторы (latches), диски и процессорное время. Запросы к VLDB должны быть оптимизированы исключительно хорошо, иначе система развалиться.
Более того, многие VLDB становятся “VL” в первую очередь вследствие большого числа одновременно работающих пользователей и пакетных заданий, создающих большой объем транзакций. Большой объем транзакций создает стрессовые ситуации в подсистеме ввода/вывода связанные с генерацией redo-информации и записью в файлы данных. Высокий уровень параллелизма процессов перегружает фиксаторы и механизмы блокировок, разработанные для
перевода доступа к критическим ресурсам в последовательный режим (serialize).
1.3 Высокая доступность
Чем больше обдумываешь проблему — тем она сложней выглядит. VLDB часто являются источником данных для важных приложений с высокими требованиями доступности.
Разработчики индустриальных СУБД слышат формулу “семь–дней–по–двадцать–четыре–часа”, а мы цепенеем от монументальной сложности этой задачи. Ввиду электрических и сетевых неисправностей, некачественных модулей памяти и дисковых контроллеров, ошибок приложений и операционных систем, модернизации ПО и оборудования и просто случайных ошибок оператора, — достичь нескольких секунд или минут останова в год крайне сложно. Как обнаружить и исправить логические разрушения сотен и даже тысяч гигабайт данных, которые образовались вследствие ошибочного ввода оператора?
1.4 Преодоление сложностей VLDB
Путь к преодолению сложностей, присущих VLDB, лежит в упрощении БД настолько, насколько это возможно. Вы оптимизируете как СУБД, так и само приложение для снижения любых видов нагрузки. Вы выбираете структуры данных, которые минимизируют ввод/вывод при доступе к данным. Вы создаете приложения с максимально простыми транзакциями. Вы изолируете влияние вышедших из строя компонент на минимально возможные подмножества данных. Вы делайте единицы резервного копирования и восстановления
минимально возможными. Ниже перечислены некоторые аспекты, позволяющие построить хорошую VLDB:
Оптимизация выполнения последовательности бизнес-операций
Оптимизация логической модели данных
Оптимизация схемы БД
Построение надежной, высокопроизводительной конфигурации аппаратного обеспечения
Оптимизация физической конфигурации БД
Оптимизация SQL-операторов приложений
Оптимизация операционной системы и инстанции сервера Oracle
Создание корректных и надежных процедур сопровождения
В этой статье мы исследуем решения для физической конфигурации БД, необходимые для успешного построения VLDB.
---***---***---
Содержание
1. Введение
1.1. Операционная сложность
1.2 Высокая производительность
1.3 Высокая доступность
1.4 Преодоление сложностей VLDB
2. Размер блока СУБД Oracle
2.1 Уменьшение нагрузки на ввод/вывод
2.2 Улучшение использования пространства
2.3 Предотвращение узких мест при параллелизме
2.4 Компромиссы
3. Дисковая конфигурация
3.1 Структурный анализ конфигурации
3.2 RAID
3.3 Размер сегмента чередования
3.4 Размер массива
3.5 Линейные устройства
3.6 Конфигурация Oracle
4. Журнальные файлы
4.1 Баланс производительности и доступности
4.2 Контрольные точки сервера Oracle
4.3 Восстановление инстанции сервера Oracle
4.4 Размещение журнальных файлов
4.5 Размер журнального файла
4.6 Число журнальных файлов
5. Планирование табличных пространств
5.1 Назначение сегментов табличным пространствам
6 Параметры хранения
6.1 Maxextents
6.2 Свойства параметров хранения
6.3 Выбор параметров хранения
7. Сегменты отката
7.1 Размер сегмента отката
7.2 Количество сегментов отката
8. Заключение
Благодарности
Я искренне благодарю друзей за потраченное ими время и полезные комментарии: Dominic Delmolino, Greg Doherty, Tim Gorman, Todd Guay, Deepak Gupta, Gary Hallmark, Andrew Holdsworth, Phil Joel, Anjo Kolk, Mark Pavkovic, Richard Powell, Lyn Pratt, Willis Ranney, Craig Shallahamer, Hank Tullis, Hugh Ujhazy, Peter Utzig, Mitch Wallace, и Graham Wood.
Список литературы
[1] CHEN, P.; LEE, E.; GIBSON, G.; KATZ, R.; PATTERSON, D. 1994. “RAID: high-performance, reliable secondary storage” in ACM Computing Surveys, Vol.26 No. 2 (Jun 1994).
[2] GUI, JEFFREY. 1993. “OLTP and System Reliability” in OLTP Handbook, edited by Gary McClain, Intertext/McGraw-Hill, New York NY.
[3] MAULIK, B.; PATKAR, S. 1995. “Outage recovery timings” in Technical Reports Compendium Vol. I (Dec 1995). Oracle internal document.
[4] MILLSAP, C. 1995a. “The OFA Standard-Oracle7 for Open Systems”. Oracle internal document, available on-line at http://www.europa.com/~orapub/.
[5] MILLSAP, C. 1995b. “Oracle7 Server Space Management”. Oracle internal document, available on-line at http://www.europa.com/~orapub/.
[6] MILLSAP, C. 1996. Selecting the Optimal Oracle Database Block Size. Oracle internal document. Not yet available on-line.
[7] Oracle7 Server Administrator’s Guide. 1996. Oracle standard product documentation, Redwood Shores CA.
[8] Oracle7 Server Concepts Manual. 1996. Oracle standard product documentation,
Redwood Shores CA.
[9] PATTERSON, D.; GIBSON, G.; KATZ, R. 1988. “A case for redundant arrays of
inexpensive disks (RAID)” in International Conference on Management of Data (SIGMOD). ACM, New York: 109-116.
[10] TO, L. 1995. “Outage prevention, detection, and repair” in Technical Reports
Compendium Vol. I (Dec 1995). Oracle internal document.
[11] Understanding Disk Arrays. 1995. Sun Microsystems white paper, Mountain View CA.
О переводе
Перевод выполнен Михаилом Прусовым (mailto:mprusov@yandex.ru).
Приведенная в библиографии ссылка на http://www.europa.com/~orapub/, по всей
видимости, уже не действительны. Указанные документы можно найти либо на сайте компании Hotsos http://www.hotsos.com/, либо на сайте http://www.orapub.com/. В обоих случаях, Вам необходимо пройти бесплатную регистрацию. |