Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Ознакомиться с последовательностью шагов администратора БД для создания и управления табличными пространств и сегментами отката БД.
Перед выполнением лабораторной работы необходимо изучить материалы лекций по данной дисциплине и литературу.
СТРУКТУРЫ ХРАНЕНИЯ ДАННЫХ
База данных Oracle содержит несколько типов файлов: управляющие файлы, оперативные журнальные файлы и файлы данных. Все пользовательские данные хранятся именно в файлах данных. Пользователи базы данных никогда не видят файлов данных, потому что Oracle позволяет абстрагироваться от физического хранения. Как администратор базы данных, вы должны понимать взаимосвязь между логическим и физических хранением. Наблюдение и администрирование этих структур и является управлением пространством базы данных.
Понимание табличных пространств и файлов данных
Логически все данные хранятся в сегментах и физически в файлах данных. Табличное пространство это некая абстракция, логическое объединение. Одно табличное пространство может содержать несколько файлов данных и множество сегментов. Прямой связи между сегментом и файлом данных нет. Файл данных может хранится в файловой системе, или, начиная с Oracle 10g, устройствах ASM (Automatic Storage Management).
Модель хранения данных Oracle
Разделение логического и физического хранения данных одна из необходимых частей парадигмы реляционных баз данных. Как уже говорилось, различается физическая и логическая структуры. Физическая структура включает в себя файлы данных, управляющие файлы и оперативные журналы. Логическая структура это табличные пространства, сегменты, экстенты и блоки данных. Ниже представлена взаимосвязь между ними.
Табличные пространства
Табличные пространства верхний уровень абстракции. Обладает следующими свойствами:
Файл данных
Каждое табличное пространство состоит из одного или более файлов данных. Файлы данных это файлы операционной системы, расположенные на файловой системе. Физически, это набор блоков операционной системы, скомпонованных в зависимости от ОС. Файл данных может принадлежать только одному табличному пространству. Администратор базы данных может изменять размер файлов данных в процессе работы. Так же на уровне каждого файла данных можно устанавливать параметры, в соответствии с которыми файл будет автоматически увеличивать размер, если в табличном пространстве не будет хватать свободного места.
Некоторые файловые системы имеют ограничения на максимальный размер файла, и их использование при построении современных информационных систем нежелательно. Например, старая система FAT системы MS-DOS не поддерживает файлы более 4Gb. Большинство серверов баз данных использует файловые системы, которые не имеют таких жестких ограничений, например NTFS на платформе Windows и ext3 на Linux.
Альтернативой файловой системы для хранения файлов данных являются ASM или RAW устройства (т.н. «сырые», т.к. не имеют файловой системы). Пока RAW устройства не получили широкого распространения из-за ряда проблем при управлении ими.
Сегменты
Сегмент данных пространство, выделенное для логического объекта в табличном пространстве. Он располагается только в одном табличном пространстве, но может находится в любом файле этого табличного пространства. Сегмент состоит из одного или более экстентов.
Экстенты
Табличное пространство для сегментов выделяется путем добавления экстентов. При создании сегмента ему выделяется по крайней мере один экстент. Сегмент увеличивает размер на экстент. При этом администратор базы данных вручную может добавлять экстент сегменту. Экстент это последовательность физически прилегающих друг к другу блоков данных. Экстент может принадлежать только одному файлу данных.
Блоки данных
Блок данных наименьшая логическая единица, которую Oracle выделяет в файле данных. Блок данных Oracle состоит из одного или более блоков операционной системы.
По умолчанию, размер блока в Oracle 10g и 11g равен 8 Кб. Размер блока данных в Oracle может варьироваться в пределах от 2 до 16 Кб для Linux или Windows, и до 32 Кб для некоторых других операционных систем.
Размер блока данных определяется параметром DB_BLOCK_SIZE. Он не может быть изменен после создания базы данных, потому что используется для формата файлов данных, которые образуют табличное пространство SYSTEM. Блок может быть идентифицирован по номеру внутри файла данных.
Создание табличного пространства
Для создания табличного пространства можно использовать предложение CREATE DATABASE или CREATE TABLESPACE. При создании табличного пространства следует сделать выбор, какой тип файлов будет использоваться, большой или маленький, какой тип управления экстентами будет использоваться, локальный или словарем данных, и как будет проводиться управление пространством сегментов автоматически или вручную. Дополнительно решается, будет ли это табличное пространство специализированным табличное пространство для временных сегментов или сегментов отката.
Создание табличного пространства bigfile и smallefile
Новое в Oracle 10g это табличные пространства с большими файлами (bigfile). Такие табличные пространства построены на одном файле данных или временном файле. Может содержать до 2^32 блоков данных. Такое табличное пространство, используя блоки данных по 8K, может быть размером до 32TB.
Такие табличные пространства используются для очень больших баз данных. Большие базы данных содержать сотни файлов данных для чтения или записи, и операции, которые должны изменять заголовки файлов данных (например, установка контрольных точек) занимают довольно продолжительное время. Если вы уменьшите количество файлов, то операции будут выполняться быстрее.
Для создания такого табличного пространства выполняется предложение CREATE с ключевым словом BIGFILE. Например:
CREATE BIGFILE TABLESPACE BIGTS DATAFILE '\db_1\oradata\bigts_01.dbf' SIZE 25G;
Табличное пространство smallfile это новое название старых табличных пространств. В таких табличных пространствах, может быть несколько файлов данных. Каждый файл данных может быть из 2^22 блоков данных. Таким образом, файл данных в табличном пространстве, использующий блоки данных по 8K, ограничен размеров в 32GB. Табличное пространство может содержать до 1022 файлов данных. Табличные пространства SYSTEM и SYSAUX всегда создаются с маленькими файлами.
Такие табличные пространства создаются по умолчанию или явным указанием типа файлов (SMALLFILE). Например:
CREATE TABLESPACE SMALLTS DATAFILE '\db_1\oradata\smallts_01.dbf' SIZE 25G;
Или
CREATE SMALLFILE TABLESPACE SMALLTS DATAFILE '\db_1\oradata\smallts_01.dbf' SIZE 25G;
Работа с табличными пространствами, управляемыми Oracle
Oracle Managed Files (OMF) может облегчить администрирование файлов, используемых базой данных Oracle. Используя OMF, вы можете указывать операции в терминах табличного пространства, а не файлов операционной системы.
Для активации OMF установите в качестве значения параметра инициализации DB_CREATE_FILE_DEST название директории, в которой будут автоматически размещаться файлы данных. Например:
ALTER SYSTEM SET db_create_file_dest = '\db_1\oradata\OMF' SCOPE=BOTH;
При создании табличного пространства с использованием OMF имя файла данных можно опустить:
CREATE TABLESPACE TEST_TS;
Oracle создает файл данных с уникальным именем, зависящим от типа файла:
File Type |
Format |
Controlfiles |
ora_%u.ctl |
Redo Log Files |
ora_%g_%u.log |
Datafiles |
ora_%t_%u.dbf |
Temporary Datafiles |
ora_%t_%u.tmp |
Выбор управления экстентами
Для управления экстентами вы можете использовать локальное управление или старую технологию управления экстентами на основе словаря. Со словарным управлением экстентами, база данных отслеживает свободные и используемые экстенты в словаре данных, изменяя таблицы FET$ и UET$ рекурсивным SQL. Локальное управление используется по умолчанию, если не указано иное, и является предпочитаемым методом.
При локальном управлении табличными пространствами используются опции UNIFORM и AUTOALLOCATE.
Опция UNIFORM позволяет базе данных выделять и освобождать экстенты в табличном пространстве с одинаковым неизменяемым размером, который вы можете явно указать или использовать значение по умолчанию равное 1MB. Опция UNIFORM является опцией по умолчанию для временного (TEMPORARY) табличного пространства и не может быть указана для табличного пространства UNDO. Для создания согласованных экстентов 100MB используйте предложение EXTENT MANAGEMENT LOCAL UNIFORM SIZE 100M в предложении CREATE TABLESPACE. Например:
CREATE TABLESPACE TEST_TS DATAFILE '\db_1\oradata\TEST_TS_01.DBF'
SIZE 25G EXTENT MANAGEMENT LOCAL UNIFORM SIZE 100M;
Опция AUTOALLOCATE позволяет варьировать размер экстентов для каждого сегмента. Например, для Windows и Linux с блоками данных по 8KB, каждый сегмент содержит первые 16 экстентов по 64KB, затем размер экстентов увеличиваются до 1MB (для следующих 63 экстентов). Далее размер увеличивается до 8MB (для следующих 120 экстентов), затем 64MB и так далее для последующих сегментов. Этот алгоритм позволяет маленьким сегментам оставаться маленькими и большим сегментам позволяет расти без особого роста количества экстентов. AUTOALLOCATE лучше всего использовать для маленьких и больших таблиц.
Пример создания табличного пространства с опцией AUTOALLOCATE:
CREATE TABLESPACE TEST_TS DATAFILE '/u01/oradata/TEST_TS_01.DBF'
SIZE 25G EXTENT MANAGEMENT LOCAL AUTOALLOCATE;
Вы можете преобразовать управление табличным пространством с управления словарем на локальное управление и обратно с использованием PL/SQL пакета DBMS_SPACE_ADMIN. Как правило, табличное пространство SYSTEM и любое временное табличное пространство не может быть преобразовано с локального управления к устаревшему управлению на основе словаря.
Выбор управления пространством сегментов
Для табличных пространств, которые имеют локальное управление, есть возможность выбрать автоматический или ручной режим управления пространством сегментов. Ручной режим существует для обратной совместимости и использования списка свободных блоков для идентификации блоков данных, доступных для вставки совместно с параметрами PCT_FREE и PCT_USED, с контролем, когда блок доступен для вставки. После каждого INSERT или UPDATE база данных сравнивает оставшиеся свободное пространство в блоке данных с настройкой PCT_FREE сегмента. Если блок данных содержит меньше свободного пространства, чем указано в PCT_FREE, считается, что блок заполнен и исключается из списка свободных блоков и более не доступен для вставки. Оставшиеся свободное пространство резервируется для операций UPDATE, которые могут увеличить размер строк в блоке данных. После каждой операции UPDATE или DELETE база данных сравнивает используемое пространство в блоке данных с настройкой PCT_USED. Если блок данных содержит используемого пространства меньше, чем PCT_USED, то блок данных считается пустым и достаточным для вставки и он помещается в список свободных блоков.
Для указания ручного режима управления используется конструкция SEGMENT SPACE MANAGEMENT MANUAL в предложении CREATE TABLESPACE, или опускается конструкция SEGMENT SPACE MANAGEMENT. Несмотря на настоятельную рекомендацию Oracle использовать автоматический режим для постоянных, локально управляемых табличных пространств, значение по умолчанию MANUAL. Пример создания табличного пространства с ручным управлением сегментами:
CREATE TABLESPACE TEST_TS DATAFILE '\db_1\oradata\TEST_TS_01.DBF' SIZE 25G
EXTENT MANAGEMENT LOCAL AUTOALLOCATE SEGMENT SPACE MANAGEMENT MANUAL;
Когда указывается автоматический режим, битовые образы используются взамен свободного списка для идентификации блоков, доступных для вставки. Параметры PCT_FREE и PCT_USED игнорируются для сегментов в табличных пространствах с автоматическим режимом управления. Автоматический режим доступен только для табличных пространств, настроенных для локального управления экстентами, но недоступен для временных и системных табличных пространств. Автоматическое управление сегментами исполняется лучше и снижает количество задач по обслуживанию. Для указания автоматического режима используется конструкция SEGMENT SPACE MANAGEMENT AUTO в предложении CREATE TABLESPACE:
CREATE TABLESPACE TEST_TS DATAFILE '\db_1\oradata\TEST_TS_01.DBF' SIZE 25G
EXTENT MANAGEMENT LOCAL AUTOALLOCATE SEGMENT SPACE MANAGEMENT AUTO;
Создание временного табличного пространства
Временное табличное пространство используется для временных сегментов, которые создаются, управляются и удаляются базой данных в случае необходимости. В основном эти сегменты создаются во время выполнений операций сортировки, таких как ORDER BY, GROUP BY и CREATE INDEX. Так же они создаются во время других операций, например, вставка записей во временные таблицы.
Временное табличное пространство создаётся во время создания базы данных конструкцией DEFAULT TEMPORARY TABLESPACE предложения CREATE DATABASE, или после создания базы данных предложением CREATE TEMPORARY TABLESPACE. Например:
CREATE TEMPORARY TABLESPACE temp TEMPFILE 'db_1\oradata\TEMP01.DBF' SIZE 2G;
Обратите внимание, ключевое слово DATAFILE заменено ключевым словом TEMPFILE. Временные файлы используются только временным табличным пространством, никогда не нуждаются в резервном копировании и журнализации.
Создание табличного пространства UNDO
Табличное пространство UNDO служит для хранения сегментов отката, которые используются базой данных в ряде случаев:
Для создания табличного пространства установите значение параметра инициализации UNDO_MANAGEMENT=AUTO и включите предложение UNDO TABLESPACE в конструкцию CREATE DATABASE.
Вы можете создать табличное пространство UNDO и после создания базы данных, выполнив предложение CREATE UNDO TABLESPACE:
CREATE UNDO TABLESPACE undo DATAFILE '\db_1\oradata\UNDO01.DBF' SIZE 2G;
Удаление табличного пространства
Для удаления табличного пространства из базы данных используется предложение DROP TABLESPACE. Опционально используется INCLUDING CONTENTS, позволяющая рекурсивно удалить любые сегменты (таблицы, индексы и т.д.) в табличном пространстве. Например, как показано ниже:
DROP TABLESPACE TEST_TS INCLUDING CONTENTS;
Удаление табличного пространства автоматически не удаляет файлы данных из системы. Для удаления используется дополнительное предложение INCLUDING CONTENTS AND DATAFILES, которое удаляет подчиненные файлы данных. Например:
DROP TABLESPACE TEST_TS INCLUDING CONTENTS AND DATAFILES;
Изменение табличных пространств
Для изменения атрибутов табличного пространства используется предложение ALTER TABLESPACE. Некоторые действия, которые вы можете выполнить: переименование, добавление файлов данных в маленьких табличных пространствах, перевод табличного пространства в активное и неактивное состояние, перевод табличного пространства в режим «только для чтения» или «чтение/запись».
Для переименования табличного пространства используется предложение:
ALTER TABLESPACE NAME_TS RENAME TO NEW_NAME_TS;
Далее рассмотрим дополнительные возможности по изменению табличных пространств.
Добавление файла данных в табличное пространство
Маленькие табличные пространства могут иметь несколько файлов данных, которые могут быть разнесены по нескольким файловым системам. Для добавления файла данных используется предложение ADD в ALTER TABLESPACE. Например, создадим табличное пространство TEST_TS и затем добавим в него файл данных размером 2GB:
CREATE TABLESPACE TEST_TS DATAFILE '\db_1\oradata\TEST_TS_01.DBF' SIZE 2G;
ALTER TABLESPACE TEST_TS ADD DATAFILE '\db_1\oradata\TEST_TS_02.dbf' SIZE 2G;
Перевод табличного пространства в режим online/offline
Иногда бывает ситуация, когда табличное пространство надо перевести в неактивный (offline) режим, для проведения операций по обслуживанию, например восстановление табличного пространства или перемещение файлов данных в другое место. Для этого используется предложение OFFLINE в конструкции ALTER TABLESPACE. Ниже приведен пример, перевода табличного пространства в неактивный режим и перенос в новое место:
Переводим табличное пространство TEST_TS в неактивный режим:
ALTER TABLESPACE TEST_TS OFFLINE;
Сообщаем базе данных об изменении расположения файла данных:
ALTER TABLESPACE TEST_TS RENAME DATAFILE '\db_1\oradata\TEST_TS_01.DBF' TO '\db_1\oradata\TEST_TS_01.DBF';
Переводим табличное пространство TEST_TS в активный (online) режим:
ALTER TABLESPACE TEST_TS ONLINE;
Перевод табличного пространства в режим «Только для чтения»
Если табличное пространство содержит статичные данные, оно может быть переведено в режим «только для чтения». Типичными кандидатами на перевод в этот режим могут быть табличные пространства, содержащие исторические или ссылочные данные. Когда табличное пространство только для чтения, можно сделать одну резервную копию во время, например, ночного или еженедельного резервного копирования. Этого будет достаточно для последующего восстановления. Вы можете выбирать данные из него, но данные не могут быть добавлены, удалены или изменены. Для перевода в режим «только для чтения», используется предложение READ ONLY в конструкции ALTER TABLESPACE. Например, переведем табличное пространство TEST_TS в такой режим:
ALTER TABLESPACE TEST_TS READ ONLY;
Если вам потребуется внести какие либо изменения, то можно снова перевести табличное в режим чтения и записи. Для этого используется READ WRITE, например:
ALTER TABLESPACE TEST_TS READ WRITE;
Работа с перманентными табличными пространствами
Работа с временными табличными пространствами
Работа с табличными пространствами отката
Работа с Oracle Managed Files (OMF)
Управление экстентами и сегментами
СОДЕРЖАНИЕ ОТЧЕТА