Могут ли табличные пространства Oracle автоматически добавлять файлы данных smallfile?

Используя файлы, управляемые Oracle, я могу создать свое табличное пространство следующим образом:

CREATE TABLESPACE users;

Он будет расширяться автоматически, но, насколько я понимаю, файлы данных smallfile имеют максимальный размер. Итак, мне нужно сделать:

ALTER TABLESPACE users ADD DATAFILE;
ALTER TABLESPACE users ADD DATAFILE;
ALTER TABLESPACE users ADD DATAFILE;

Просто интересно, есть ли способ заставить oracle автоматически добавлять другой файл данных, когда он пытается автоматически расширить свой максимально возможный размер?


person Adam Butler    schedule 02.03.2011    source источник
comment
Я думал, что предел составляет 4 миллиона x размер блока для загрузки. oracle.com/docs/cd/E11882_01/server.112/e17118/   -  person Adam Butler    schedule 02.03.2011


Ответы (3)


В Oracle нет реального ограничения

ALTER DATABASE DATAFILE ‹'имя_файла_данных' | номер_файла_данных> AUTOEXTEND K | M | G | T | P | E MAXSIZE ‹НЕОГРАНИЧЕННЫЙ | K | M | G | T | P | E>;

Оператор ОС или ОС может остановить Вас и базу данных. Затем вы можете написать задание, которое будет автоматически добавлять новые файлы в табличное пространство после% использования. Что-то вроде этого (псевдокод).

SELECT tablespace_name,maxbytes,bytes INTO v_tbs_info FROM dba_data_files;

FOR tbs_inf IN v_tbs_info LOOP
  IF tbs_inf.bytes/tbs_inf.maxbytes > 0.99
  excecute immediate 'ALTER TABLESPACE '|| tbs_inf.tablespcae_name ||' ADD DATAFILE SIZE 1M aUTOEXTEND ON NEXT 10M MAXSIZE 10G';
END LOOP;

Конечно, не стоит писать эту работу и использовать ее. Вы должны указать объем пространства, занимаемого данными, и выделить соответствующее количество файлов в табличное пространство.

person baklarz2048    schedule 02.03.2011

Для Oracle не существует встроенного метода автоматического добавления файлов данных.

ВНИМАНИЕ: Оператор "unlimited" в oracle на самом деле не безграничен. Это означает только неограниченный размер файлов данных до жесткого ограничения Oracle, который зависит от вашего параметра db_block_size. База данных по умолчанию будет иметь размер блока 8 КБ и использовать табличные пространства smallfile, что означает, что файлы данных не будут превышать 32 ГБ.

Как только файл данных достигнет жесткого предела, даже если у вас установлено AUTOEXTEND MAXSIZE UNLIMITED, вам все равно придется вручную добавить новый файл данных.

Для получения дополнительной информации см. Таблицу в этом сообщении:

https://community.oracle.com/message/1900237#1900237

person Jonathan Lynch    schedule 27.01.2016

конечно, мы можем, но почему мы должны? Обычно для ограничения есть причина. А для максимальных размеров файлов данных мы можем создать табличное пространство bigfile, которое немного расширило пределы файлов. Это влияет на резервное копирование / восстановление, но начиная с 11gR2 мы можем выполнять резервное копирование этих файлов параллельно, при этом большие файлы разбиваются на куски и распределяются по различным каналам.

Также вопрос, каков максимально возможный размер? Это размер, который поддерживается файловой системой, ASM, базой данных, или это максимальный размер, установленный dba?

Рональд.

person ik_zelf    schedule 02.03.2011