Найкращий спосіб резервного копіювання та скорочення журналів транзакцій за графіком


9

Я не DBA, але, будучи такими, якими вони є, я повинен носити шапку DBA і створювати плани обслуговування для мого екземпляра SQL Server.

Тому деякий час у мене в режимі SSIS протягом ночі виконується завдання Execute SQL для виконання резервних копій - в основному працює master.dbo.xp_create_subdirдля забезпечення існування папок призначення, а потім BACKUP DATABASE [DbName] TO DISK = 'G:\Backups\DbName\DbName.bak' WITH INIT.

Кожного разу, коли це завдання не вдалося, решта процесу припиниться, і я отримаю сповіщення, а наступного ранку приїду, щоб помітити, що накопичувач журналів транзакцій заповнився на потужність, і тому я вручну обрізав би їх і рухався далі. .. поки історія не повторилася і журнали транзакцій знову переросли наявний простір на диску.

Сценарій "ручного скорочення" виглядає так:

use Staging;
alter database Staging set recovery simple
alter database Staging set recovery full
dbcc shrinkfile ('Staging_log', 0, truncateonly);
go

Так що я втомилася від цього, і я вирішив спробувати і зробити речі правильно замість цього, і виконуйте вказівки , наведеним тут і створити реальний план обслуговування :

План обслуговування SQL Server

Справа в тому, що я ніколи цього не робив, тому у мене є кілька питань:

  • Чи створить резервне копіювання таких журналів транзакцій автоматично усічення, або мені потрібно щось ще зробити?
  • Чи добре одночасно запускати резервні копії даних та журналів транзакцій? Якщо ні, то який правильний спосіб зробити це?
  • Файли резервного копіювання збираються протягом ночі іншим процесом, який захоплює всі файли на сервері та зберігає їх в іншому місці - чи було б гарною ідеєю закінчити набір резервних копій через 2 дні? Чи потрібно, щоб вони взагалі закінчились?
  • Завдання очищення відповідно видаляють "старі" файли .bak і .trn під папками G:\Backups. Чи має це сенс?
  • Було б краще зробити це в SSIS, тому я можу зірвати свій ETL, якщо / коли резервні копії не вдаються? Або мій процес ETL навіть турбує?

Вибачте, якщо це занадто багато питань для однієї публікації, якщо потрібно, я відредагую і поставлю натомість кілька запитань - я думаю, що вони всі тісно пов'язані.


3
Чи можете ви пояснити, що ви маєте на увазі під "усікати"? Ви маєте на увазі, що очікуєте, що резервна копія журналу зменшить файл журналу? З якою метою? Так воно може знову рости?
Аарон Бертран

3
Також я пропоную вам прочитати це питання та відповіді на нього, перш ніж продовжувати: dba.stackexchange.com/q/29829/1186
Аарон Бертран

3
Якщо вам потрібно лише щоденне відновлення, тоді дотримуйтесь простого режиму. (Чому ви перейдете на простий, а потім на повний? Що, на вашу думку, це досягається?) Але якщо вдень все читається, ваш журнал не повинен змінюватися протягом дня. У будь-якому випадку, ні, резервне копіювання журналу ніколи не зменшить файл журналу.
Аарон Бертран

3
Якщо ви перебуваєте 6 місяців у повному режимі відновлення, не беручи жодної резервної копії журналу, так, ваші файли журналів будуть рости. Однак якщо, як ви кажете, ваша робота лише з читанням протягом дня, використання режиму повного відновлення є марною, просто зробіть це просто. Тоді файл журналу взагалі взагалі не зростатиме (оскільки в простому режимі відновлення простір для всіх, крім активних транзакцій, можна повторно використовувати). DBA, які знають, що вони роблять, зазвичай використовують режим повного відновлення (щоб вони могли відновитись до певного часу), розмір файлів журналів належним чином та виконувати резервне копіювання журналів досить часто, щоб файли журналів не зростали.
Аарон Бертран

3
Оскільки ви говорите, що вам не потрібно точне відновлення, я не впевнений, чому ви навіть вважаєте повну модель відновлення варіантом.,
Аарон Бертран

Відповіді:


7

Лише протягом ночі SSIS пише записи, вдень все читається - мені потрібно лише щоденне відновлення.

Ви повинні вибрати модель відновлення, виходячи з потреб вашого бізнесу:

  • Скільки даних може втратити і одночасно вижити?

Виходячи з вищенаведеної відповіді, слід ретельно вибрати модель відновлення бази даних .

Простіше кажучи (не обговорюючи модель відновлення з масовою реєстрацією) ,

  • Повна модель відновлення дозволяє створювати резервні копії журналу, що дозволяє здійснювати точне час відновлення.
    • Урізання журналу може статися, коли ви берете резервні копії журналу транзакцій, тобто простір файлів журналу буде повторно використаний після кожної резервної копії журналу та звичайного розширення!
  • Проста модель відновлення дозволяє лише робити ПОЛІ резервні копії. Точне відновлення неможливо.
    • Урізання журналу може відбуватися лише тоді, коли відбувається контрольна точка (вручну або автоматично), тобто, якщо ви робите регулярні повні резервні копії, вам не доведеться турбуватися про журнал транзакцій, оскільки CHECKPOINT піклується про повторне використання неактивної частини файлу журналу.

Пам'ятайте, що усічення журналу НЕ фізичне зменшення розміру файлу журналу транзакцій. Це означає, що неактивна частина файлу журналу транзакцій позначена як багаторазова .

Отже, вам слід правильно натиснути на файл журналу транзакцій (та файли даних). Зростання файлу журналу призведе до подій автоматичного зростання (якщо ваша база даних встановлена ​​для автоматичного зростання як остання можливість). Перевірте мою відповідь - Авторостання - Процентне використання?


Я б настійно пропонував би вам скласти плани технічного обслуговування та виконувати [розумне рішення з технічного обслуговування - це легко, гнучко та слідкує за найкращими методами] - 5 . - Резервне копіювання рішення Olaрішення щодо технічного обслуговування Index ).


дозволяє вирішити ваші запитання:

Чи створить резервне копіювання таких журналів транзакцій автоматично усічення, або мені потрібно щось ще зробити?

Будь ласка, не додайте резервні копії та не встановлюйте їх термін дії. Вони створюють великий безлад. Використовуйте INITта приймайте окремі резервні копії журналу з печаткою дати. Легкий в обслуговуванні. Використовуйте для цього резервне рішення Ola. Рішення є гнучким і для видалення старих резервних копій.

Чи добре одночасно запускати резервні копії даних та журналів транзакцій? Якщо ні, то який правильний спосіб зробити це?

Повна резервна копія не впливає на резервну копію T-журналу. Повна резервна копія містить лише достатній журнал транзакцій, необхідний для того, щоб у разі відновлення база даних могла бути транзакційно узгоджена з часом, за який завершилася частина зчитування даних повної резервної копії. Перевірте - скільки журналів транзакцій включає повна резервна копія?

Крім того, резервне копіювання журналу під час повної резервної копії не уріже журнал транзакцій. Резервне копіювання журналу (пара) після завершення повної резервної копії журналу буде усічене.

Файли резервного копіювання збираються протягом ночі іншим процесом, який захоплює всі файли на сервері та зберігає їх в іншому місці - чи було б гарною ідеєю закінчити набір резервних копій через 2 дні? Чи потрібно, щоб вони взагалі закінчились?

Завдання очищення відповідно видаліть "старі" файли .bak та .trn під папками G: \ Резервні копії. Чи має це сенс? Було б краще зробити це в SSIS, тому я можу зірвати свій ETL, якщо / коли резервні копії не вдаються? Або мій процес ETL навіть турбує?

Для обох вище, використовуйте рішення щодо обслуговування резервного копіювання Ola. Він подбає про видалення старих файлів.


Дивовижно. Тому я змінив модель відновлення на "Простий" для всіх моїх баз даних і запустив сценарій Оли. Здається, все, що мені потрібно зараз зробити, - це насправді запланувати робочі місця?
Матьє Гіндон

Так, будь ласка. Крім того, не забудьте позначити як відповідь / оновлення, якщо відповідь є рішенням або корисним - таким чином він не буде прапор не відповідати.
Кін Шах
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.