У мене тривалий процес, який відкриває транзакцію на повну тривалість.
Я не маю контролю над тим, як це виконується.
Оскільки транзакція залишається відкритою протягом усієї тривалості, коли журнал транзакцій заповнюється, SQL Server не може збільшити розмір файлу журналу.
Тож процес виходить з ладу з помилкою "The transaction log for database 'xxx' is full"
.
Я намагався запобігти цьому, збільшивши розмір файлу журналу транзакцій у властивостях бази даних, але я отримую ту ж помилку.
Не впевнений, що мені слід спробувати далі. Процес триває декілька годин, тому відтворити пробні та помилкові непросто.
Якісь ідеї?
Якщо когось цікавить, процес - імпорт організації Microsoft Dynamics CRM 4.0.
Дискового простору є багато, у нас є журнал у простому режимі ведення журналу, і ми створили резервну копію журналу перед початком процесу.
- = - = - = - = - ОНОВЛЕННЯ - = - = - = - = -
Дякую всім за коментарі поки що. Далі, що змусило мене повірити, що журнал не зростатиме через відкриту транзакцію:
Я отримую таку помилку ...
Import Organization (Name=xxx, Id=560d04e7-98ed-e211-9759-0050569d6d39) failed with Exception:
System.Data.SqlClient.SqlException: The transaction log for database 'xxx' is full. To find out why space in the log cannot be reused, see the log_reuse_wait_desc column in sys.databases
Тож, слідуючи цій раді, я перейшов до " log_reuse_wait_desc column in sys.databases
", і це значення було " ACTIVE_TRANSACTION
".
За даними Microsoft: http://msdn.microsoft.com/en-us/library/ms345414(v=sql.105).aspx
Це означає наступне:
Активація транзакції (всі моделі відновлення). • На початку резервного копіювання журналу може існувати тривала транзакція. У цьому випадку для звільнення місця може знадобитися ще одна резервна копія журналу. Для отримання додаткової інформації див. "Довготривалі активні трансакції" пізніше в цій темі.
• транзакцію відкладено (лише для SQL Server 2005 Enterprise Edition та новіших версій). Відкладена транзакція - це фактично активна транзакція, відкат якої блокується через деякий недоступний ресурс. Інформацію про причини відкладених транзакцій та про те, як вивести їх із відкладеного стану див. У розділі Відкладені транзакції.
Я щось неправильно зрозумів?
- = - = - = - ОНОВЛЕННЯ 2 - = - = - = -
Просто розпочали процес із початковим розміром файлу журналу, встановленим на 30 Гб. На це піде кілька годин.
- = - = - = - Остаточне ОНОВЛЕННЯ - = - = - = -
Проблема була насправді викликана тим, що файл журналу поглинав увесь доступний дисковий простір. В останній спробі я випустив 120 Гб, і він все-таки використав усе, і в кінцевому рахунку зазнав невдачі.
Я не усвідомлював, що це відбувається раніше, тому що, коли процес працював протягом ночі, він відкидався на провал. Цього разу мені вдалося перевірити розмір файлу журналу перед відкатом.
Дякую всім за ваш внесок.