Linux 백업 및 복원을 사용 하 여 Windows에서 SQL Server 데이터베이스 마이그레이션Migrate a SQL Server database from Windows to Linux using backup and restore

SQL Server의 백업 및 복원 기능은 Linux에서 SQL Server 2017 r c 2로 Windows에서 SQL Server에서 데이터베이스를 마이그레이션하는 것이 좋습니다.SQL Server's backup and restore feature is the recommended way to migrate a database from SQL Server on Windows to SQL Server 2017 RC2 on Linux. 이 항목에서는이 기법에 대 한 단계별 지침을 제공 합니다.This topic provides step-by-step instructions for this technique. 이 자습서에서는 다음을 수행합니다.In this tutorial, you will:

  • Windows 컴퓨터에 AdventureWorks 백업 파일을 다운로드 합니다.Download the AdventureWorks backup file on a Windows machine
  • Linux 컴퓨터를 백업 전송Transfer the backup to your Linux machine
  • TRANSACT-SQL 명령을 사용 하 여 데이터베이스 복원Restore the database using Transact-SQL commands
참고

이 자습서를 설치 하는 것으로 가정 SQL Server 2017 RC2SQL Server 도구 대상 Linux 서버에 있습니다.This tutorial assumes that you have installed SQL Server 2017 RC2 and the SQL Server Tools on your target Linux server.

AdventureWorks 데이터베이스 백업 다운로드Download the AdventureWorks database backup

모든 데이터베이스를 복원 하려면 동일한 단계를 사용 하 여 있지만 AdventureWorks 예제 데이터베이스는 좋은 예를 제공 합니다.Although you can use the same steps to restore any database, the AdventureWorks sample database provides a good example. 기존 데이터베이스 백업 파일을 제공 합니다.It comes as an existing database backup file.

참고

Linux에서 SQL Server로 데이터베이스를 복원 하려면 원본 백업은 SQL Server 2014 또는 SQL Server 2016에서 수행 해야 합니다.To restore a database to SQL Server on Linux, the source backup must be taken from SQL Server 2014 or SQL Server 2016. SQL Server 빌드 번호는 백업 해야 복원 SQL Server 빌드 번호 보다 클 수 없습니다.The backup SQL Server build number must not be greater than the restore SQL Server build number.

  1. Windows 컴퓨터에서로 이동 https://msftdbprodsamples.codeplex.com/downloads/get/880661 다운로드 하 고는 Adventure Works 2014 전체 데이터베이스 Backup.zip합니다.On your Windows machine, go to https://msftdbprodsamples.codeplex.com/downloads/get/880661 and download the Adventure Works 2014 Full Database Backup.zip.

    이 자습서에서 백업 및 복원 Windows와 Linux 사이의 설명 하지만 직접 Linux 컴퓨터에 AdventureWorks 예제를 다운로드 하려면 Linux에서 브라우저를도 사용할 수 있습니다.Although this tutorial demonstrates backup and restore between Windows and Linux, you could also use a browser on Linux to directly download the AdventureWorks sample to your Linux machine.

  2. Zip 파일을 열고 컴퓨터에 AdventureWorks2014.bak 파일 폴더에 추출 합니다.Open the zip file, and extract the AdventureWorks2014.bak file to a folder on your machine.

Linux 백업 파일 전송Transfer the backup file to Linux

데이터베이스를 복원 하려면 먼저를 전송 해야 백업 파일에서 Windows 컴퓨터 대상 Linux 컴퓨터입니다.To restore the database, you must first transfer the backup file from the Windows machine to the target Linux machine.

  1. Windows, Bash 셸의 설치 합니다.For Windows, install a Bash shell. 다음과 같은 여러 옵션이 있습니다.There are several options, including the following:

  2. Bash 셸의 (터미널)을 열고 포함 된 디렉터리를 이동 AdventureWorks2014.bak합니다.Open a Bash shell (terminal) and navigate to the directory containing AdventureWorks2014.bak.

  3. 사용 하 여는 scp (안전한 복사) 명령 대상 Linux 컴퓨터에 파일을 전송 합니다.Use the scp (secure copy) command to transfer the file to the target Linux machine. 다음 예제에서는 전송을 AdventureWorks2014.bak 의 홈 디렉터리로 user1 라는 서버에 linuxserver1합니다.The following example transfers AdventureWorks2014.bak to the home directory of user1 on the server named linuxserver1.

    sudo scp AdventureWorks2014.bak user1@linuxserver1:./
    

    이전 예에서 대신 서버 이름 대신 IP 주소를 제공할 수 있습니다.In the previous example, you could instead provide the IP address in place of the server name.

Scp를 사용 하 여 여러 가지 대안이 있습니다.There are several alternatives to using scp. 하나를 사용 하는 것 Samba 창과 Linux 사이의 SMB 네트워크 공유를 설정 합니다.One is to use Samba to setup an SMB network share between Windows and Linux. Ubuntu 연습을 참조 하십시오. 는 네트워크 공유를 통해 Samba를 만드는 방법을합니다.For a walkthrough on Ubuntu, see How to Create a Network Share Via Samba. 설정 되 고 나면 네트워크 파일에으로 액세스할 수 있습니다 windows에서 같은 공유 \ \machinenameorip\공유합니다.Once established, you can access it as a network file share from Windows, such as \\machinenameorip\share.

백업 파일 이동Move the backup file

이 시점에서 백업 파일에 있는 경우 Linux 서버At this point, the backup file is on your Linux server. 하위 디렉터리에 백업 배치 해야 하는 SQL Server로 데이터베이스를 복원 하기 전에 /var/opt/mssql합니다.Before restoring the database to SQL Server, you must place the backup in a subdirectory of /var/opt/mssql.

  1. 백업이 포함 된 대상 Linux 컴퓨터에서 터미널을 엽니다.Open a Terminal on the target Linux machine that contains the backup.

  2. 슈퍼 사용자 모드를 입력 합니다.Enter super user mode.

    sudo su
    
  3. 새 백업 디렉터리를 만듭니다.Create a new backup directory. 디렉터리가 이미 있는 경우-p 매개 변수는 아무 작업도 수행 합니다.The -p parameter does nothing if the directory already exists.

    mkdir -p /var/opt/mssql/backup
    
  4. 해당 디렉터리에 백업 파일을 이동 합니다.Move the backup file to that directory. 다음 예제에서는 백업 파일의 홈 디렉터리에 있는 user1합니다.In the following example, the backup file resides in the home directory of user1. 위치와 일치 하도록 명령을 변경 AdventureWorks2014.bak 컴퓨터에 있습니다.Change the command to match the location of AdventureWorks2014.bak on your machine.

    mv /home/user1/AdventureWorks2014.bak /var/opt/mssql/backup/
    
  5. 슈퍼 사용자 모드를 종료 합니다.Exit super user mode.

    exit
    

데이터베이스 백업 복원Restore the database backup

백업, 복원 하려면 복원 데이터베이스 TRANSACT-SQL (TQL) 명령을 사용할 수 있습니다.To restore the backup, you can use the RESTORE DATABASE Transact-SQL (TQL) command.

참고

다음 단계는 sqlcmd 도구를 사용 합니다.The following steps use the sqlcmd tool. 설치 하지 않은 경우 SQL Server 도구 참조 Linux에서 SQL Server 설치합니다.If you haven’t install SQL Server Tools, see Install SQL Server on Linux.

  1. 동일한 터미널 시작 sqlcmd합니다.In the same terminal, launch sqlcmd. 다음 예제에서는 연결을 사용 하 여 로컬 SQL Server 인스턴스는 SA 사용자입니다.The following example connects to the local SQL Server instance with the SA user. -P 매개 변수와 함께 암호를 지정 하거나 메시지가 표시 되 면 암호를 입력 합니다.Enter the password when prompted or specify the password with the -P parameter.

    sqlcmd -S localhost -U SA
    
  2. 에 연결한 후 다음과 같이 입력 데이터베이스 복원 명령에서 각 줄 뒤 ENTER 키를 누릅니다.After connecting, enter the following RESTORE DATABSE command, pressing ENTER after each line. 복원 아래 예제에서는 AdventureWorks2014.bak 에서 파일의 /var/opt/mssql/backup 디렉터리입니다.The example below restores the AdventureWorks2014.bak file from the /var/opt/mssql/backup directory.

    RESTORE DATABASE AdventureWorks
    FROM DISK = '/var/opt/mssql/backup/AdventureWorks2014.bak'
    WITH MOVE 'AdventureWorks2014_Data' TO '/var/opt/mssql/data/AdventureWorks2014_Data.mdf',
    MOVE 'AdventureWorks2014_Log' TO '/var/opt/mssql/data/AdventureWorks2014_Log.ldf'
    GO
    

    데이터베이스를 성공적으로 복원 하는 메시지가 나타납니다.You should get a message the database is successfully restored.

  3. AdventureWorks 데이터베이스에 첫 번째 컨텍스트를 변경 하 여 복원을 확인 합니다.Verify the restoration by first changing the context to the AdventureWorks database.

    USE AdventureWorks
    GO
    
  4. 상위 10 개의 제품을 나열 하는 다음 쿼리를 실행 하는 Production.Products 테이블입니다.Run the following query that lists the top 10 products in the Production.Products table.

    SELECT TOP 10 Name, ProductNumber FROM Production.Product ORDER BY Name
    GO
    

Production.Products 쿼리의 출력

다음 단계Next steps

다른 데이터베이스 및 데이터 마이그레이션 방법에 대 한 자세한 내용은 참조 하십시오. Linux에서 SQL Server로 데이터베이스 마이그레이션합니다.For more information on other database and data migration techniques, see Migrate databases to SQL Server on Linux.