Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / suspended transaction? / 8 сообщений из 8, страница 1 из 1
07.01.2002, 17:33
    #32020251
cvasil
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
suspended transaction?
Здравствуйте Уважаемые,

Не поможет ли кто советом.
Возможно ли на MS SQL Server 2000 реализовать ситуацию, когда в случае переполнения лога активная транзакция будет не откатываться автоматически, а переводиться в состояние suspended и ждать пока в логе появится свободное место?

Происхождение проблемы следующее.
Производятся массированные обновления (вставки, удаления) таблицы, участвующей в транзакционной репликации. Операции разбиты на короткие транзакции, но генерятся эти транзакции быстрее, чем Log Reader успевает считывать их и снимать флаг for replication. В следствии чего невозможно бэкапить (транкейтить) эти транзакции, лог переполняется и очередная транзакция откатывается. Хотелось бы чтобы вместо этого активная транзакция переводилась бы в состояние suspended и ждала бы пока log reader прочитает данные из лога, произойдет бэкап лога (или truncate on checkpoint) и место в логе освободится. Таким образом работает наприме Sybase.

Заранее признателен,
Константин
...
Рейтинг: 0 / 0
08.01.2002, 06:11
    #32020265
так просто
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
suspended transaction?
Не уверен, но тем не менее - а что, если увеличить в профиле агента Log Reader значение параметра ReadBatchSize? Тогда он за один присест будет читать большее кол-во транзакций из журнала...
...
Рейтинг: 0 / 0
08.01.2002, 14:22
    #32020307
cvasil
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
suspended transaction?
Это я уже пробовал. К сожалению не катит.
Все равно Log Reader читает данные медленнее чем например bcp in вставляет их.
...
Рейтинг: 0 / 0
09.01.2002, 15:46
    #32020371
Garya
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
suspended transaction?
Если все обстоит так, как ты описываешь, значит некорректно выбран вид репликации. Нужно использовать такую репликацию, в которой не используется Log Reader. Например, непосредственно обновляемых подписчиков. Ясное дело, в этом случае страдает надежность и требуются высокоскоростные и надежные каналы связи... Есть еще Snapshot-репликация и закачка через DTS-пакеты... В лоб и безболезненно сложные вопросы не решаются.
...
Рейтинг: 0 / 0
09.01.2002, 16:30
    #32020379
cvasil
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
suspended transaction?
Спасибо Garya за комментарий. Жаль конечно. В Sybase это более удобно организовано.
Там прямо есть dboption такая 'abort tran on log full'.
Позволяет задавать поведение транзакции при заполнении лога.
Не понятно почему ее выбросили из MS SQL.
...
Рейтинг: 0 / 0
10.01.2002, 04:18
    #32020387
просто так
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
suspended transaction?
а если так - в теле транзакции проверяй, на сколько у тебя заполнен журнал, и если значение приближается к критическому, то притормаживай завершение транзакции, например, командой WAIT FOR, а в это время Log Reader прочтет ранее завершенные транзакции и пометит их
...
Рейтинг: 0 / 0
10.01.2002, 14:31
    #32020470
cvasil
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
suspended transaction?
Это как же мне заставить bcp притормозить?
...
Рейтинг: 0 / 0
14.01.2002, 13:17
    #32020653
Александр Гладченко
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
suspended transaction?
Может просто изменить интервал для контрольной точки (Статья "Checkpoints and the Active Portion of the Log" в BOL) или чаще резервировать записи журнала....
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / suspended transaction? / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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