Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Oracle > Как уменьшить размер tablespace


Автор: azesmcar 11.1.2006, 17:08
Добый вечер...
Надо срочно уменьшить размер tablespace -а. Сервер погибает...100% HDD занято...
Делал дефрагментацию таблицы (не tablespace -а). скопировал данные из одной таблицы в temporary таблицу, потом сделал truncate старой таблицы и удалил. Я так думаю место предыдущей таблицы не освободилось так как после этого размер tablespace -а основного как и
undotbs01.dbf вырос до 7-и гигабайтов. Раньше занимал около 4-х гигов..

alter database datafile '/opt/oracle/oradata/billing/undotbs01.dbf' resize 5000M;

не помогает...alter database datafile на любой размер как рабочего tablespace -а так и undotbs01.dbf выдает ошибку

ORA-03297: file contains used data beyond requested RESIZE value

можно как либо сократить его размер? если новая (я так думаю) таблица находится в конце tablespace -а...

Оракл перезагружал, никакого эффекта, хотя после этого alter database datafile должен был сработать...
select суммы свободных сегментов выдает что в undotbs01.dbf еще 6 гигабайтов свободного пространства...PL/SQL -а нет, только sqlplus.
Система Linux, версия oracle 10g

Автор: azesmcar 11.1.2006, 17:46
alter tablespace my_tablespace coalesce на рабочем tablespace -е не помогает, а на undotbs01 coalesce делать нельзя...

что делать? я в смятении...дефрагментацию всей базы чтоли???

Автор: LSD 11.1.2006, 17:55
У тебя еще есть табличные пространства, в которые может поместится данная таблица, или свободное место на диске для нового ьабличного пространства?

Автор: Гость_azesmcar 11.1.2006, 19:01
Других табли`ных пространств нету, могу создать на другом диске.

Сделал дефрагментаци tablespace -а. довел до 2048М.

Но с undotbs1 не выходит. есть идеи?

Автор: LSD 11.1.2006, 19:09
Цитата(Гость_azesmcar @ 11.1.2006, 19:01 Найти цитируемый пост)
Но с undotbs1 не выходит. есть идеи?

Да drop-ни ты его и все. Все равно никаких объектов в нем нет.

Автор: Guest 11.1.2006, 19:58
Ето единственный undo tablespace, оракл по моему не пустит..
Но попробую

скрипт работает но размер файла остается

Код

CREATE UNDO TABLESPACE undotbs_02
     DATAFILE '/opt/oracle/oradata/billing/undotbs2.dbf' SIZE 2M REUSE
AUTOEXTEND ON;

ALTER SYSTEM SET UNDO_TABLESPACE = undotbs_02;

alter database datafile '/opt/oracle/oradata/billing/undotbs01.dbf' resize = 100M;

ALTER SYSTEM SET UNDO_TABLESPACE = UNDOTBS1;

drop tablespace undotbs_02;


попробую удалить...

Автор: Guest 11.1.2006, 20:10
Код

CREATE UNDO TABLESPACE undotbs_02
     DATAFILE '/opt/oracle/oradata/billing/undotbs2.dbf' SIZE 2M REUSE
AUTOEXTEND ON;

ALTER SYSTEM SET UNDO_TABLESPACE = undotbs_02;

drop tablespace UNDOTBS1;


Работает smile

Все, сервер спасен...smile спасибо большое...

Автор: Гость_azesmcar 11.1.2006, 20:11
Верхние два поста мои, забыл ввести имя..

Автор: LSD 11.1.2006, 21:13
Пожалуйста smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)