Отключить Журнал Транзакций



Oracle имеет команды SQL, которые можно выполнить, чтобы транзакция не регистрировалась. Есть ли что-то подобное для SQL Server 2008?



мой сценарий: нам нужны журналы Tx на серверах (Dev, QA, Prod), но, возможно, мы можем обойтись без них на машинах разработчиков.

692   5  

5 ответов:

вы не можете обойтись без журналов транзакций в SQL Server, ни при каких обстоятельствах. Двигатель просто не будет работать.

вы можете настроить свою модель восстановления на SIMPLE на своих машинах dev - это предотвратит раздувание журнала транзакций, когда резервные копии журнала tran не будут сделаны.

ALTER DATABASE MyDB SET RECOVERY SIMPLE;

для работы SQL Server требуется журнал транзакций.

сказал, что есть два режима работы для журнала транзакций:

  • простой
  • полное

на полное режим журнал транзакций продолжает расти, пока вы не создадите резервную копию базы данных. В простой режим: пространство в журнале транзакций "перерабатывается" каждый КПП.

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

журнал транзакций продолжает расти весь день, и вы продолжаете поддерживать только его. В ту ночь вы делаете полную резервную копию, а затем SQL Server усекает журнал транзакций, начинает повторно использовать пространство, выделенное в файл журнала транзакций.

Если вы только когда-нибудь сделать полное резервное копирование базы данных, вы не хотите полный режим восстановления.

существует третий режим восстановления, не упомянутый выше. Режим восстановления в конечном итоге определяет, насколько большими становятся файлы LDF и как они записываются. В тех случаях, когда вы собираетесь делать какие-либо массовые вставки, вы должны установить БД в "BULK/LOGGED". Это делает Навальные вставки двинуть быстро вперед и может быть изменено на лету.

для этого

USE master ;
ALTER DATABASE model SET RECOVERY BULK_LOGGED ;

изменить его обратно:

USE master ;
ALTER DATABASE model SET RECOVERY FULL ;

в духе добавления к разговор о том, почему кто-то не хочет LDF, я добавляю это: мы делаем многомерное моделирование. По сути, мы используем БД как большое хранилище переменных, которые обрабатываются навалом с помощью внешних программ. Мы никогда не требуем откатов. Если бы мы могли повысить производительность, включив все журналы, мы бы приняли это в сердцебиении.

в чем ваша проблема с журналами Tx? Они растут? Затем просто установите параметр усечь на контрольной точке.

из документации Microsoft:

в SQL Server 2000 или в SQL Server 2005," простая " модель восстановления эквивалентно "усечь вход в систему КПП" в более ранних версиях SQL Сервер. Если журнал транзакций усекается каждый раз, когда контрольная точка выполняется на сервере, это предотвращает с помощью журнала для базы данных восстановление. Вы можете используйте только полный резервные копии базы данных для восстановления данных. Резервные копии журнала транзакций отключается при" простом " восстановлении используется модель.

Если это только для машин dev, чтобы сэкономить место, то просто перейдите в простой режим восстановления, и вы будете делать все в порядке.

на производственных машинах, хотя я настоятельно рекомендую вам сохранить базы данных в режиме полного восстановления. Это гарантирует, что вы можете сделать момент восстановления времени, если это необходимо.

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

как я могу откатить запрос на обновление в SQL server 2005?

читать лог-файл (*.LDF) в sql server 2008

Если пространство является проблемой на производственных машинах, то просто создайте частые резервные копии журнала транзакций.

Comments

    Ничего не найдено.