
Oracle - MS Server / OracleМП / лекции оракл / lect4_m2_ipovs_ipovs_SUBDOracle_231000.62
.docЛекция 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 выполняет оператор и возвращает пользователю результаты.
Список литературы
-
Илюшечкин В.М. - Учебно-методические разработки для самостоятельной работы студентов, изучающих дисциплину «СУБД Oracle»
-
All-Oracle [Электронный ресурс]. – URL:http://all-oracle.ru/content/view/?part=1&id=68
-
Oracle для профессионалов [Электронный ресурс]. – URL: http://citforum.ru/database/oracle/kyte