Отключить журнал транзакций - PullRequest
65 голосов
/ 15 июня 2009

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

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

Ответы [ 5 ]

110 голосов
/ 15 июня 2009

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

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

ALTER DATABASE MyDB SET RECOVERY SIMPLE;
41 голосов
/ 15 июня 2009

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

При этом существует два режима работы для журнала транзакций:

  • Simple
  • Полное

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

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

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

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

40 голосов
/ 20 июня 2012

Существует третий режим восстановления, не упомянутый выше. Режим восстановления в конечном итоге определяет размер файлов LDF и частоту их записи. В случаях, когда вы собираетесь делать какие-либо массовые вставки, вы должны установить DB в «BULK / LOGGED». Это позволяет быстро перемещать объемные вставки и может быть заменено на лету.

Для этого

USE master ;
ALTER DATABASE model SET RECOVERY BULK_LOGGED ;

Чтобы вернуть его обратно:

USE master ;
ALTER DATABASE model SET RECOVERY FULL ;

В духе добавления к разговору о том, почему кто-то не хочет LDF, я добавляю следующее: Мы делаем многомерное моделирование. По сути, мы используем БД в качестве большого хранилища переменных, которые обрабатываются в массе с использованием внешних программ. Мы НИКОГДА не требуем откатов. Если бы мы могли повысить производительность за счет поворота ВСЕХ логов, мы бы взяли это на себя.

2 голосов
/ 15 июня 2009

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

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

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

0 голосов
/ 18 июля 2013

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

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

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

Как откатить запрос UPDATE в SQL Server 2005?

Чтение файла журнала (* .LDF) в SQL Server 2008

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...