Сен 072012
 

Начиная с ORACLE 10g появилась поддержка так называемых Bigfile tablespaces (далее - BFT). От обычных табличных пространств они отличаются тем, что состоят только из одного файла данных, но при этом файл может быть очень большого размера.
Раньше, например, в версии 9i, размер файла данных не мог превышать 4M - 1 блоков, т.е. для файла с размером блока 8K было ограничение 4 \cdot 8192 \cdot 1024^2 - 8192 = 34359730176 \approx 32G. Поэтому для действительно больших табличных пространств приходилось создавать несколько (иногда очень много) файлов, что усложняло администрирование базы.
Когда же испозьзуется BFT, файл может содержать целых 4G блоков. Таким образом, для табличного пространства с размером блока 8K наибольший размер будет 4 \cdot 8192 \cdot 1024^3 - 8192 = 36028797018955776 \approx 32T. Совсем другое дело!

Bigfile tablespaces создаются так же, как и обычные табличные пространства, только с указанием параметра BIGFILE:

CREATE BIGFILE TABLESPACE bigtbs 
	DATAFILE '/dev/vx/rdsk/mydb/bigtbs.dbf' SIZE 1T;

По умолчанию создаются традиционные табличные пространства. Кроме того, пространства SYSTEM и SYSAUX могут быть только типа SMALLFILE.

Что нам даёт использование BFT?
  • В первую очередь, упрощение манипуляции табличными пространствами благодаря установлению однозначного соответствия "ТП - файл". Это позволяет, например, делать подобные штуки:

    ALTER TABLESPACE bigtbs RESIZE 2T;

    И вуаля. Главное - не забыть предварительно расширить том, если не используется ASM, а остальное ORACLE сделает самостоятельно.

  • Чем меньше файлов данных используется, тем меньшими могут быть параметр инициализации DB_FILES и параметр MAXDATAFILES команды CREATE DATABASE, а как следствие, меньший расход SGA и меньший размер controlfile (который, кстати, тоже ограничен величной 20000 \cdot {db\_block\_size}).

Таким образом, имеет смысл создавать базы, использующие BFT, или в существующих базах создавать новые табличные пространства с типом BIGFILE.

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre lang="" line="" escaped="" cssfile="">

(обязательно)

(обязательно)