Бывают случаи, когда по какой-то причине нам необходимо сменить табличное пространство UNDO. Например, когда оно слишком разрослось и нет возможности его уменьшить, тогда проще всего его пересоздать. Процедура пересоздания табличного пространства UNDO описана ниже:
- Для начала - посмотрим, какое табличное пространство UNDO сейчас использует наша База Данных, с помощью команды:
show parameter undo;
И так, мы видим, что наша База Данных использует UNDOTBS1. - Создаем новое табличное пространство UNDO:
CREATE UNDO TABLESPACE "UNDOTBS2" DATAFILE '/[path to ORADATA DIR]/undotbs2_1.dbf' SIZE 500M AUTOEXTEND ON NEXT 200M MAXSIZE 32767M BLOCKSIZE 8192 EXTENT MANAGEMENT LOCAL AUTOALLOCATE;
- Переключаем Базу Данных на использование ново-созданного табличного пространства UNDO:
ALTER SYSTEM SET undo_tablespace=UNDOTBS2 SCOPE=BOTH;
На какой-то промежуток времени ранее используемое Табличное пространство UNDOTBS1 изменит свой статус на PENDING OFFLINE- это значит, что оно все еще используется для каких-то незавершенных транзакций, все новые транзакции уже используют UNDOTBS2. Стоит немного подождать ..... - После того как все транзакции, использующие UNDOTBS1, завершились мы можем его удалить:
DROP TABLESPACE UNDOTBS1 INCLUDING CONTENTS AND DATAFILES ;
0 коммент.:
Отправить комментарий