Linux에서 SQL Server 데이터베이스 백업 및 복원

적용 대상:SQL Server on Linux

리눅스에서 SQL Server 데이터베이스를 백업할 수 있는 방법은 여러 가지가 있습니다. 리눅스 서버에서는 SQL Server에 연결하고 데이터베이스를 백업할 수 sqlcmd 있습니다. Windows에서는 Linux에서 SQL Server on Linux에 연결해 사용자 인터페이스로 데이터베이스를 백업할 수 있습니다. 백업 기능은 플랫폼 간에 동일합니다. 예를 들어, 데이터베이스를 로컬, 원격 드라이브, SQL Server 백업 URL로 Azure Blob Storage에 백업할 수 있습니다.

Important

SQL Server on Linux는 블록 blob을 사용하는 Azure Blob Storage로만 백업을 지원합니다. 백업 및 복원을 위해 스토리지 키를 사용할 때는 페이지 블롭을 사용하는데, 이는 지원되지 않습니다. 대신 공유 접근 서명(SAS)을 사용하세요. 블록 Blob과 페이지 Blob의 비교에 대한 자세한 내용은 블록 Blob 대 페이지 Blob 백업을 참조하세요.

데이터베이스 백업

다음 예제 sqlcmd 에서는 로컬 SQL Server 인스턴스에 연결하고 라는 demodb사용자 데이터베이스의 전체 백업을 수행합니다.

sqlcmd -S localhost -U sa -Q "BACKUP DATABASE [demodb] TO DISK = N'/var/opt/mssql/data/demodb.bak' WITH NOFORMAT, NOINIT, NAME = 'demodb-full', SKIP, NOREWIND, NOUNLOAD, STATS = 10"

명령을 실행하면 SQL Server에서 암호를 입력하라는 메시지가 표시됩니다. 비밀번호를 입력하면 셸이 백업 진행 상황 결과를 반환합니다. 다음은 그 예입니다.

Password:
10 percent processed.
21 percent processed.
32 percent processed.
40 percent processed.
51 percent processed.
61 percent processed.
72 percent processed.
80 percent processed.
91 percent processed.
Processed 296 pages for database 'demodb', file 'demodb' on file 1.
100 percent processed.
Processed 2 pages for database 'demodb', file 'demodb_log' on file 1.
BACKUP DATABASE successfully processed 298 pages in 0.064 seconds (36.376 MB/sec).

트랜잭션 로그 백업

데이터베이스가 전체 복구 모델에 있다면, 더 세분화된 복원 옵션을 위해 트랜잭션 로그를 백업할 수도 있습니다. 다음 예제 sqlcmd 에서는 로컬 SQL Server 인스턴스에 연결하고 트랜잭션 로그 백업을 수행합니다.

sqlcmd -S localhost -U sa -Q "BACKUP LOG [demodb] TO DISK = N'/var/opt/mssql/data/demodb_LogBackup.bak' WITH NOFORMAT, NOINIT, NAME = N'demodb_LogBackup', NOSKIP, NOREWIND, NOUNLOAD, STATS = 5"

데이터베이스 복원

다음 예제 sqlcmd 에서는 SQL Server 로컬 인스턴스에 연결하고 demodb 데이터베이스를 복원합니다. NORECOVERY 이 옵션은 로그 파일 백업의 추가 복원을 허용합니다. 추가 로그 파일을 복원하지 않으려면 NORECOVERY 옵션을 제거합니다.

sqlcmd -S localhost -U sa -Q "RESTORE DATABASE [demodb] FROM DISK = N'/var/opt/mssql/data/demodb.bak' WITH FILE = 1, NOUNLOAD, REPLACE, NORECOVERY, STATS = 5"

Tip

만약 추가 로그 파일 백업이 없는데 실수로 사용 NORECOVERY 했다면, 추가 매개변수 없이 명령어 RESTORE DATABASE demodb 를 실행하세요. 이 명령어는 복원을 완료하고 데이터베이스가 정상적으로 유지됩니다.

트랜잭션 로그를 복원합니다.

다음 명령은 이전 트랜잭션 로그 백업을 복원합니다.

sqlcmd -S localhost -U sa -Q "RESTORE LOG demodb FROM DISK = N'/var/opt/mssql/data/demodb_LogBackup.bak'"

SSMS(SQL Server Management Studio)를 사용하여 백업 및 복원

Windows 컴퓨터에서 SQL Server Management Studio(SSMS)를 사용해 리눅스 데이터베이스에 연결하고 사용자 인터페이스를 통해 백업할 수 있습니다.

메모

최신 버전의 SSMS(SQL Server Management Studio)를 설치합니다. SSMS 사용 방법에 대한 자세한 내용은 Windows에서 SQL Server Management Studio를 사용하여 SQL Server on Linux 관리를 참조하세요.

다음 단계에서는 SSMS를 사용하여 백업을 수행하는 과정을 안내합니다.

  1. SSMS 시작 및 SQL Server on Linux 인스턴스에 연결

  2. 개체 탐색기에서 데이터베이스를 우클릭하고 작업(Tasks)을 선택한 다음 백업(Backup Up...)을 선택하세요.

  3. 백업 데이터베이스 대화상자에서 매개변수와 옵션을 확인한 후 확인(OK)을 선택하세요.

SQL Server가 데이터베이스 백업을 완료합니다.

SSMS(SQL Server Management Studio)를 사용하여 복원

다음 단계에서는 SSMS를 사용하여 데이터베이스를 복원하는 과정을 안내합니다.

  1. SSMS에서 데이터베이스를 우클릭하고 데이터베이스 복원을 선택하세요.

  2. 원본에서 디바이스:를 선택한 다음, 줄임표(...)를 선택합니다.

  3. 데이터베이스 백업 파일을 찾고 확인을 선택합니다.

  4. 복원 계획에서 백업 파일 및 설정을 확인합니다. 확인을 선택합니다.

  5. SQL Server가 데이터베이스를 복원합니다.

SQL 설명서 작성에 참여하세요.

SQL 콘텐츠를 직접 편집할 수 있다는 것을 알고 계셨나요? 그렇게 하면 설명서를 개선하는 데 도움이 될 뿐만 아니라 페이지의 기여자로도 인정받게 됩니다.

자세한 내용은 Microsoft Learn 편집 설명서를 참조하세요.