Резервне копіювання та відновлення бази даних SQL Server з командного рядка
Найважливішою частиною плану технічного обслуговування SQL Server є регулярне резервування баз даних. Щоб створити резервну копію бази даних, ви не можете просто скопіювати відповідні файли MDF і LDF бази даних, оскільки SQL Server має блокування цих файлів. Замість цього потрібно створити справжній файл резервної копії через SQL Server.
Хоча це може бути зроблено шляхом розробки Плану технічного обслуговування всередині SQL Management Studio, безкоштовні Express-випуски SQL Server не пропонують цього інтерфейсу. Щоб уникнути цього, ви можете легко створити резервну копію баз даних, виконавши команду нижче під час входу в систему як адміністратор Windows:
SqlCmd -E -S Ім'я_сервера -Q “BACKUP DATABASE [Name_of_Database] TO DISK =" X: PathToBackupLocation [Name_of_Database] .bak ""
Наведені нижче приклади допоможуть.
Екземпляр SQL Server за замовчуванням:
SqlCmd -E -S MyServer -Q “BACKUP DATABASE [MyDB] TO DISK =" D: BackupsMyDB.bak ""
Названий екземпляр SQL Server:
SqlCmd -E -S MyServerMyInstance -Q “BACKUP DATABASE [MyDB] TO DISK =" D: BackupsMyDB.bak ""
Вищезазначене створює повністю відновлювану резервну копію “MyDB” у файл “D: BackupsMyDB.bak”, який можна використовувати для відновлення після аварії. Звичайно, ви можете змінити розташування резервної копії та файл на те, що вам потрібно, але переконайтеся, що ви вказали розташування папки, яке існує на локальному комп'ютері. Цей файл резервної копії може бути скопійовано на стрічковий накопичувач або на інше зовнішнє резервне місце.
Найпоширенішим питанням є "Чи можна створити резервну копію на зіставленому диску або місці UNC?", А швидка відповідь - ні. Причина полягає в тому, що служба SQL Server Windows працює як обліковий запис користувача, який має тільки доступ до локальної машини. Ви можете змінити обліковий запис, з яким працює послуга, але з міркувань безпеки це не рекомендується.
Відновлення резервної копії бази даних з командного рядка
Щоб відновити базу даних з файлу резервної копії, просто скористайтеся командою:
SqlCmd -E -S Server_Name -Q “RESTORE DATABASE [Ім'я_бази даних] FROM DISK =" X: PathToBackupFile [File_Name] .bak ""
Наприклад:
SqlCmd -E -S MyServer -Q “ВІДНОВЛЕННЯ БАЗИ ДАНИХ [MyDB] ВІД DISK =" D: BackupsMyDB.bak ""
Наведена вище команда відновить резервну копію “MyDB” з даних, що зберігаються в резервному файлі “D: BackupsMyDB.bak”. Будь-які зміни, внесені в MyDB після створення резервної копії, будуть втрачені.
Важливо пам'ятати при використанні вищезазначеної команди те, що вона призначена для використання на тому самому SQL Server, на якому був створений відповідний файл резервної копії. Файли резервного копіювання SQL зберігають інформацію «за кадром», яка контролює, де і як файли даних у файлі резервної копії копіюються. Якщо ви відновлюєте резервну копію з іншого SQL Server, розташування шляхів у файлі резервної копії може не збігатися з сервером, на який ви відновилися, і виникне помилка. Хоча це може бути оброблено, набагато простіше відновити резервні копії, створені на іншому SQL Server, за допомогою інструменту SQL Management Studio.
Примітка: команди вище будуть працювати на SQL 2005 і вище (будь-яке видання). Для SQL 2000 і раніше, замінити 'SqlCmd' на 'oSql'.