Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Oracle - MS Server / OracleМП / лекции оракл / lect4_m2_ipovs_ipovs_SUBDOracle_231000.62

.doc
Скачиваний:
37
Добавлен:
17.04.2018
Размер:
95.74 Кб
Скачать

Лекция 4. База данных и экземпляр Oracle.

Для обращения к информации базы данных в Oracle используется набор фоно­вых процессов, разделяемых всеми пользователями. При этом в SGA сохраняется последняя запрошенная из базы данных информация. Как правило, наиболее крупные разделы SGA — кэш буфера блока данных, разделяемый пул SQL (Shared SQL Pool), большой пул и пул Java — составляют боле 95% всей выделенной для SGA памяти. Эти области помогают улучшить производительность базы данных, уменьшая число опера­ций ввода/вывода, выполняемых над файлами данных [1].

Для процессов Oracle выделяет PGA (process global area — глобальную область процесса) в памяти сервера и, кроме того, PGA для системных процессов. Эта область памяти содержит данные и управляющую информацию одного процесса и между процессами не разделяется [1].

Основополагающим в Oracle является понятие экземпляра. Экземпляром (или сервером) БД называется набор структур памяти и фоновых процессов, обращающихся к группе файлов базы данных (рис.2.2). Обычно существует один экземпляр для базы данных, хотя возможна работа нескольких экземпляров с одним набором файлов базы данных. Каждый экземпляр может управлять одной или несколькими базами данных. Каждая конкретная база данных имеет собственное имя и соответствует некоторому экземпляру, под управлением которого она была создана. Для каждой базы данных существует ее файл конфигурации, который создается при выполнении создании базы данных. Это обычный текстовый файл и может быть изменен администратором базы данных в целях настройки сервера. Параметры файла определяют значения ресурсов, ассоциированных с конкретной базой данных. Каждый раз, когда администратор запускает новый экземпляр Oracle, для настройки конфигурации считывается этот файл. Запущенный экземпляр получает уникальный идентификатор — SID. После запуска администратором экземпляра базы данных и ее открытия пользователи могут присоединяться к базе данных, но при этом пользователь должен знать соответствующий идентификатор экземпляра. Обычно информация об идентификаторе экземпляра описывается в файле конфигурации и пользователь использует ее косвенно через указание строки связи.

Рис.2.2. Экземпляры и файлы базы данных

Параметры, определяющие размер и состав экземпляра, сохраняются в фай­ле init.ora. или помещаются внутри базы данных в файл параметров сервера, называемый SPFILE, и сохраняются в spfile.ora.

Файл параметра инициализации читается при загрузке экземпляра и может быть изменен администратором базы данных. Все сделанные в этом файле изме­нения вступают в силу только после следующей загрузки. В названии файла экзем­пляра обычно содержится имя экземпляра; если экземпляр называется ORCL, его файл будет, скорее всего, называться initorcl.ora. Oracle создает все больше и бо­льше параметров в динамически настраиваемой базе данных. Изменения пара­метров могут оставаться в силе даже после закрытий и запусков, независимо от содержания файла параметра инициализации. В Oracle9i администратор БД может использовать SPFILE вместо файла init.ora и производить временные или постоянные изменения параметра инициализации.

Логически база данных — это множество разделов (схем), каждая из которых идентифицируется своим именем, уникальным в данной БД. Информация о структуре объектов базы данных, их расположении, правах доступа и т.п. хранится в словаре данных.

Словарь данных — база метаданных о собственно базе данных. Информация словаря данных хранится в виде таблиц, над которыми созданы многочисленные представления, и пользователь, обладающий необходимыми правами доступа, может получить необходимую информацию о текущем состоянии БД, используя запросы на языке SQL. Большинство представлений словаря данных доступно любому пользователю. Назначение представления характеризуется его префиксом.

Все представления словаря данных можно разделить на три группы: DBA-представления, содержащие информацию обо всех объектах базы данных; ALL-представления, содержащие информацию только о тех объектах, которые доступны пользователю; USER-представления, содержащие информацию обо всех объектах базы данных, принадлежащих пользователю. Например, сведения о таблицах, которые находятся в схеме текущего пользователя, можно посмотреть в представлении USER_TABLES.

Для просмотра текущей активности сервера можно использовать специальные представления (с префиксом V$). Например, сведения о текущих сессиях можно получить, обратившись к представлению V$SESSION.

После создания базы данных и ее запуска требуется, используя учетные записи SYS или SYSTEM (пароль по умолчанию MANAGER, регистр в Oracle значения не имеет), войти в СУБД для создания учетных записей других пользователей. Наряду с системными учетными записями, как правило, создается еще несколько. Например, учетная запись SCOTT (пароль TIGER). Они предназначены либо для демонстрационных примеров, либо для администрирования дополнительных продуктов и картриджей. Пароли пользователей SYS, SYSTEM и других учетных записей, устанавливаемые по умолчанию, рекомендуется сразу же изменить.

В базе данных учетная запись пользователя не является физической структурой, но она связана важными взаимоотношениями с объектами базы данных, поскольку пользо­вателям принадлежат объекты. Пользователь SYS владеет таблицами словаря данных, содержащими информацию об остальных структурах базы данных. По­льзователю SYSTEM принадлежат представления, обращающиеся к этим табли­цам словаря данных, что позволяет остальным пользователям базы данных использовать их.

Набор объектов, принадлежащих учетной записи пользователя, называется схе­мой. Можно создать пользователей, не имеющих права входа в базу данных. Та­кие учетные записи предлагают схему, которую можно использовать для хранения наборов объектов базы данных отдельно от схем других пользователей.

При установке с дистрибутива сервера Oracle автоматически создается одноименный экземпляр сервера баз данных, для которого в Windows создается автоматически запускаемая при загрузке операционной системы служба. Для большинства Unix-систем запуск экземпляра может быть выполнен утилитой sqldba.

Обработка SQL-оператора производится по следующему алгоритму (на примере выполнения оператора SELECT, осуществляющего выборку данных) [1]:

— пользователь запускает на компьютере приложение (например, SQL*Plus), вводит имя пользователя Oracle и пароль;

— Oracle подтверждает имя пользователя и пароль, сверившись со словарем данных, и посылает ответ приложению для подтверждения соединения;

— пользователь вводит оператор SQL, используя текстовый редактор приложения;

— Oracle должен произвести разбор этого оператора прежде, чем выполнить его, поэтому вызывается синтаксический анализатор и оптимизатор Oracle. Если бы какой-либо пользователь ранее уже ввел точно такой же оператор, "разобранная" версия могла бы находиться в области разделяемого пула в памяти. Oracle в этом случае использует результаты разбора, поэтому для данного оператора никакой дополнительный анализ не выполняется;

— чтобы транслировать оператор, Oracle должен получить имена объектов, указанных в операторе, и другую информацию из словаря данных. Если пользователь выполняет оператор сразу после запуска базы, то область кэша словаря данных не содержит информации о таблицах. Поэтому анализ оператора приостанавливается для считывания информации;

— Oracle выполняет рекурсивный оператор SQL (оператор, генерируемой системой), чтобы загрузить информацию об объектах из таблиц словаря данных, находящихся в файлах базы данных, в кэш словаря данных в памяти;

— разбор исходного пользовательского оператора продолжается, и оптимизатор Oracle строит план выполнения запроса, чтобы определить способ выполнения оператора;

— оператор обращается к данным. Если блоки данных таблиц не находятся в буферном кэше, то требуемые блоки Oracle читаются из файлов базы данных и передаются в область кэша SGA;

— Oracle выполняет оператор и возвращает пользователю результаты.

Список литературы

  1. Илюшечкин В.М. - Учебно-методические разработки для самостоятельной работы студентов, изучающих дисциплину «СУБД Oracle»

  2. All-Oracle [Электронный ресурс]. – URL:http://all-oracle.ru/content/view/?part=1&id=68

  3. Oracle для профессионалов [Электронный ресурс]. – URL: http://citforum.ru/database/oracle/kyte

6