명령 줄에서 SQL Server 데이터베이스 백업 및 복원
SQL Server 유지 관리 계획의 가장 중요한 부분은 데이터베이스를 정기적으로 백업하는 것입니다. 데이터베이스를 백업하려면 SQL Server가 이러한 데이터베이스를 잠그기 때문에 데이터베이스의 해당 MDF 및 LDF 파일을 단순히 복사 할 수 없습니다. 대신 SQL Server를 통해 진정한 백업 파일을 만들어야합니다..
SQL Management Studio에서 유지 관리 계획을 개발하면이 작업을 수행 할 수 있지만 SQL Server의 무료 Express Edition에서는이 인터페이스를 제공하지 않습니다. 이 문제를 해결하려면 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 "백업 데이터베이스 [MyDB] TO 디스크 ="D : BackupsMyDB.bak ""
명명 된 SQL Server 인스턴스 :
SqlCmd -E -S MyServerMyInstance -Q "백업 데이터베이스 [MyDB] TO DISK ="D : BackupsMyDB.bak ""
위의 내용은 재해 복구에 사용할 수있는 "D : BackupsMyDB.bak"파일에 "MyDB"의 완전히 복원 가능한 백업 복사본을 만듭니다. 물론 백업 위치와 파일을 원하는대로 변경할 수 있지만 로컬 시스템에있는 폴더 위치를 지정해야합니다. 그런 다음이 백업 파일을 테이프 드라이브 또는 다른 외부 백업 위치에 복사 할 수 있습니다.
일반적인 질문은 "백업 파일을 매핑 된 드라이브 또는 UNC 위치에 만들 수 있습니까?"이며 빠른 대답은 아니오입니다. 이유는 SQL Server Windows 서비스가 로컬 컴퓨터에만 액세스 할 수있는 사용자 계정으로 실행되기 때문입니다. 서비스가 실행되는 계정을 변경할 수는 있지만 보안상의 이유로 인해 크게 권장되지 않습니다..
명령 줄에서 데이터베이스 백업 복원
백업 파일에서 데이터베이스를 복원하려면 다음 명령을 사용하십시오.
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 ""
위의 명령은 "D : BackupsMyDB.bak"백업 파일에 저장된 데이터에서 "MyDB"의 백업을 복원합니다. 백업 파일이 생성 된 이후 MyDB에 대한 모든 변경 사항이 손실됩니다..
위의 명령을 사용할 때 기억해야 할 중요한 점은 각각의 백업 파일이 작성된 동일한 SQL Server에서 사용해야한다는 것입니다. SQL 백업 파일은 백업 파일의 데이터 파일이 복사되는 위치와 방법을 제어하는 '배경 정보'정보를 저장합니다. 다른 SQL Server에서 백업을 복원하는 경우 백업 파일의 경로 위치가 복원 할 서버와 일치하지 않을 수 있으며 오류가 발생합니다. 이 방법을 사용할 수는 있지만 SQL Management Studio 도구를 사용하여 다른 SQL Server에서 작성된 백업을 복원하는 것이 훨씬 쉽습니다..
참고 : 위의 명령은 SQL 2005 이상 (모든 버전)에서 작동합니다. SQL 2000 이전의 경우 'SqlCmd'를 'oSql'.