Резервное копирование и восстановление базы данных SQL Server из командной строки

Оглавление:

Резервное копирование и восстановление базы данных SQL Server из командной строки
Резервное копирование и восстановление базы данных SQL Server из командной строки

Видео: Резервное копирование и восстановление базы данных SQL Server из командной строки

Видео: Резервное копирование и восстановление базы данных SQL Server из командной строки
Видео: CS50 2014 - Week 1, continued - YouTube 2024, Апрель
Anonim

Самая важная часть плана обслуживания SQL Server - это резервное копирование баз данных. Чтобы создать резервную копию базы данных, вы не можете просто скопировать соответствующие файлы MDF и LDF базы данных, поскольку SQL Server блокирует их. Вместо этого вам нужно создать настоящий файл резервной копии через SQL Server.

Хотя это можно сделать, разработав План обслуживания внутри SQL Management Studio, бесплатные версии Express SQL Server не предлагают этот интерфейс. Чтобы обойти это, вы можете легко создавать резервные копии своих баз данных, выполнив приведенную ниже команду во время входа в систему в качестве администратора Windows:

SqlCmd -E -S Server_Name –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-адреса?», А быстрый ответ - нет. Причина в том, что служба Windows SQL Server работает как учетная запись пользователя, которая имеет доступ только к локальной машине. Вы можете изменить учетную запись, на которую работает служба, но это сильно обескураживает по соображениям безопасности.

Восстановление резервной копии базы данных из командной строки

Чтобы восстановить базу данных из файла резервной копии, просто используйте команду:

SqlCmd -E -S Server_Name –Q “RESTORE DATABASE [Name_of_Database] FROM DISK=’X:PathToBackupFile[File_Name].bak'”

Например:

SqlCmd -E -S MyServer –Q “RESTORE DATABASE [MyDB] FROM 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».

Рекомендуемые: