Подтвердить что ты не робот

Журнал транзакций для базы данных "databasename" заполнен.

Журнал транзакций для базы данных '' заполнен. Чтобы узнать, почему пространство в журнале нельзя использовать повторно, см. Столбец log_reuse_wait_desc в sys.databases. Пожалуйста, помогите мне решить эту проблему. Спасибо заранее.

4b9b3361

Ответ 1

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

Щелкните правой кнопкой мыши вашу базу данных в диспетчере SQL Server и проверьте страницу "Параметры". Восстановить модель восстановления с Full до Simple, затем щелкните правой кнопкой мыши базу данных еще раз. Выберите Tasks Shrink, Files. Сократите файл журнала до нужного размера (я обычно придерживаюсь 20-25% от размера файлов данных).

Вернитесь на Full Recovery Model и сразу же получите полную резервную копию базы данных.

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

В случае, если бизнес может жить с определенным объемом потери данных, запланировать полное резервное копирование и перейти в режим Simple.

Ответ 2

Наиболее вероятным ответом является выполнение резервных копий журнала или существует открытая транзакция.

Вот еще немного, чтобы помочь вам...

Запустите этот script на своем сервере:

-- last FULL backup
;with FULLBUs 
as (
    select d.name, max(b.backup_finish_date) as 'Last FULL Backup'
    from sys.databases d
        join msdb.dbo.backupset b
            on d.name = b.database_name
    where b.type = 'D'
    group by d.name
),

-- last LOG backup for FULL and BULK_LOGGED databases
LOGBUs
as (
    select d.name, max(b.backup_finish_date) as 'Last LOG Backup'
    from sys.databases d
        join msdb.dbo.backupset b
            on d.name = b.database_name
    where d.recovery_model_desc <> 'SIMPLE'
        and b.type = 'L'
    group by d.name
)

-- general overview of databases, recovery model, and what is filling the log, last FULL, last LOG
select d.name, d.state_desc, d.recovery_model_desc, d.log_reuse_wait_desc, f.[Last FULL Backup], l.[Last LOG Backup]
from sys.databases d
    left outer join FULLBUs f
        on d.name = f.name
    left outer join LOGBUs l
        on d.name = l.name
where d.name not in ('model', 'TempDB')
order by d.name

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

Посмотрите на столбец с надписью log_reuse_wait_description. Скорее всего, он говорит BACKUP. Следующая наиболее вероятная причина - TRANSACTION.

Если это BACKUP, вот некоторая информация:

В основном, для ваших простых баз данных каждый день запускайте ПОЛНУЮ резервную копию. Для ваших FULL баз данных каждый день выполняйте полную резервную копию и резервную копию журнала. Отрегулируйте частоту ваших баз данных LOG, чтобы они соответствовали вашей способности потерять данные, сохраняя при этом вашу работу.

Самый простой способ управления резервными копиями - использовать скрипты обслуживания Ola Hallengren. Посетите его веб-сайт и попробуйте использовать их.

Если вы видите TRANSACTION, попробуйте запустить:

dbcc opentran

И отследите, кто имеет открытые транзакции.

Ответ 3

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

это предотвратит выполнение каких-либо действий в этой базе данных, таких как сжатие, и SQL Server Database Engine вызовет ошибку 9002.

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

Ответ 4

Щелкните правой кнопкой мыши по базе данных\Свойства\Файлы.

У вас будет таблица с файлами базы данных, среди которых файл журнала. Просто увеличьте начальный размер до разумной суммы.

Ответ 5

Сделайте это Щелкните правой кнопкой мыши базу данных node → Tasks- > Back Up- > General (в закладке) → установите "Тип резервного копирования" в "Журнал транзакций" → OK.