Мне недавно нужно было импортировать .dmp в нового пользователя, которого я создал. Я также создал новую табличную для пользователя с помощью следующей команды:Oracle Tablespaces maxsize "unlimited" не совсем неограниченно
create tablespace my_tablespace
datafile 'C:\My\Oracle\Install\DataFile01.dbf' size 10M
autoextend on
next 512K
maxsize unlimited;
В то время как импорт был запущен, я получил ошибку:
ORA-01652 Unable to extend my_tablespace segment by in tablespace
Когда я просмотрел файлы данных в таблице dba_data_files, Я заметил, что maxsize составляет около 34 гб. Поскольку я знал общий размер базы данных, мне удалось импортировать .dmp без каких-либо проблем после добавления нескольких файлов данных в табличное пространство.
Почему мне нужно добавить несколько файлов данных в табличное пространство, когда первый, который я добавил, был настроен на автоматическое увеличение до неограниченного размера? Почему максимальный размер 34gb, а не неограниченный? Есть ли твердая шапка 34gb?
Что такое размер блока данных БД? A (smallfile tablespace) [файл данных может содержать только 2^22 блока) (http://docs.oracle.com/cd/E11882_01/server.112/e40402/limits002.htm#REFRN0042), поэтому, я думаю, вы попадаете этот лимит с блоками 8kb? –
Я считаю, что я нажимаю этот предел. Я (по-видимому, ошибочно) предположил, что указание «неограниченное» будет расширяться до тех пор, пока ОС не закончится из пространства HD. Для уточнения, что вы говорите, что есть твердая шапка? – spots
Да; но он зависит от размера блока - количество блоков ограничено, это не является прямым ограничением по размеру. Указанный размер является мягким пределом. Как упоминает Джон, вы можете указать несколько файлов данных, чьи мягкие ограничения больше, чем доступное дисковое пространство. И помните, что Oracle любит отделять логическое от физического - тот же логический DDL имеет другой физический предел для двух систем с разными блоками. –