среда, 13 января 2010 г.

ночь перед экзаменом или как за одну ночь стать DBA!

1.
Сервер Oracle – включает в себя процессы структуры памяти и файлы. Не все эти компоненты используются при обработки команды sql/ Некоторые из них применяются для повышения производительности бд, для восстановления бд в случае программных или аппаратных ошибок или других задач по сопровождению бд. Сервер состоит из экземпляра oracle и базы данных.

Экземпляр oracle - совокупность фоновых процессов и структур памяти. Экземпляр должен быть запущен для обеспечения доступа к информации бд. Каждый раз при запуске экземпляра выделяется память для системной глобальной области SGA и стартуют фоновые процессы. Фоновые процессы экземпляра выполняют стандартные функции необходимые для обслуживания запросов нескольких пользователей одновременно,выполняют операции ввода вывода и контролируют другие процессы oracle обеспечивая параллельную обработку повышение производительности и надежности



База данных оракл – состоит из файлов операционной системы в которых на физическом уровне храница инфа в бд. Использование файлов бд гарантирует целостность хранимой инфы и восстановления в случае сбоя экземпляра оракл.
Экзепляр oracle
средство доступа к бд
всегда открывает одну и только одну бд. Состоит из процессов и структур памяти.
Структуры памяти SGA: разделяемый пул, библиотечный кэш, кэш словаря данных. Кэш буферов бд, журнальный буфер
Фоновые процессы PMON, SMON, DBWR, LGWR, CKPT

2.
Основное назначение бд состоит в хранении и выборе связанной инфыю БД имеет логическую и физическую структуры. Физическую структуру базы данных образуют файлы ОС в которых храница информация бд. БД оракл состоит из файлов следующих типов:
файлы данных содержат актуальную инфу бд
log файлы содержат протокол изменений внесенных в базу, используются для восстановления данных в случае сбоя
управляющие файлы содержат инфу необходимую для поддержки и контроля целостности бд.
Файлы параметров используюься для указания свойств экземпляра
файлы паролей используется для аутентификациипривилегированных пользователей бд, выполняющих старт и остановку экземпляра.
Архивные журналы – автономные копии журнальных файлов которые могут потребоваца при восстановлении после сбоя носителя.

3.
БД oracle состоит из табличных пространств, табличное пространство может состоять из одного и более сегментов. Каждый сегмент состоит из одного и более экстентов. Экстент это набор из нескольких смежных блоков оракла. Блок данных это наименьший объем данных который процессы оракл запрашивают при работе с файлами данных все это относится к логической структуре.
Табличное пространство относиться только к одной бд, каждое табличное пространство состоит из одного или более файлов ос, которые называются data file? Может содержать один или несколько сегментов данных могут быть автономном или оперативном режиме, так же можно переводить в редим только для чтения или для записи.
Сегмент – пространство выделенное для логического объекта в табличном пространстве, распологается только в одном табличном пространстве но может распологаца в любых файлах этого пространства.
Экстенты – табличное пространство для сегментов выделяется путем добавления экстентов, при создании сегмента. При создании сегмента ему выделяется хотя бы один экстент. Сегмент прирастает экстентами. ДБА может вручную добавить экстент сегменту. Экстент последовательность физически прилегающих друг к другу блоков данных, экстент принадлежит только к одному файлу данных.
Блоки данных: наименьшая логическая еденица, которую оракл выделяет в файлах данных. Состоит из одного или нескольких блоков ос. Размер указывается при создании табличног пространства и не может быть изменен.

4.
СУБД Oracle предлагает много различных типов индексов. • Индексы на основе В*-дерева. Эти индексы называют "обычными". Они, несом-ненно, чаще всего используются в СУБД Oracle, да и в других СУБД. Аналогич-ные по конструкции двоичному дереву, они обеспечивают быстрый доступ по клю-чу к отдельной строке или диапазону строк, требуя обычно очень немного чтений для поиска соответствующей строки. Индекс на основе В*-дерева имеет несколь-ко подтипов: Таблицы, организованные по индексу. Это таблицы, хранящиеся в структуре В*-дерева. Они достаточно подробно описывались в главе 6, посвященной таблицам. В соответствующем разделе главы 6 рассматривались физические струк-туры, в которых хранятся В*-деревья, так что к этой теме мы возвращаться не будем. Индексы кластера на основе В*-дерева. Они немного отличаются от обычных, используются для индексации ключей кластера (см. соответствующий раздел в главе 6) и отдельно в этой главе рассматриваться не будут. Они используются не для перехода от ключа к строке, а для перехода от ключа кластера к блоку, содержащему строки, связанные с этим ключом.
Индексы с обращенным ключом. Это индексы на основе В*-дерева, байты ключа в которых инвертированы. Это используется для более равномерного распределения записей по индексу при вводе возрастающих значений ключей. Предположим, при использовании последовательности для генерации первичного ключа генерируются значения 987500, 987501, 987502 и т.д. Поскольку это последовательные значения, они будут попадать в один и тот же блок индекса, конкурируя за него. В индексе с обращенным ключом сервер Oracle будет индексировать значения 205789, 105789, 005789. Эти значения обычно будут далеко отстоять друг от друга в индексе, и вставки в индекс будут распределены по нескольким блокам.
Индексы по убыванию. Далее индексы по убыванию не будут выделяться как отдельный тип. Однако поскольку они только появились в Oracle 8i, то заслуживают отдельного рассмотрения. Индексы по убыванию позволяют отсортировать
данные в структуре индекса от "больших" к "меньшим" (по убыванию), а не от меньших к большим (по возрастанию). Мы разберемся, почему это важно и как такие индексы работают.
• Индексы на основе битовых карт. Обычно в В*-дереве имеется однозначное соответствие между записью индекса и строкой — запись индекса указывает на строку. В индексе на основе битовых карт запись использует битовую карту для ссылки на большое количество строк одновременно. Такие индексы подходят для данных с небольшим количеством различных значений, которые обычно только читаются. Столбец, имеющий всего три значения — Y, N и NULL, — в таблице с миллионом строк очень хорошо подходит для создания индекса на основе битовых карт. Индексы на основе битовых карт не нужно использовать в базе данных класса ООТ из-за возможных проблем с одновременным доступом (которые мы рассмотрим далее).
Индексы по функции. Эти индексы на основе В*-дерева или битовых карт хранят вычисленный результат применения функции к столбцу или столбцам строки, а не сами данные строки. Это можно использовать для ускорения выполнения запросов вида: SELECT * FROM T WHERE ФУНКЦИЯ(СТОЛБЕЦ) = НЕКОТОРОЕ_ЗНАЧЕНИЕ, поскольку значение ФУНКЦИЯ(СТОЛБЕЦ) уже вычислено и хранится в индексе.
• Прикладные (application domain) индексы. Это индексы, которые строит и хранит приложение, будь-то в базе данных Oracle или даже вне базы данных Oracle.Надо сообщить оптимизатору, насколько избирателен индекс, насколько "доро-
гостояще" его использование, а оптимизатор решает на основе этой информации, использовать этот индекс или нет. Текстовый индекс interMedia — пример прикладного индекса; он построен с помощью тех же средств, которые можно использовать для создания собственных прикладных индексов.
• Текстовые индексы interMedia. Это встроенные в сервер Oracle специализированные индексы для обеспечения поиска ключевых слов в текстах большого объема. Описание этих индексов будет представлено в главе 17, посвященной компоненту interMedia.
Триггеры это процедуры, выполняемые при наступлении указанного события базы данных. Существует два типа триггеров: операторные триггеры – срабатывают один раз для каждого активизирующего оператора, и строковые триггеры – срабатывают один раз для каждой строки таблицы, на которую влияют данные операторы. Существуют триггеры BEFORE (до) и AFTER (после), срабатывающие до и после наступления события.
Последовательности предоставляют последовательный список уникальных номеров. При первом обращении к последовательности она возвращает предопределенное значение, а при каждом следующем – значение, которое больше предыдущего на определенное приращение. Последовательности могут быть циклическими, или оканчиваться при достижении определенного максимального значения.
Синонимы. Для того, чтобы полностью идентифицировать объект в базе данных, нужно указать имя хост компьютера, имя экземпляра, владельца объекта и имя этого объекта. В зависимости от ситуации и расположения объекта, может потребоваться от одного имени объекта, до всех четырех этих параметров. Чтобы скрыть это от пользователя, можно создать указывающие на объект синонимы. В результате пользователю нужно будет знать только имя синонима. Синонимы могут указывать на таблицы, процедуры, представления, функции, модули и последовательности. Синонимы для абстрактных типов данных создавать нельзя.

5.
Уровень изолированности транзакций — значение, определяющее уровень, при котором в транзакции допускаются несогласованные данные, то есть степень изолированности одной транзакции от другой. Более высокий уровень изолированности повышает точность данных, но при этом может снижаться количество параллельно выполняемых транзакций. С другой стороны, более низкий уровень изолированности позволяет выполнять больше параллельных транзакций, но снижает точность данных.
При параллельном использовании транзакций могут возникать следующие проблемы:
– потерянное обновление (lost update);
– «грязное» чтение (dirty read) — чтение данных, которые были записаны откатанной транзакцией;
– неповторяющееся чтение (non-repeatable read);
– фантомная вставка (phantom insert).
Уровни изоляции
Serializable (упорядочиваемость)
Самый высокий уровень изолированности; транзакции полностью изолируются друг от друга. На этом уровне результаты параллельного выполнения транзакций для базы данных совпадают с последовательным выполнением тех же транзакций (по очереди в каком-либо порядке).
Repeatable read (повторяемость чтения)
Уровень, при котором чтение одной и той же строки или строк в транзакции дает одинаковый результат. (Пока транзакция не завершена, никакие другие транзакции не могут модифицировать эти данные.)
Read committed (чтение фиксированных данных)
Принятый по умолчанию уровень для SQL Server. Завершенное чтение, при котором отсутствует черновое, "грязное" чтение.(т.е. чтение одним пользователем данных, которые не были зафиксированны в БД командой COMMIT) Тем не менее в процессе работы одной транзакции другая может быть успешно завершена и сделанные ею изменения зафиксированы. В итоге первая транзакция будет работать с другим набором данных. Это проблема неповторяемого чтения.
В Oracle блокировки на чтение нет, вместо этого «читающая» транзакция получает ту версию данных, которая была актуальна в базе до начала «пишущей».
Read uncommitted (чтение незафиксированных данных)
Низший уровень изоляции, соответствующий уровню 0. Он гарантирует только физическую целостность данных: если несколько пользователей одновременно изменяют одну и ту же строку, то в окончательном варианте строка будет иметь значение, определенное пользователем, последним изменившим запись, а не смешанные значения столбцов отдельных пользователей (повреждение данных). По сути, для транзакции не устанавливается никакой блокировки, которая гарантировала бы целостность данных.

6.
Словарь бд, режим архивации журналов. Недостатки и приимущества
Включение архивирования журнальных файлов заключается в :
- переводе бд в режим arhivelog
- включение процесса arch который будет архивировать журналы установкой параметра инициализации log_archive_start=true
- заданием шаблона названия архивных файлов, установкой параметра инициализации
log_arhive_format
- задание хотябы одной директории где будут создаваться копии архивных журналов, установкой параметра инициализации log_arhive_dest_1.
История журнала. При обычных операциях с базой данных все транзакции записываются в оперативные журнальные файлы, это позволяет выполнять автоматическое восстановление транзакций в случае своя экземпляра. Текущие журнальные файлы используюца циклически и история изменений не сохраняеца. Доступны только данные о транзакции за какое то время.
Если база работает в режиме noarchivelog информация из затираемых журналов никуда не копируется полностью можно восстановить информацию только за небольшой промежуток времени.
Если база работает в режиме archivelog то после переключения lgwr на следующую журнальную группу информация из старой группы может быть скопирована либо в файлы либо передана на резервную базу. Таким образом история изменений внесенных в базу данных сохраняеца, эти файлы могут использоваться для восстановления базы данных. Для перевода из одного режима в другой требуется остановить экземпляр бд, по у олчанию бд создается в narchivlog.
Автоматическое и ручное архивирование.
Включение процесса архивирования. После того как бд переведена в режим arhivelog нужно настроить процесс архивирования который будет заниматься копированием информации из журнальных файлов. Это второй шаг после перевода бд в режим архивлог, который необходимо выполнить для создания архивных файлов, используемых в последствии для восстановления. В любой момент админ бд может выдать команду архивирования журнальной группы вручную.

7.
Oracle.net Продукт Oracle, который работает вместе с сервером Oracle и позволяет обмен данными двум или более компьютерам, запускающим сервер Oracle, через сеть, использующую один из стандартных протоколов. Oracle Net поддерживает распределенную обработку и возможность распределенной базы данных. Oracle Net - это открытая система, поскольку не зависит от протокола связи, и пользователи могут состыковывать Oracle Net со многими сетевыми средами.

8.
Резервирование без рекавери менеджера.
Возможность резервирования в режиме suspend\resum можно временно приостанавливать и возобновлять работу бд без остановки экземпляра. Огда экземпляр находица в приостановленном состоянии можно выполнять оперативное резервирование.
Перемещение табличных пространств для выполнения восстановления на определенный момент времени.
Все это является пользовательским резервированием и восстановлением, т.к. В качестве основного инструмента не используеца утилита рекавери менеджер.
Fuzzy file это когда делается бэкап на горячую непереводя в режим бэкапа. Ну это когда например один файл отключали от базы, база изменилась, а этот остался старый... Его уже подключить к базе не получиться... Это и будет фузи файл...
инкрементальное - это когда перый бэкап полный, а остальные - только изменения от первого

9.Crash recovery восстановление после отказа системы – это восстановление бд в конфигурации с одним экземпляром либо конфигурации oracle real application clusters в которой отказали все экземпляры. (восстановление данных)
Restore recovery восстановление носителя.
Резервирование и восстановление без рекавери: файлы резервируются командами операционной системы. Копирование из резерва выполняется с использованием копанд ос. Восстановление производица с помощью команды языка sql и команд sql plus

10.
Типы сбоев.
Сбой команды – происходит когда имеется логический сбой при обработке команды в программе, типы: логическая ошибка в приложении. Попытка пользователя ввести неправильные данные в таблицу, нарушающие ограничение целостности. Попытка пользователя выполнить операцию для которой у него не достаточно прав. Решение сервер оракл или ос возвращают сообщение об ошибке и ее код. Автоматически выполняется откат команд скюэль вызвавших ошибку и управление возвращается в пользовательскую программу. Разработчик либо ДБА могут использовать коды ошибок для выявления причин сбоя и последующего устранения сбоя.
сбой пользовательского процесса – причины пользователь не правильно отсоеденился от бд, пользовательский сеанс аварийно завершился, пользовательская программа получила исключение которое привело к завершению сеанса. Решение действия фотового процесса PMON обычно достаточно для исправления ошибок после аварийного завершения пользовательского процесса, он откатывает транзакцию аварийно завершившегося процесса и освобождает все заблокированные ресурсы.
ошибка пользователя – требуеца вмешательство дба, распрастраненные ошибки пользователя: случайно уничтожил либо очистил таблицу, удалил все строки таблицы, зафиксировал данные но обнаружил ошибку в зафиксированных данных. Исправление пользовательских ошибок: обучение пользователей, восстановление бд из корректной копии, импорт предварительно экспортированных таблиц.Востановление на уровне объекта, восстановление к предшествующему моменту. Использование возможности флэшбэк для просмотра и исправления данных за прошлый период
сбой экземпляра – сбой питания, что привело к недоступности сервера, сервер не доступен в результате аппаратных проблем, сбой одного из фоновых процессов. Восстановление: запустить экземпляр при помощи копанды startup сервер оракл автоматически произведет восстановление выполняя как подкад вперед так и откат назад. Причину сбоя можно посмотреть в сигнальном файле altersid.log и в файлах трассировки созданых во время сбоя экземпляра
сбой носителя – поломка головки диска, физическая проблема чтения\записи в один из файлов бд, файл случайно удален. Требуется вмешательство админа бд. Восстановление после сбоя: стратегия восстановления зависит от того какой метод резервирования выбран и какие файлы повреждены. Если имеются архивные журналы следует применить их для восстановления данных зафиксированных со времени последнего резервирования. Если режим архивирования включен можно применять архивные журнальные файлы для восстановления данных зафиксированных после создания последней резервной копии если используется рман можно также применять инкрементальные резервы.

11.
Файл данных cp
0) на целевой системе сделать команду alter database backup control file to trace as/ nol/prod_cs_....../resetlog(скрипт управления файлами)
1) скопировать oracle home
2) cскопировать файлы данных
3) поправить символические ссылки
4) поправить файлы конфигурации(на уровне библиотек, архитектуры процессора)
5) опциопально скопировать архивные журналы
- init.ora (копирование)
- init.ora ifile-дополнительные файлы монитора, читаются при запуске монитора
Spfile- копировать не править руками
Заглянуть перед копированием- listener.ora, tnshaines.ora, sqlnet.ora
Править на целевой системе
-пути
- имена хостов
-порты

12
.Recovery manager – эта утилита используемая для управления операциями резервирования копирования из бэкапа и восстановления бд.
- позволяет создавать инкрементальные резерввные копии на уровне блоков в этом случае резервируются только блоки измененные с момента выполнения предидущего резервирования, не помещает в архив неиспользуемые блоки файлов данных, резервируемые файлы могут быть размещены в нескольких архивных файлах размер которых можно указать работает с ленточными устройствами. Возможности выявление поврежденных блоков во время резервирования. Увеличение производительности при помощи автоматического распараллеливания, уменьшение количества журнальных записей, ограничение ввода вывода для резервных копий, обеспечение непрерывности передачи данных на ленточный носитель. Управление задачами резервирования.

13.
Патчинг БД
Производиться утилитой Opatch/
Как ставиться патчинг
1. Ставится Patch research (PPA)
Читаем Readme, в нем:
- требования до установки (prerequsisites)
- требования после установки (postrequsistes)
2. action plan план действий
-поставить patch
- скопировать файлы и тд
Сам патчинг
1.Запускаем экземпляр и листенер (те все что бежит из под Oracle Home)
2. unzip patch.zip
3. Убедиться что к каталогу основных путей присоединен export PATCH=$ PATH:/oracle_home/o patch
4. заходим в каталог запускаем unzip
Автоматизируем действия opatch apply(можно откатывать rollback)
Opatch.lsinventory- читаем инвекторы(указывает список патчей)

Комментариев нет:

Отправить комментарий