Отправляет email-рассылки с помощью сервиса Sendsay

Открыто о СУБД Oracle на русском

  Все выпуски  

Открыто о СУБД Oracle на русском : сегменты отката


Информационный Канал Subscribe.Ru

Выпуск 34

Сегменты отката

Этот выпуск посвящен размещению сегментов отката в нескольких табличных пространствах. По мотивам ответа Тома Кайта на вопрос пользователя, заданный в апреле 2003 года. Ну, и для полноты картины - формальный синтаксис оператора CREATE ROLLBACK SEGMENT в Oracle 9i Release 2 (9.2.0)

В скольких табличных пространствах размещать сегменты отката?

А) Имеет ли смысл распределять сегменты отката по нескольким табличным пространствам, если эти пространства расположены на одном наборе дисков?

Б) Зависит ли ответ от версии Oracle?

Ответ Тома Кайта

А) В 9iR2 следует использовать одно табличное пространство UNDO, и все. В Oracle 9i явно настраивать сегменты отката больше не нужно.

В версиях 8i я всегда выделял отдельное табличное пространство для каждого сегмента отката. Это упрощает их уменьшение вручную (не используйте установку optimal - это напрасная трата времени) при необходимости. Одно табличное пространство, один файл, один сегмент отката - легко уменьшить.

Но, повторю еще раз: не используя табличные пространства UNDO в 9ir2, вы многое теряете.

b) see a

Почему один? Комментарий читателя от 6 апреля 2003 года

Привет, Том!

Почему только один сегмент отката? НЕ будет ли более эффективно создать несколько сегментов отката, особенно в системе оперативной обработки транзакций (ООТ)?

Когда ты пишешь про один сегмент отката, должно ли в нем быть много (например, 30-40 или больше) экстентов или как можно меньше?

Когда можно утверждать, что одного сегмента отката не достаточно (конфликты при доступе к заголовку undo) и надо создавать новые (в версиях до 9i, естественно)?

Ответ Тома Кайта

Я писал про один сегмент отката?

Мне кажется, нет...

Я писал:

В 9iR2 - используйте табличное пространство undo и сервер Oracle сам позаботится о размере и количестве сегментов отката в этом табличном пространстве undo.

В 8i я создавал один сегмент отката в табличном пространстве, или отдельное табличное пространство для каждого сегмента отката. Я говорил об отношении один к одному между сегментом отката и табличным пространством, а не о количестве сегментов отката.


Оригинал обсуждения этого вопроса можно найти здесь.


Copyright © 2003 Oracle Corporation


Синтаксис оператора CREATE ROLLBACK SEGMENT

<оператор CREATE ROLLBACK SEGMENT> ::=
CREATE [PUBLIC] ROLLBACK SEGMENT <имя сегмента отката>
  [TABLESPACE <имя табличного пространства>] [<конструкция хранения>]

Синтаксис конструкции хранения мы уже рассматривали в 24 выпуске рассылки.

Пример

Следующий оператор создает сегмент отката со стандартными параметрами хранения в локально управляемом табличном пространстве:

 
CREATE TABLESPACE rbs_ts 
  DATAFILE 'rbs01.dbf' SIZE 10M 
  EXTENT MANAGEMENT LOCAL UNIFORM SIZE 100K; 
 
/* Этот и следующий оператор не сработает, если база данных работает в режиме 
автоматического управления данными отмены - Automatic Undo Mode (9i). */ 
 
CREATE ROLLBACK SEGMENT rbs_one 
  TABLESPACE rbs_ts; 

Предыдущий оператор эквивалентен следующему:

 
CREATE ROLLBACK SEGMENT rbs_one 
  TABLESPACE rbs_ts 
  STORAGE ( 
    INITIAL 10K 
    NEXT 10K 
    MAXEXTENTS UNLIMITED 
  ); 

В следующем выпуске

Потерянные изменения и оптимистическое блокирование. Следите за новостями на сайте проекта Open Oracle.

С наилучшими пожеланиями,

  В.К.



http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное