홈페이지 » 어떻게 » 명령 줄에서 SQL Server 데이터베이스 백업 및 복원

    명령 줄에서 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'.