24 июл. 2014 г.

on Leave a Comment

Как изменить UNDO Tablespace

Бывают случаи, когда по какой-то причине нам необходимо сменить табличное пространство UNDO. Например, когда оно слишком разрослось и нет возможности его уменьшить, тогда проще всего его пересоздать. Процедура пересоздания табличного пространства UNDO описана ниже:
  1. Для начала - посмотрим, какое табличное пространство UNDO сейчас использует наша База Данных, с помощью команды:
     show parameter undo;

    И так, мы видим, что наша База Данных использует UNDOTBS1. 

  2.  Создаем новое табличное пространство 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; 

  3.  Переключаем Базу Данных на использование ново-созданного табличного пространства UNDO:
    ALTER SYSTEM SET undo_tablespace=UNDOTBS2 SCOPE=BOTH;
    На какой-то промежуток времени ранее используемое Табличное пространство UNDOTBS1 изменит свой статус на PENDING OFFLINE- это значит, что оно все еще используется для  каких-то незавершенных транзакций, все новые транзакции уже используют UNDOTBS2. Стоит немного подождать ..... 

  4. После того как все транзакции, использующие UNDOTBS1, завершились мы можем его удалить:
    DROP TABLESPACE UNDOTBS1 INCLUDING CONTENTS AND DATAFILES ;

0 коммент.:

Отправить комментарий

Технологии Blogger.