6.3.2. параметри резервного копіювання
Delphi site: daily Delphi-news, documentation, articles, review, interview, computer humor.
При проведенні резервного копіювання можна вказати безліч параметрів. Ці параметри наведені далі. Для кожного з них наведено назву на графічному інтерфейсі Management Studio та відповідний синтаксис команди backup. Вікно резервного копіювання в Management Studio можна відкрити у контекстному меню Tasks Backup для відповідної бази даних. Інший варіант – скористатися контекстним меню для контейнера Server Objects Backup Devices.
Параметри резервного копіювання такі:
□ Recovery model (Режим відновлення) – це довідкова інформація про поточний режим відновлення бази даних. Режим відновлення змінюється із властивостей бази даних;
BACKUP DATABASE db1 FILEGROUP = 'PRIMARY' TO DISK =
□ Backup set name (Ім'я резервної копії) – ім'я резервної копії (backup set – це набір носіїв, які належать до однієї резервної копії). У команді backup вказується параметр name. Отримати інформацію про ім'я резервної копії можна за допомогою кнопки Contents (Вміст) на тому ж екрані або за допомогою команди restore headeronly;
□ Description (Опис) – опис резервної копії. Вказується за допомогою параметра description. Переглянути можна так само, як ім'я резервної копії;
□ Backup set will expire (Резервна копія застаріє) - дозволяє вказати термін (дату), після якої резервна копія буде вважатися застарілою і автоматично перезаписуватиметься SQL Server. Значення 0 цього параметра означає, що копія ніколи не вважатиметься застарілою. У команді backup для вказівки терміну/дати старіння використовуються параметри retaindays (скільки часу зберігати) та expiredate (дата старіння).
Звичайно, за допомогою цього параметра ви визначаєте лише можливу поведінку SQL Server. Ви можете примусово перезаписати копію, яка не встигла застаріти, або не перезаписувати жодні копії (так поводиться SQL Server за замовчуванням);
□ Destination (Призначення) – місце призначення резервної копії у вигляді файлу на диску, триммера або логічного пристрою резервного копіювання (див. розділ 6.2.2). Можна вказати кілька призначень одночасно (але одного типу). У цьому випадку запис резервної копії буде здійснюватися паралельно в кілька файлів або на кілька стримерів для підвищення продуктивності. Звичайно, при відновленні даних вам знадобляться всі частини резервної копії, створеної таким чином. У команді backup для вказівки файлу на диску використовується ключове слово на диск; а для вказівки стримера - to tape.
Якщо ви використовуєте команду backup, а не графічний інтерфейс, то у вашому розпорядженні ще одна можливість: за допомогою ключового слова mirror to можна вказати файл, стример або логічний пристрій, на якому буде створюватись другий екземпляр вашої резервної копії (повністю ідентичний першому). Таке дзеркалювання під час створення резервних копій використовується, звісно, підвищення надійності резервного копіювання. Це нова можливість SQL Server 2005;
□ Overwrite media (Перезаписати носій) - параметри (на графічному екрані розташовані на вкладці Options), що дозволяють визначити режим перезапису носія (файла на диску або магнітної стрічки). У вашому розпорядженні такі варіанти:
• Append to the existing media set (Додати до наявного набору носія). Відповідає параметрам noformat (не перезаписувати заголовок носія) та noinit (не перезаписувати стару резервну)копію);
• Overwrite all existing backup sets (Перезаписати всі наявні носії). Відповідає параметрам noformat та init (заголовок носія збережеться, але всі старі резервні копії будуть перезаписані);
• Перевірити ім'я набору носіїв та старіння резервної копії. Відповідає параметрам noformat, init, noskip (перезапис буде здійснено лише в тому випадку, якщо ім'я резервної копії збігається з наявною на носії, але резервна копія застаріла);
При використанні команди backup у вас є ще одна можливість контролювати перезапис - визначення пароля резервної копії за допомогою параметра mediapassword. На відміну від більшості інших паролів, цей пароль не використовується для захисту даних. Дані не шифруються, а при відновленні резервної копії на інший сервер цей пароль взагалі не питатиметься. Єдине призначення такого пароля - захист від перезапису важливих резервних копій та помилкових відновлень. Перезаписати резервну копію, захищену паролем або використовувати її для відновлення на тому ж сервері, буде неможливо, поки ви не введете правильний пароль. На графічному інтерфейсі встановити пароль для резервної копії не можна;
Жодний параметр команди backup цьому параметру не відповідає. Натомість після закінчення резервного копіювання потрібно буде виконати команду RESTORE VERIFYONLY;
□ Perform checksum before writing to media (Виконувати перевірку контрольної суми перед записом на носій) - під час встановлення цього параметра SQL Server буде, по-перше, перевіряти контрольну суму (або контрольний біт) для кожної сторінки бази даних, а по-друге, записувати свої контрольні суми резервної копії. Цьому параметрувідповідає ключове слово checksum у команді backup. У попередніх версіях SQL Server такого параметра не було;
□ Back up the tail of the log and leave the database in the restoring state
□ Unload the tape after backup (Вивантажувати стрічку після резервного копіювання) – відповідає параметру unload команди backup. При використанні цього параметра після закінчення резервного копіювання картридж автоматично виймається зі стримера (дуже зручно як сигнал про закінчення). Цей параметр встановлюється за замовчуванням під час використання триммера. Заборонити автоматичне вилучення можна за допомогою параметра nounload;
□ Rewind the tape before unloading (Перемотати стрічку перед розвантаженням) – відповідає параметру rewind та встановлюється за замовчуванням. Перед видаленням картридж стримера буде перемотаний на початок. Заборонити перемотування можна за допомогою параметра norewind.
У SQL Server 2005 з'явилася нова команда, яка дозволяє просто перемотати стрічку в картриджі на початок, не виконуючи інших операцій: restore rewindonly.
Далі представлено ще кілька параметрів резервного копіювання, які можна використовувати у команді backup, але яким немає аналогів на графічному екрані:
□ blocksize - дозволяє вказати оптимальний розмір блоку для стримера. Параметр необов'язковий і впливає лише на продуктивність (у деяких ситуаціях);
□ stats - через скільки відсотків від загального обсягу резервного копіювання видаватимуться інформаційні повідомлення. За замовчуванням – через кожні 10%;
□ restart - у попередніх версіях SQL Server цей параметр дозволяв продовжити зупинену операцію резервного копіювання (наприклад, після вставки нового картриджа, коли на старому закінчилося місце). У SQL Server 2005цей параметр ігнорується;
У команді backup log є ще кілька важливих параметрів, яких немає на графічному екрані:
□ standby - використовується замість norecovery в тій же ситуації. Відрізняється тим, що база даних для користувачів буде відкрита тільки для читання, тобто в режимі standby;
□ no_log та truncate_only (ці ключові слова є синонімами) – використовуються для очищення журналу транзакцій без проведення резервного копіювання. Зазвичай використовуються тоді, коли місце в журналі транзакцій раптово закінчилося, і вам потрібно якнайшвидше забезпечити користувачам можливість нормальної роботи.
BACKUP DATABASE dbl TO DISK = 'D:\SQLBackups\BackupFile1.bak';
BACKUP DATABASE db1 TO DISK = 'D:\SQLBackups\BackupFile1.bak'
Команда на проведення резервного копіювання журналу транзакцій цієї бази даних у найпростішому варіанті може мати такий вигляд:
BACKUP LOG db1 TO DISK = 'D:\SQLBackups\BackupFile1.bak';
Поговоримо також про обмеження, що накладаються на бази даних під час виконання резервного копіювання. В цей час не можна:
□ створювати нові файли бази даних та видаляти старі;
□ Не можна зменшувати розмір існуючих файлів.