Как очистить журнал транзакций SQL Server?

В Python 3.x просто используйте get(attr_name) для вашего объекта тега, который вы используете с помощью find_all:

xmlData = None

with open('conf//test1.xml', 'r') as xmlFile:
    xmlData = xmlFile.read()

xmlDecoded = xmlData

xmlSoup = BeautifulSoup(xmlData, 'html.parser')

repElemList = xmlSoup.find_all('repeatingelement')

for repElem in repElemList:
    print("Processing repElem...")
    repElemID = repElem.get('id')
    repElemName = repElem.get('name')

    print("Attribute id = %s" % repElemID)
    print("Attribute name = %s" % repElemName)

в отношении файла XML conf//test1.xml, который выглядит так:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<root>
    <singleElement>
        <subElementX>XYZ</subElementX>
    </singleElement>
    <repeatingElement id="11" name="Joe"/>
    <repeatingElement id="12" name="Mary"/>
</root>

печатает:

Processing repElem...
Attribute id = 11
Attribute name = Joe
Processing repElem...
Attribute id = 12
Attribute name = Mary
540
задан Aaron Bertrand 17 August 2013 в 18:57
поделиться

9 ответов

К моему опыту в большинстве SQL Server нет никакого резервного копирования журнала транзакций. Полное резервное копирование или дифференциальное резервное копирование являются обычной практикой, но резервные копирования журнала транзакций действительно редко. Таким образом, файл журнала транзакций растет навсегда (пока диск не полон). В этом случае модель восстановления должна быть установлена на" простой ". Не забывайте изменять системные базы данных "модель" и "tempdb", также.

резервное копирование А базы данных "tempdb" не имеет никакого смысла, таким образом, модель восстановления этого дб должна всегда быть "простой".

4
ответ дан shmia 17 August 2013 в 18:57
поделиться

Для Усечения файла журнала:

  • Резервное копирование база данных
  • Отсоединение база данных, или при помощи Руководителя предприятия или путем выполнения: Sp_DetachDB [DBName]
  • Удаляют файл журнала транзакций. (или переименуйте файл, на всякий случай)
  • Повторное прикрепление база данных снова с помощью: Sp_AttachDB [DBName]
  • , Когда база данных присоединяется, новый файл журнала транзакций, создается.

Для Уменьшения файла журнала:

  • Журнал резервного копирования [DBName] с Уменьшением No_Log
  • база данных также:

    Используя Руководителя предприятия:-Щелчок правой кнопкой по базе данных, Всем задачам, базе данных Shrink, Файлам, Избранному файлу журнала, хорошо.

    Используя T-SQL:-Dbcc Shrinkfile ([Log_Logical_Name])

можно найти логическое имя файла журнала путем выполнения sp_helpdb или путем взгляда в свойствах базы данных в Руководителе предприятия.

4
ответ дан Leo Moore 17 August 2013 в 18:57
поделиться

Если Вы не используете журналы транзакций для восстановлений (т.е. Вы только когда-либо делаете полное резервное копирование), можно установить Режим Восстановления на "Простой", и журнал транзакций очень вскоре уменьшится и никогда не заполняться снова.

при использовании SQL 7 или 2000 можно включить "усеченную контрольную точку входа в систему" на вкладке параметров базы данных. Это имеет тот же эффект.

Это не рекомендуется в продуктивных средах, очевидно, так как Вы не будете в состоянии восстановить к моменту времени.

28
ответ дан Jonathan 17 August 2013 в 18:57
поделиться

Вот простое и очень неэлегантно & потенциально опасный путь.

  1. Резервный DB
  2. Отсоединения DB
  3. Переименовывает Файл журнала
  4. DB
  5. Присоединения, Новый файл журнала будет воссоздан
  6. , Удаляют Переименованный Файл журнала.

я предполагаю, что Вы не делаете резервных копий журнала. (Которые усекают журнал). Мой совет состоит в том, чтобы изменить модель восстановления от полный к простой . Это предотвратит чрезмерное увеличение размера журнала.

29
ответ дан Johnno Nolan 17 August 2013 в 18:57
поделиться

ПРАВОВАЯ ОГОВОРКА: чтение комментирует ниже тщательно, и я предполагаю, что Вы уже прочитали принятый ответ. Поскольку я сказал почти 5 лет назад:

, если у кого-либо есть какие-либо комментарии для добавления для ситуаций, когда это не верное или оптимальное решение тогда, прокомментируйте ниже

<час>
  • Щелчок правой кнопкой по имени базы данных.

  • Избранные Задачи в †’ Уменьшают в †’ База данных

  • Тогда щелчок хорошо !

я обычно открываю каталог Windows Explorer, содержащий файлы базы данных, таким образом, я могу сразу видеть эффект.

я был на самом деле вполне удивлен, что это работало! Обычно я использовал DBCC прежде, но я просто попробовал это, и он ничего не уменьшал, таким образом, я попробовал GUI (2005), и он работал отлично - освобождающий 17  ГБ за 10 секунд

В полном режиме восстановления, это не могло бы работать, таким образом, необходимо или создать резервную копию журнала сначала, или измениться на Простое восстановление, затем уменьшить файл. [спасибо @onupdatecascade для этого]

-

пз: Я ценю то, что некоторые прокомментировали относительно опасностей этого, но в моей среде у меня не было проблем, делающих это самого тем более, что я всегда делаю полное резервное копирование сначала. Поэтому учтите то, что Ваша среда, и как это влияет на Вашу стратегию резервного копирования и обеспеченность работой перед продолжением. Все, что я делал, указывало на людей на функцию, обеспеченную Microsoft!

183
ответ дан Peter Mortensen 17 August 2013 в 18:57
поделиться
  • 1
    Мне действительно нравится интерактивный и итерационный подход в этом ответе. – Clayton Stanley 4 May 2013 в 07:40

Эта техника, которую рекомендует John, не рекомендуется, поскольку нет никакой гарантии, что база данных присоединит без файла журнала. Измените базу данных от полного до простого, вызовите контрольную точку и ожидайте несколько минут. SQL Server очистит журнал, который можно затем уменьшить DBCC SHRINKFILE использования.

8
ответ дан mrdenny 18 August 2013 в 05:57
поделиться
  • 1
    Но но но, I' m использование Ajax jQuery. Даже устанавливая '$ .ajaxSetup ({кэш: ложь})'; doesn' t фиксируют его. – Synesso 8 May 2014 в 18:29

Сначала проверьте модель восстановления базы данных. По умолчанию SQL Server Express Edition создает базу данных для простого восстановления. модель (если я не ошибаюсь).

Backup log DatabaseName With Truncate_Only:

DBCC ShrinkFile(yourLogical_LogFileName, 50)

SP_helpfile предоставит вам имя файла логического журнала.

См.

Восстановление из полного журнала транзакций в SQL Server база данных

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

5
ответ дан 22 November 2019 в 22:16
поделиться

Пример:

DBCC SQLPERF(LOGSPACE)

BACKUP LOG Comapny WITH TRUNCATE_ONLY

DBCC SHRINKFILE (Company_log, 500)

DBCC SQLPERF(LOGSPACE)
0
ответ дан 22 November 2019 в 22:16
поделиться

Используйте команду DBCC ShrinkFile ({logicalLogName}, TRUNCATEONLY) . Если это тестовая база данных, и вы пытаетесь сэкономить / освободить место, это поможет.

Однако помните, что журналы передачи имеют своего рода минимальный / устойчивый размер, до которого они будут расти. В зависимости от вашей модели восстановления, возможно, вы не сможете сжать журнал - если он находится в режиме FULL и вы не создаете резервные копии журнала TX, журнал не может быть сжат - он будет расти вечно. Если вам не нужны резервные копии журналов передачи, переключите модель восстановления на Простая .

И помните, никогда и ни при каких обстоятельствах не удаляйте файл журнала (LDF)! У вас будет практически мгновенное повреждение базы данных. Приготовлено! Выполнено! Потерянные данные! Если оставить «без ремонта» основной файл MDF, он может навсегда испортиться.

Никогда не удаляйте журнал транзакций - вы потеряете данные! Часть ваших данных находится в журнале передачи (независимо от модели восстановления) ... если вы отсоедините и «переименуете» файл журнала передачи, который эффективно удалит часть вашей базы данных.

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

Прочтите сообщения в блоге Пола Рэндала по этой теме, плохой совет .

Также вообще не используйте сжатые файлы для файлов MDF, так как это может серьезно фрагментировать ваши данные. За дополнительной информацией обратитесь к его разделу «Плохие советы» («Почему не следует сжимать файлы данных»)

Посетите веб-сайт Пола - он отвечает именно на эти вопросы. В прошлом месяце он рассмотрел многие из этих проблем в своей серии Myth A Day .

5
ответ дан 22 November 2019 в 22:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: