ГОТОВЫЕ ДИПЛОМНЫЕ РАБОТЫ, КУРСОВЫЕ РАБОТЫ, ДИССЕРТАЦИИ И РЕФЕРАТЫ
Система управления базами данных Oracle | |
Автор | ошибка |
Вуз (город) | ТГПИ |
Количество страниц | 42 |
Год сдачи | 2008 |
Стоимость (руб.) | 1500 |
Содержание | Содержание
Введение 3 1 Архитектура СУБД Oracle 6 1.1 Термины “база данных” и “экземпляр” 6 1.2 Файлы и структура памяти 7 1.3 Физические процессы 20 Выводы по главе 1 29 2 Стратегии и средства настройки 31 2.1 SQL_TRACE, TIMED_STATISTICS и TKPROF 31 2.2 Средства контроля и отладки 34 2.3 Набор утилит StatsPack 36 Выводы по главе 2 38 Заключение 39 Список литературы 41 Введение Важнейшая задача компьютерных систем управления - хранение и обработка данных. Для ее решения было создано специализированное программное обеспечение - системы управления базами данных (СУБД), которые позволяют структурировать, систематизировать и организовывать данные для их компьютерного хранения и обработки. Невозможно представить себе деятельность современного предприятия или учреждения без использования профессиональных СУБД. Они составляют фундамент информационной деятельности во всех сферах - начиная с производства и заканчивая финансами и телекоммуникациями. Качество работы складывается как из аппаратного уровня, так и из программного уровня оснащения. Наиболее эффективными на сегодняшний день являются реляционные БД. Самой популярной в мировом масштабе является система управления реляционными БД (СУБД) - Oracle, которая предназначена для одновременного доступа к большим объемам хранимой информации. Ее используют крупные предприятия, занимающиеся информационными технологиями. СУБД складывается из двух составляющих: БД (информация) и экземпляр или инстанция (конкретная реализация системы). База данных состоит из физических файлов, хранящихся в системе, и из логических частей. Цель исследования – получение теоретических и практических знаний по СУБД Oracle. Объект исследования система управления базами данных Oracle. Предмет исследования процесс разработки баз данных в СУБД Oracle. Реализация заявленной цели потребовала постановки и решения следующих задач: 1. изучение архитектуры системы управления базами данных; 2. изучение различий физической архитектуры Oracle в зависимости от операционной системе; 3. использование подходов и средств, используемых при настройке; 4. изучение возможностей пакета StatsPack для настройки экземпляра. Основу гипотезы исследования составил ряд предположений о путях разработки успешных приложений для Oracle. При исследовании использовались следующие методы: 1. изучение и анализ научной литературы; 2. изучение и обобщение отечественной и зарубежной практики; 3. моделирование, 4. сравнение, 5. анализ 6. синтез. Методологическая и теоретическая основа исследования – труды отечественных и зарубежных авторов по изучению СУБД Oracle. В том числе использовалась книга Тома Кайта “Oracle для профессионалов”. Автор книги многие годы является сотрудником корпорации Oracle и занимается созданием приложений и администрированием баз данных, а также решением проблем при использовании СУБД Oracle. В своей книги он доходчиво и исчерпывающе раскрывает основные особенности архитектуры СУБД Oracle, принципиально отличающие ее от других популярных систем управления базами данных. Причем подробно описано и проиллюстрировано множество примеров именно те возможности, средства и особенности Oracle, которые обеспечивают разработку эффективных приложений для этой СУБД и ее успешную эксплуатацию. Надежность и достоверность результатов обусловлена результативностью экспериментальных данных их взаимопроверкой, подтвердивших правильность выдвинутой гипотезы. Практическая значимость исследования: 1. разработано практическое руководство по компонентам СУБД, 2. методические рекомендации по стратегиям и средствам настройки, учитывающее все возможные ошибки, которые могут произойти на этапе создания базы данных. Информационная база исследования: 1. Печатные и электронные, деловые и специализированные издания. 2. Ресурсы сети Интернет. 3. Материалы компаний. 4. Аналитические обзорные статьи в прессе. 5.Экспертные оценки. 6. Интервью с разработчиками. Структура курсовой работы определена целями и задачами исследования. Курсовая работа состоит из введения, двух глав, заключения, списка литературы. Первая глава посвящена изучению компонентов СУБД. Вторая – стратегии и средствам настройки. Общий объем работы – 43 листа. 1 Архитектура СУБД Oracle 1.1 Термины “база данных” и “экземляр” Два термина в контексте Oracle вызывают большую путаницу. Речь идет о терминах “база данных” и “экземпляр”. В соответствии с принятой в Oracle терминологией, эти понятия определяются так: база данных - набор физических файлов операционной системы; экземпляр — набор процессов Oracle и область SGA . Эти два термина иногда взаимозаменяемы, но представляют принципиально разные концепции. Взаимосвязь между ними такова, что база данных может быть смонтирова¬на и открыта в нескольких экземплярах. Экземпляр может смонтировать и открыть толь¬ко одну базу данных в каждый момент времени. Не обязательно отрывать и монтиро¬вать одну и ту же базу данных при каждом запуске экземпляра. Стало еще непонятнее? Вот ряд примеров, которые помогут прояснить ситуацию Эк¬земпляр — это набор процессов операционной системы и используемая ими память. Все эти процессы могут работать с базой данных, которая представляет собой просто набор файлов (файлов данных, временных файлов, файлов журнала повторного выполнения, управляющих файлов). В каждый момент времени с экземпляром связан только один набор файлов. В большинстве случаев обратное утверждение тоже верно; с базой дан¬ных работает только один экземпляр. В случае же использования параллельного серве¬ра Oracle (Oracle Рагаllel Server — OPS), опции Oracle, позволяющей серверу функцио¬нировать на нескольких компьютерах в кластерной среде, одна и та же база данных может быть одновременно смонтирована и открыта несколькими экземплярами. Это делает возможным доступ к базе данных одновременно с нескольких компьютеров. Oracle Parallel Server позволяет создавать системы с высокой доступностью данных и, при ус¬ловии правильной реализации, очень масштабируемые. Итак, в большинстве случаев между базой данных и экземпляром имеется отноше¬ние один к одному. Это, вероятно, и является причиной путаницы при использовании этих терминов. По опыту большинства пользователей, база данных - это экземпляр, а экземпляр - это база данных. Во многих тестовых средах это, однако, не так. Например, на диске может быть пять отдельных баз данных. На тестовой машине СУБД Oracle установлена в одном экземпляре. В каждый момент времени работает только один экземпляр, но обращаться он может к разным базам данных, в зависимости от задач, которые мы решаем. Создав не¬сколько конфигурационных файлов, мы можем монтировать и открывать любую из этих баз данных. В данном случае у нас один “экземпляр”, но несколько баз данных, лишь одна из которых доступна в каждый момент времени. Итак, теперь под термином “экземпляр” мы будем понимать процессы и память сер¬вера Oracle. Термин “база данных” означает физические файлы, в которых находятся данные. База данных может быть доступна многим экземплярам, но экземпляр в каж¬дый момент времени обеспечивает доступ только к одной базе данных. 1.2 Файлы В состав базы данных и экземпляра входит шесть типов файлов. С экземпляром свя¬заны файлы параметров. По этим файлам экземпляр при запуске определяет свои харак¬теристики, например размер структур в памяти и местонахождение управляющих фай¬лов. Базу данных образуют следующие файлы. - Файлы данных. Собственно данные (в этих файлах хранятся таблицы, индексы и все остальные сегменты). - Файлы журнала повторного выполнения. Журналы транзакций. - Управляющие файлы. Определяют местонахождение файлов данных и содержат другую необходимую информацию о состоянии базы данных. - Временные файлы. Используются при сортировке больших объемов данных и для хранения временных объектов. - Файлы паролей. Используются для аутентификации пользователей, выполняющих администрирование удаленно, по сети. Мы не будем их подробно рассматривать . Наиболее важны первые два типа файлов, поскольку именно в них хранятся накоп¬ленные данные. В случае потери остальных файлов хранящиеся данные не пострадают. Если будут потеряны файлы журнала повторного выполнения, некоторые данные могут быть потеряны. Если же будут потеряны файлы данных и все их резервные копии, дан¬ные, безусловно, будут потеряны навсегда. Теперь давайте детально рассмотрим все типы файлов и их содержимое. С базой данных Oracle связано много файлов параметров: от файла TNSNAMES на клиентской рабочей станции (используемого для поиска сервера) и файла LISTENER.ORA на сервере (для запуска процесса прослушивания Net8) до файлов SQLNET.ORA, PROTOCOL.ORA, NAMES.ORA, CMAN.ORA и LDAP.ORA. Наиболее важным является файл параметров инициализации экземпляра, потому что без него не удастся запустить экземпляр. Остальные файлы тоже важны; они связаны с поддержкой сети и обеспечением подключения к базе данных. Файл параметров инициализации экземпляра обычно называют файлом init или фай¬лом init.ora. Это название происходит от стандартного имени этого файла, - init.ora. Например, экземпляр со значением SID, равным tkyte816, обычно имеет файл инициализации inittkyte816.ora. Без файла параметров инициализации нельзя запустить экземпляр Oracle. Поэтому файл этот достаточно важен. В Oracle файл init.ora имеет очень простую конструкцию. Он представляет собой набор пар имя параметра/значение. Файл init.ora может иметь такой вид: db_name = “tkyte816” control_files = (“C:\oradata\control01.ctl”, “C:\oradata\control02.ctl”) Файл параметров инициализации используется для получения имени базы данных и местонахождения управляющих файлов. Управляющие файлы содержат информацию о местонахождении всех остальных файлов, так что они нужны в процессе начальной загрузки при запуске экземпляра. Файлы данных вместе с файлами журнала повторного выполнения являются наибо¬лее важными в базе данных. Именно в них хранятся все данные. В каждой базе данных есть хотя бы один файл данных, но обычно их намного больше. Только самые простые, “тестовые” базы данных имеют один файл данных. В любой реальной базе данных дол¬жно быть минимум два файла данных: один - для системных данных (табличное про¬странство SYSTEM), другой - для пользовательских (табличное пространство USER). Каждый объект, занимаю¬щий место на диске, хранится в одном сегменте. Сегменты — это области на диске, выделяемые под объекты — таблицы, индексы, сегменты отката и т.д. При создании таблицы создается сегмент таб¬лицы. Каждый объект, занимаю¬щий место на диске, хранится в одном сегменте. |
Список литературы | 1. Ален К. “101 Oracle: PL/SQL” (М.: “Лори”,2006,350 стр.)
2. Архипенков С. “Аналитические системы на базе Oracle Express OLAP” (М.: “Диалог-МИФИ”, 1999) 3. Бобровски С. “Oracle8:Архитектура” .: "Лори", 1998, 210 стр.); [оригинал: Steve Bobrowski "Oracle8. Architecture" Osborne/McGraw-Hill, 1998] 4. Болотовский Ю.И., Таназлы Г.И. “ORCAD 9.x ORCAD 10.x. Практика моделирования” (М.: “Солон-пресс”,2008, 208 стр.) 5. Грабер М. “SQL. Справочное руководство” (М, "Лори", 1997, - 291 с.) 6. Гринвальд Р., Крейнс Д. “Oracle: PL/SQL”(М.: “Символ”,2005,976 стр.) 7. Гринвальд Р., Стаковьяк Р., Додж Г., Кляйн Д. “Программирование баз данных Oracle для профессионалов” (М.: “Вильямс”,2007, 784 стр.) 8. Кайт Т. “Oracle для профессионалов: архитектура, методики программирования и основные особенности версий 9i и 10g” (М.: “Вильямс”, 2007, 848 cтр.) 9. Кайт Т. “Эффективное проектирование приложений Oracle” (М.: “Лори ”,2008, 637 стр.) 10. Каучмэн Дж., Марисетти С. “OCA Oracle 9i. Associate DBA. Подготовка администраторов баз данных” (М.: “Лори ”,2006, 680 стр.) 11. Компания Advanced Information Systems и др. “Oracle8. Энциклопедия пользователя” (К.: "ДиаСофт", 1998, 864 стр.); [оригинал: Advanced Information Systems, INC., et al "Oracle. Second Edition. UNLEASHED" SAMS Corporation, 1997] 12. Кори М., Эбби М, Дечичьо(мл.) Д., Абрамсон Ян “Настройка Oracle8” (М.: "Лори", 1999); [оригинал: Michael J.Corey,Michael Abbey, Daniel J. Dechichio Jr., Ian Abramson "Oracle8: Tuning" Osborne/McGraw-Hill, 1998] 13. Кравчук В.А., Бегус Ю.П., Габзовский В.А. “Введение в Oracle PL/SQL”. (Киев, Издательство "ДиаСофт", 1998, - 400 с.) 14. Луни К. “Настольная книга администратора базы данных Oracle8” М, "Лори", 1999), [оригинал: Kevin Loney "Oracle8 DBA Handbook", Osborne/McGraw-Hill, 1998] 15. Миллсап К., Хольт Д. “Oracle. Оптимизация производительности” (М.: “Символ”,2006,464) 16. Мюллер Р.Дж.. “ORACLE Developer/2000. Настольная книга пользователя”. (М.: "Лори", 1999, 384 стр.); [оригинал: Robert J. Muller “ORACLE Developer/2000 Handbook”. Osborne/McGraw-Hill, 1997] 17. Нокс Д. “Создание эффективной системы безопасности для Oracle Database 10g” (М.: “Символ”,2007,556) 18. Перри Дж., Пост Дж. “Введение в Oracle 10g” (М.: “Символ”,2006,704) 19. Прайс Дж. “Oracle Database 10g SQL” (М.: “Лори ”,2007, 566 стр.) 20. Пэйдж В., Хьюз Н. и др. “Использование Oracle8”. Специальное Издание - (К.; М.; СПб.: "Вильямс", 1998, 752 стр.); [оригинал: William G Page, Jr., and Nathan Hughes, et al. "Using Oracle8. Special Edition" Que Corporation, 1998] 21. Ричардс М. и др. “Oracle7.3. Энциклопедия пользователя” (К.: "ДиаСофт", 1997, 830 стр.); [оригинал: Michael Richards at al. "Oracle. UNLEASHED" SAMS Corporation, 1996] 22. Сингх, Лей, Сафьян и др. “Oracle7.3. Руководство разработчика” (К.: "ДиаСофт", 1998, 730 стр.); [оригинал: Singh, Letgh, Zafian, et al. "Oracle7.3. Developer's Guide" SAMS Corporation, 1997] 23. Смирнов С. “Работаем с Oracle”. Учебное пособие. (М.: "Гелиос", 1998, 318 стр.) 24. Смит К., Хейсли С. “Oracle 101: Резервное копирование и восстановление” (М.: “Лори ”,2005, 444 стр.) 25. Урман C.. “ORACLE 8. Программирование на языке PL/SQL”. (М.: "Лори", 1999, 608 стр.); [оригинал: Scott Urman "Oracle8 PL/SQL Programming" Osborne/McGraw-Hill, 1997] 26. Фейерштейн С., Нанда А. “Oracle PL/SQL для администраторов баз данных” (М.: “Символ”,2006,704) 27. Хардман Р., МакЛафлин М. “Oracle PL/SQL для профессионалов” (М.: “Лори ”,2008, 496 стр.) 28. Д.Энсор, Й.Стивенсон “Oracle8: Рекомендации разработчикам” (К.: Изд.группа BHV, 1998, 126 стр.); [оригинал: Dave Ensor and Jan Stevenson. "Oracle8 Design Tis" O'Reilly & Associates, Inc., 1997] 29. М.Эбби, М.Кори “Oracle8: Первое знакомство” (М.: "Лори", 1998, 470 стр.); [оригинал: Michael Abbey, Michael J.Correy "Oracle8: Beginner's Guide" Osborne/McGraw-Hill, 1997] 30. Юринский В, Бачин А., Абрамов В. “Oracle7. Практическое руководство” (М.: "Софтсервис", 1997, 420 стр.) |
Выдержка из работы | Процесс СКРТ просто содейству¬ет обработке контрольной точки, обновляя заголовки файлов данных. Раньше процесс СКРТ был необязательным, но, начиная с версии 8.0, он запускается всегда, так что он представлен в результатах выполнения команды ps в ОС UNIX. Ранее заголовки фай¬лов данных обновлялись в соответствии с информацией о контрольной точке процес¬сом записи журнала LGWR (Log Writer). Однако с ростом размеров баз данных и увели¬чением количества файлов это стало невыполнимой задачей для процесса LGWR. Если процессу LGWR надо обновлять десятки, сотни, а то и тысячи файлов, увеличивается вероятность того, что ожидающие фиксации транзакций сеансы будут ждать слишком долго. Процесс СКРТ снимает эту задачу с процесса LGWR.
Процесс записи блоков базы данных (Database Block Writer — DBWn) - фоновый процесс, отвечающий за запись измененных блоков на диск. Процесс DBWn записыва¬ет измененные блоки из буферного кеша, чтобы освободить пространство в кеше (что¬бы освободить буферы для чтения других данных) или в ходе обработки контрольной точки (чтобы перенести вперед позицию в оперативном файле журнала повторного вы¬полнения, с которой сервер Oracle начнет чтение при восстановлении экземпляра пос¬ле сбоя). Процесс LGWR отвечает за сброс на диск содержимого буфера журнала повторного выполнения, находящегося в области SGA. Он делает это: - раз в три секунды; - при фиксации транзакции; - при заполнении буфера журнала повторного выполнения на треть или при запи¬си в него 1 Мбайта данных. Поэтому создание слишком большого буфера журнала повторного выполнения не имеет смысла: сервер Oracle никогда не сможет использовать его целиком. Все журналы записываются последовательно, а не вразброс, как вынужден выполнять ввод-вывод про¬цесс DBWn. Запись большими пакетами, как в этом случае, намного эффективнее, чем запись множества отдельных блоков в разные части файла. Задача процесса ARCn — копировать в другое место оперативный файл журнала по¬вторного выполнения, когда он заполняется процессом LGWR. Эти архивные файлы жур¬нала повторного выполнения затем можно использовать для восстановления носителя. Тогда как оперативный журнал повторного выполнения используется для “исправления” файлов данных в случае сбоя питания (когда прекращается работа экземпляра), архи¬вные журналы повторного выполнения используются для восстановления файлов дан¬ных в случае сбоя диска. ВSР-процесс используется исключительно в среде Oracle Рагаllel Server (OPS). OPS — конфигурация Oracle, при которой несколько экземпляров монтируют и открывают одну и ту же базу данных. Каждый экземпляр Oracle в этом случае работает на своей машине в кластере, и все они имеют доступ для чтения и записи к одному и тому же набору файлов базы данных. При этом буферные кеши в SGA экземпляров должны поддерживаться в согласован¬ном состоянии. Для этого и предназначен процесс BSP. В ранних версиях OPS согласо¬вание достигалось с помощью выгрузки блока из кеша ('ping'). Если машине в кластере требовалось согласованное по чтению представление блока данных, заблокированного в исключительном режиме другой машиной, выполнялся обмен данными с помощью сброса на диск. В результате получалась очень дорогостоящая операция чтения данных. Сейчас, при наличии процесса BSP, обмен происходит из кеша в кеш через высокоско¬ростное соединение машин в кластере. LMON-процесс используется исключительно в среде OPS. Процесс LMON контроли¬рует все экземпляры кластера для выявления сбоя экземпляра. Затем он вместе с дис¬петчером распределенных блокировок (Distibuted Lоск Manager — DLM), используе¬мым аппаратным обеспечением кластера, восстанавливает глобальные блокировки, которые удерживаются сбойным экземпляром. LMD-процесс используется исключительно в среде OPS. Процесс LMD управляет гло¬бальными блокировками и глобальными ресурсами для буферного кеша в кластерной среде. Другие экземпляры посылают локальному процессу LMD запросы с требовани¬ем снять блокировку или определить, кто ее установил. Процесс LMD также выявляет и снимает глобальные взаимные блокировки. Процесс LCKn используется исключительно в среде OPS. Он подобен по функциям описанному выше процессу LMD, но обрабатывает запросы ко всем остальным глобаль¬ным ресурсам, кроме буферного кеша. Служебные фоновые процессы необязательны — они запускаются в случае необходимости. Они реализуют средства, необязательные для штатного функционирования базы данных. Использование этих средств инициируется явно или косвенно, при использовании воз¬можности, требующей их запуска. Служебных фоновых процессов - два. Один из них запускает посланные на выпол¬нение задания. В СУБД Oracle встроена очередь пакетных заданий, позволяющая вы¬полнять по расписанию однократные или периодические задания. Другой процесс под¬держивает и обрабатывает таблицы очереди, используемые средствами расширенной поддержки очередей (Advanced Queuing — AQ). Средства AQ обеспечивают встроенные возможности обмена сообщениями между сеансами базы данных. Процессы SNPn сочетают в себе особенности как разделяемого, так и выделенного сервера: обрабатывают несколько заданий, но памятью управляют как выделенный сер¬вер (область UGA находится в области PGA процесса). Процесс очереди заданий выпол¬няет в каждый момент времени только одно задание. Вот почему необходимо несколь¬ко процессов, если требуется выполнять несколько заданий одновременно. На уровне заданий не поддерживаются потоки или вытеснение. Запущенное задание выполняет¬ся, пока не будет выполнено (или не произойдет сбой). Процесс QMNn по отношению к таблицам AQ выполняет ту же роль, что и процесс SNPn по отношению к таблице заданий. Этот процесс контролирует очереди и уведом¬ляет ожидающие сообщений процессы о том, что доступно сообщение. Он также отве¬чает за распространение очередей — возможность переместить сообщение, поставлен¬ное в очередь в одной базе данных, в другую базу данных для извлечения из очереди. Процессы EMNn - часть подсистемы расширенной поддержки очередей. Они ис¬пользуются для уведомления подписчиков очереди о сообщениях, в которых они могут быть заинтересованы. Это уведомление выполняется асинхронно. Имеются функции Огас1е Call Interface (OCI) для регистрации обратного вызова, уведомляющего о сооб¬щении. Обратный вызов - это функция в программе OCI, которая вызывается автома¬тически при появлении в очереди определенного сообщения. Фоновый процесс EMNn используется для уведомления подписчика. Процесс EMNn запускается автоматически при выдаче первого уведомления в экземпляре. В сервере Oracle есть два типа подчиненных процессов — ввода-вывода (I/O slaves) и параллельных запросов (Раrallel Query Slaves). |