Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Сегменты БД и свободное пространство в БД. ASE 12.5 / 2 сообщений из 2, страница 1 из 1
10.12.2008, 13:23
    #35705243
_makSim
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сегменты БД и свободное пространство в БД. ASE 12.5
Для более четкого представления особенностей распределения свободного места в БД перечитал документацию по созданию и распределению сегментов + поэкспериментировал. Укажите на неверные предположения:

(Рассматривается БД с сегментами по умолчанию - system, default, logsegment)

1) Сообщение: ... because 'default' segment is full/has no free extents...
Нет места для вставки данных в таблицу. Необходимо расширить только устройство(а), которые выделены для default сегмента (если нет смешивания с logsement)

2) Сообщение: ... because 'logsegment' is full/has no free extents...
Нет места для лога транзакций . Необходимо расширить только устройство(а), которые выделены для logsegment (если нет смешивания с default)

3) Если БД создана с использованием 'with override' и на устройствах закончилось свободное место, то может выскочить любая из ошибок 1,2 (вероятнее 2)

4) Создавать/расширять 'боевую' БД с использованием 'with override' крайне нежелательно (исключение tempdb).

5) Свободное место для данных достаточно точно можно определить выполнив скрипт sp_helpdb database_name и просуммировав все значения столбца free kbytes для строк c usage = data only . (БД без override).

6) sp_spaceused database_name - не лучший способ определения наличия свободного пространства в БД.

7) Сервер с page size = 2K. Таблица с размером строки > 1Кб (например, 6 полей char(200)). Предполагаю, что 1 страница - 1 строка. Нужно вставить 100 000 строк = 200 000 Кб. Есть 2 устройства (оба data only - system + default): на одном свободно 100+80=180Mб на 2-м 50Мб. Гарантировано ли, что вставка пройдёт успешно (logsegment очищен и занимает 300Мб)?

8) Если не используется дампирование лога транзакций, то полезно устанавливать опции БД:
trunc log on chkpt - без существенных ограничений
и abort tran on log full - не получаем зависших процессов. (если обрыв транзакций с соотв. сообщением не критичен.)

Спасибо за помощь в структурировании накопленных опытом знаний!
...
Рейтинг: 0 / 0
10.12.2008, 14:28
    #35705473
komrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сегменты БД и свободное пространство в БД. ASE 12.5
_makSimДля более четкого представления особенностей распределения свободного места в БД перечитал документацию по созданию и распределению сегментов + поэкспериментировал. Укажите на неверные предположения:

(Рассматривается БД с сегментами по умолчанию - system, default, logsegment)

1) Сообщение: ... because 'default' segment is full/has no free extents...
Нет места для вставки данных в таблицу. Необходимо расширить только устройство(а), которые выделены для default сегмента (если нет смешивания с logsement)

да, либо добавить новый девайс и расширить на него БД (default & system сегменты)

_makSim
2) Сообщение: ... because 'logsegment' is full/has no free extents...
Нет места для лога транзакций . Необходимо расширить только устройство(а), которые выделены для logsegment (если нет смешивания с default)

забекапить лог либо расширить/(добавить новый) девайс и расширить на него БД (default & system сегменты)

_makSim
3) Если БД создана с использованием 'with override' и на устройствах закончилось свободное место, то может выскочить любая из ошибок 1,2 (вероятнее 2)

да, но вероятность неочевидна

_makSim
4) Создавать/расширять 'боевую' БД с использованием 'with override' крайне нежелательно (исключение tempdb).

да

_makSim
5) Свободное место для данных достаточно точно можно определить выполнив скрипт sp_helpdb database_name и просуммировав все значения столбца free kbytes для строк c usage = data only . (БД без override).

Код: plaintext
sp_helpsegment 'default'

_makSim
6) sp_spaceused database_name - не лучший способ определения наличия свободного пространства в БД.

статистику держите актуальной и будет нормальный способ
sp_spaceused database_name - так это не сработает, имя бд указывать не надо


_makSim
7) Сервер с page size = 2K. Таблица с размером строки > 1Кб (например, 6 полей char(200)). Предполагаю, что 1 страница - 1 строка. Нужно вставить 100 000 строк = 200 000 Кб. Есть 2 устройства (оба data only - system + default): на одном свободно 100+80=180Mб на 2-м 50Мб. Гарантировано ли, что вставка пройдёт успешно (logsegment очищен и занимает 300Мб)?

это как вставлять будете - одним батчем или многими
если одним, то возможно лога не хватит, т.е. надо пробовать
по размеру таблицы - sp_estspace вам в помощь

_makSim
8) Если не используется дампирование лога транзакций, то полезно устанавливать опции БД:
trunc log on chkpt - без существенных ограничений
и abort tran on log full - не получаем зависших процессов. (если обрыв транзакций с соотв. сообщением не критичен.)

да, полезно
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Сегменты БД и свободное пространство в БД. ASE 12.5 / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]