|
|
|
Как я избавился от непомерного журнала транзакций
|
|||
|---|---|---|---|
|
#18+
От автора Уважаемые коллеги! Предлагаю на рассмотрение метод полного очищения журнала транзакций и прошу вас оценить, насколько он жизнеспособен. Спасибо. Пролог: У нас есть БД, разработанная одной конторой (руки бы им поотшибать), которая используется для поддержки нашего сайта. Так вот - при размере файла данных 12 м журнал транзакций достиг 300 м (!) Его уже и шринковали, и модель SIMPLE, и бэкапится регулярно - ну не хочет сжиматься! А для сайта, который обновляется раз в неделю - журнал транзакций, ессно, "как собаке пятая нога". Основная тема Вот я и подумал, что необходим радикальный метод. Результатом стал такой алгоритм: sp_detach_db 'MyDatabase' переименование файла журнала MyDatabase_log.ldf -> MyDatabase_log.ld_ (эксперимент все-же!) sp_attach_db 'MyDatabase','c:\....\MyDatabase.mdf' В результате имеем сообщение, что журнал транзакций поврежден, поэтому был создан новый пустой журнал. Вуа-ля! Эпилог Опыт проводился на локальном сервере, дабы не грохнуть сайт. Все крутится на MS SQL2000. БД вроде работает, запросы - запросятся, инсерты - инсертятся. Тем не менее, боюсь, что чего то не учел. Прошу высказаться. ЗЫ Возможно, кто-то этим уже пользуется - не претендую на первенство и, тем более, на лавры какие-то. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2002, 11:17:12 |
|
||
|
Как я избавился от непомерного журнала транзакций
|
|||
|---|---|---|---|
|
#18+
Мда... До такого надо додуматься. А зачем Вам тогда вообще журнал, если Вы его прибить хотите? Способ не выдерживает критики, т.к. процедуры, которые Вы используете, предназначены для экстренных случаев спасения ущербных БД, а не для ужатия журналов. Кроме того, что значит Его уже и шринковали, и модель SIMPLE, и бэкапится регулярно - ну не хочет сжиматься! ? Видимо, Вы что-то упустили в стандартной процедуре ужатия (ссылки см. в форуме). Удачи P.S. Все сказанное - мое скромное мнение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2002, 11:25:53 |
|
||
|
Как я избавился от непомерного журнала транзакций
|
|||
|---|---|---|---|
|
#18+
2 jimmers Стандартная процедура ужатия? 1. DBCC SHRINKDATABASE - OK 2. DBCC SHRINKFILE - OK 3. BACKUP LOG ... WITH NO_LOG - OK Размер уменьшился метров на 25. Опции БД: - модель SIMPLE - Auto shrink Варианты: 1. Переделать приложение (видимо остаются открытые транзакции или в транзакции включены операции с полями TEXT/IMAGE) - так разработчиков уже и не сыщешь 2. Принять радикальные меры - см. выше. Зачем вообще журнал? ИМХО в данном конкретном случае вопрос должен так стоять: Зачем там вообще БД? Для нашего сайта (только новости и статьи) - она вообще не нужна. Однако - она (БД) есть. Обновляется раз в неделю. Бэкапится регулярно. Ну и зачем здесь журнал транзакций? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2002, 11:49:49 |
|
||
|
Как я избавился от непомерного журнала транзакций
|
|||
|---|---|---|---|
|
#18+
Кроме того данный метод не будет работать для базы с несколькими файлами журнала. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2002, 11:57:47 |
|
||
|
Как я избавился от непомерного журнала транзакций
|
|||
|---|---|---|---|
|
#18+
Хорошо, признаю - кривой метод. Порождение моей буйной фантазии. ЗЫ Но попробовать то стоило? :0) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2002, 12:06:40 |
|
||
|
Как я избавился от непомерного журнала транзакций
|
|||
|---|---|---|---|
|
#18+
При размере базы в 12 М, проще создать новую (с маленьким логом) и скопировать данные и объекты из старой - старую потом можно прибить. Процесс займет секунд 30, я думаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2002, 13:08:28 |
|
||
|
Как я избавился от непомерного журнала транзакций
|
|||
|---|---|---|---|
|
#18+
2 Alexandr Chepack Может быть и так, если есть уверенность, что можно так же быстро перенастроить ПО для использования новой БД. А вот такой уверенности - нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2002, 13:18:02 |
|
||
|
Как я избавился от непомерного журнала транзакций
|
|||
|---|---|---|---|
|
#18+
Так как же все-таки правильно урезать LOG? А то у меня такие же проблемы. Не работает метод, который описан в BOL. При одном файле журнала данный метод на 100% рабочий? Как же все-таки в таких ситуациях поступает Glory? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2002, 14:18:57 |
|
||
|
Как я избавился от непомерного журнала транзакций
|
|||
|---|---|---|---|
|
#18+
Извиняюсь. Нашел по поиску "журнал транзакций" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2002, 14:33:26 |
|
||
|
Как я избавился от непомерного журнала транзакций
|
|||
|---|---|---|---|
|
#18+
Не знаю насколько это правильно но в точно таком же виде работает месяца три. Один раз за это время база не приатачилась в силу непонятных причин. Через час тоже самое прошло вполне успешно. Ничего не менялось. даже лог не дописывался просто сначала матом что лог поврежден, а потом приаттачила и нормально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2002, 00:04:50 |
|
||
|
Как я избавился от непомерного журнала транзакций
|
|||
|---|---|---|---|
|
#18+
Метод быстрого усечения журнала транзакций и перевода БД в offline http://www.sql.ru/articles/mssql/01062802ShrinkingTransactionLogSQLServer2K.shtml Причины заполнения журнала транзакций SQL серверов 4.2x, 6.0, 6.5, 7.0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2002, 10:52:52 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32037672&tid=1821669]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
57ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 243ms |
| total: | 389ms |

| 0 / 0 |
