Табличные пространства Bigfile

Oracle Database 11g может содержать до 8 эксабайт (8 миллионов Тбайт) данных. Однако не стоит паниковать, думая о том, сколькими миллионами файлов данных придется управлять, чтобы хранить такое большое количество данных. У вас есть возможность создавать действительно большие табличные пространства, называемые соответственно табличными пространствами bigfile  (большой файл).

Табличное пространство bigfile (bigfile tablespace — BFT) состоит из одного очень большого файла. Если создается постоянное табличное пространство bigfile, оно будет состоять из единственного файла данных, а если временное табличное пространство — то из одного временного файла. Максимальное количество файлов данных в Oracle ограничено 64 000. Поэтому если вы имеете дело с чрезвычайно большими базами данных, использование табличных пространств bigfile гарантирует, что вы не выйдете за пределы максимально допустимого количества файлов данных в базе.

В зависимости от размера блока, табличное пространство bigfile может составлять до 128 Тбайт. В предыдущих версиях Oracle всегда приходилось помнить о различии между файлами данных и табличными пространствами. Теперь, благодаря концепции bigfile, Oracle логически уравнял табличное пространство с файлом данных, создав между ними отношение “один к одному”. С Oracle Managed Files (OMF) файлы данных стали полностью прозрачными при использовании BFT, и вы можете непосредственно иметь дело с табличным пространством при выполнении различных видов операций.


На заметку! Традиционные табличные пространства теперь называются табличными пространствами smallfile (малый файл). Эти табличные пространства остаются табличными пространствами по умолчанию в Oracle Database 11g. В одной и той же базе данных можно иметь табличные пространства как smilefile, так и bigfile.


Ниже перечислены преимущества использования BFT.

  • Необходимо создавать столько файлов данных, сколько имеется табличных пространств.
  • Не нужно постоянно добавлять новые файлы к табличным пространствам.
  • Управление файлами данных в крупных базах упрощается; вы имеете напрямую дело всего с несколькими табличными пространствами, а не с множеством файлов данных.
  • Емкость хранилища значительно возрастает, потому что ограничение на максимальное количество файлов при использовании BFT исчерпается не так быстро.

Ограничения при использовании табличных пространств Bigfile

При использовании BFT существует несколько ограничений. Их можно применять только при условии использования локально управляемых табличных пространств с автоматическим управлением пространством сегментов. Вы уже знаете, что локально управляемые табличные пространства с автоматическим управлением пространством сегментов в Oracle Database 11g Release 1 приняты по умолчанию. Oracle также рекомендует применять BFT вместе со средством Logical Volume Management или Automated Storage Management, поддерживающим расслоение и зеркальное отображение. В противном случае вы не сможете поддерживать массив файлов данных, следующих концепции BFT. И параллельное выполнение запросов, и параллелизм RMAN существенно пострадают, если применяется BFT без расслоения.

Чтобы избежать создания миллионов экстентов при использовании BFT в очень больших (свыше терабайта) базах данных, Oracle рекомендует сменить политику выделения с AUTOALLOCATE на UNIFORM, и установить очень большой размер экстента. В не очень больших базах данных Oracle рекомендует придерживаться политики по умолчанию AUTOALLOCATE и просто возложить на Oracle заботу о размерах экстентов.

Создание табличных пространств Bigfile

Создавать табличные пространства bigfile можно тремя разными способами: специфицировать их во время создания базы данных Oracle Database и, таким образом, назначать их табличными пространствами по умолчанию; использовать оператор CREATE BIGFILE; применять оператор ALTER DATABASE, чтобы установить тип BFT в качестве типа табличных пространств, принятого по умолчанию.

Можно специфицировать BFT в качестве табличных пространств по умолчанию при создании базы данных Oracle. Если не указать явно BFT в качестве типа по умолчанию для табличных пространств, то база данных по умолчанию будет иметь традиционные табличные пространства smallfile.

Ниже показана часть оператора CREATE DATABASE, демонстрирующая установку BFT:

SQL> CREATE DATABASE
SET DEFAULT BIGFILE tablespace
. . . 

Как только вы установите в качестве типа по умолчанию для табличных пространств bigfile, все табличные пространства, создаваемые впоследствии, будут BFT, если только вручную не переопределить эту установку, как будет показано ниже.

Независимо от того, какое табличное пространство по умолчанию будет выбрано — bigfile или smallfile — всегда можно создать табличное пространство bigfile, явно специфицировав тип в операторе CREATE TABLESPACE:

SQL> CREATE BIGFILE TABLESPACE bigtbs_01
DATAFILE '/u01/oracle/data/bigtbs_01.dbf' SIZE 100G
. . . 

В приведенном выше операторе явное указание конструкции BIGFILE переопределит тип табличного пространства по умолчанию, если этим типом был smallfile. И наоборот, если типом табличного пространства по умолчанию является bigfile, с помощью конструкции SMALLFILE можно переопределить тип по умолчанию при создании табличного пространства.

Когда вы специфицируете конструкцию CREATE BIGFILE TABLESPACE, Oracle автоматически создаст локально управляемое табличное пространство с автоматическим управлением пространством сегментов. Вы можете специфицировать размер базы данных в килобайтах, мегабайтах, гигабайтах или терабайтах.


Совет. В операционных системах, которые не поддерживают больших файлов, размер bigfile будет ограничен максимальным размером, поддерживаемым операционной системой.


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

SQL> ALTER TABLESPACE SET DEFAULT BIGFILE TABLESPACE;

После изменения типа табличного пространства можно также перенести объекты базы данных из табличного пространства smallfile в табличное пространство bigfile или наоборот. Это делается с помощью команды ALTER TABLE ... MOVE или CREATE TABLE AS SELECT. Вдобавок для перемещения объектов между двумя типами табличных пространств можно воспользоваться инструментами Data Pump Export и Import.

Изменение табличного пространства Bigfile

Для изменения размера BFT можно использовать конструкции RESIZE и AUTOEXTEND в операторе ALTER TABLESPASE. Обратите внимание, что обе эти конструкции, описывающие режим расширения, могут быть применены непосредственно на уровне табличного пространства, а не уровне файла. Таким образом, обе эти конструкции обеспечивают прозрачность файлов данных, и вы имеете дело с табличными пространствами, игнорируя лежащие в основе файлы данных.

Дополнительные подробности относительно этих двух конструкций приведены ниже.

  • RESIZE. Конструкция RESIZE позволяет непосредственно изменять размер BFT, не прибегая к конструкции DATAFILE, как показано ниже:
      SQL> ALTER TABLESPACE bigtbs RESIZE 120G; 
  • AUTOEXTEND. Конструкция AUTOEXTEND разрешает автоматическое расширение файлов — также без обращения к файлу данных. Вот пример:
      SQL> ALTER TABLESPACE bigtbs AUTOEXTEND ON NEXT 20G; 

Просмотр информации о табличных пространствах Bigfile

Получить информацию о BFT в базе данных можно с помощью следующих представлений словаря данных:

  • DBA_TABLESPACES
  • USER_TABLESPACES
  • V$TABLESPACE

Все три представления включают новый столбец BIGFILE, значение в котором указывает, относится табличное пространство к типу BFT (YES) или smallfile (NO).

Чтобы узнать тип табличного пространства по умолчанию, установленный в базе данных, можно также использовать представление словаря данных DATABASE_PROPERTIES, как показано в следующем запросе:

SQL> SELECT property_value
FROM database_properties
WHERE property_name='DEFAULT_TBS_TYPE';
PROPERTY_VALUE
--------------
SMALLFILE
SQL> 

 

Вас заинтересует / Intresting for you:

THREADED_EXECUTION в Oracle 12...
THREADED_EXECUTION в Oracle 12... 3729 просмотров Андрей Васенин Thu, 01 Nov 2018, 12:58:50
Хронология активных сеансов в ...
Хронология активных сеансов в ... 2773 просмотров Antoniy Tue, 21 Nov 2017, 13:18:46
Временные табличные пространст...
Временные табличные пространст... 14140 просмотров Ольга Потемкина Tue, 21 Nov 2017, 13:18:46
Как отключить табличное простр...
Как отключить табличное простр... 2971 просмотров Ольга Потемкина Tue, 21 Nov 2017, 13:18:46
Войдите чтобы комментировать