Windows에서 Linux로 SQL 데이터베이스 이전


이 튜토리얼에서는 SQL Server 데이터베이스를 Windows Server에서 Linux Server로 마이그레이션하는 두 가지 접근 방식을 안내합니다.

이 페이지에서는 다음 방법을 설명합니다.

이상적인 마이그레이션 방법은 특정 데이터베이스의 허용 가능한 다운타임과 크기에 따라 달라집니다. 가장 자주 사용되는 기법은 백업 및 복원 방법입니다.

비용

이 문서에서는 비용이 청구될 수 있는 다음과 같은 Google Cloud구성요소를 사용합니다.

프로젝트 사용량을 기준으로 예상 비용을 산출하려면 가격 계산기를 사용합니다. 신규 Google Cloud 사용자는 무료 체험판을 이용할 수 있습니다.

이 문서에 설명된 태스크를 완료했으면 만든 리소스를 삭제하여 청구가 계속되는 것을 방지할 수 있습니다. 자세한 내용은 삭제를 참조하세요.

시작하기 전에

다음 항목이 준비되었는지 확인하세요.

  • Active Directory 도메인 컨트롤러에 연결된 Google Cloud 프로젝트 및 가상 프라이빗 클라우드 (VPC)가 있습니다.
  • Windows Server 장애 조치 클러스터 (WSFC) 가상 머신 (VM) 인스턴스에 사용할 서브넷입니다.

튜토리얼을 완료하려면 Google Cloud 프로젝트도 필요합니다.

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Make sure that billing is enabled for your Google Cloud project.

이 튜토리얼을 마치면 만든 리소스를 삭제하여 비용이 계속 청구되지 않도록 할 수 있습니다. 자세한 내용은 삭제를 참조하세요.

다음 섹션에서는 SQL Server 데이터베이스를 Windows 기반 서버에서 Linux 기반 서버로 마이그레이션하는 방법을 설명합니다.

Linux로 SQL 데이터베이스 가져오기

이 섹션에서는 Windows 기반 SQL Server에서 SQL 데이터베이스를 내보내고 SQL Server Management Studio (SSMS)를 사용하여 Linux 기반 SQL Server로 가져오는 방법을 설명합니다.

기본 요건

SQL 데이터베이스를 Linux로 가져오려면 다음이 필요합니다.

  • 다음을 갖춘 Windows 머신:

    • SQL Server가 설치되었습니다.
    • SSMS가 설치되었습니다.
    • 마이그레이션하려는 SQL 데이터베이스가 이 머신에 있습니다. 이 튜토리얼에서는 샘플 AdventureWorks2022 데이터베이스를 사용합니다.
  • SQL Server가 설치된 Linux 머신

Windows 기반 SQL Server에서 SQL 데이터베이스 내보내기

Windows 기반 SQL Server에서 SQL 데이터베이스를 내보내려면 다음 단계를 따르세요.

  1. Windows 머신에서 C: 드라이브에 새 폴더를 만들고 이름을 export (c:\export)로 지정합니다.
  2. SSMS를 엽니다.
  3. 연결 창에 localhost를 입력하고 연결을 클릭합니다.
  4. 객체 탐색기에서 데이터베이스를 펼칩니다.
  5. 대상 데이터베이스를 마우스 오른쪽 버튼으로 클릭하고 작업을 선택한 다음 데이터 영역 애플리케이션 내보내기...를 클릭합니다. 데이터 내보내기 마법사가 열립니다.

    데이터 내보내기

  6. 데이터 내보내기 마법사에서 다음을 선택합니다.

  7. 설정 탭에서 백업 패키지 (BACPAC) 파일 (.bacpac)을 로컬 디스크에 저장하도록 데이터 내보내기 마법사를 구성합니다.

  8. 다음과 같이 폴더 및 파일 이름을 지정합니다.

    c:\export\MigrationFile.bacpac
    
  9. 다음을 클릭합니다.

  10. 지정된 설정을 검토하고 마침을 클릭하여 내보내기 프로세스를 시작합니다. 선택한 위치에 .bacpac 파일이 생성됩니다. 이제 대상 SQL Server로 가져올 수 있습니다.

Linux로 데이터베이스 가져오기

SQL 데이터베이스를 Linux 기반 SQL Server로 가져오려면 다음 단계를 따르세요.

  1. SSMS를 엽니다.
  2. '연결' 창에서 대상 서버의 IP 주소를 입력하고 연결을 클릭합니다.
  3. 객체 탐색기에서 데이터베이스 폴더를 마우스 오른쪽 버튼으로 클릭하고 데이터 영역 애플리케이션 가져오기...를 선택합니다.
  4. 내보내기 절차에서 생성된 .bacpac 파일을 지정합니다.

    c:\export\MigrationFile.bacpac
    
  5. 다음을 클릭합니다.

  6. AdventureWorks2022를 지정합니다.

    AdventureWorks2022
    
  7. 데이터 및 로그 경로에 Linux 인스턴스의 기본 설정이 표시되는지 확인합니다.

  8. 다음을 클릭합니다.

  9. 가져오기 설정을 검토하고 마침을 클릭하여 가져오기를 시작합니다.

    bacpac 파일 설정을 가져옵니다.

  10. 닫기를 클릭하여 가져오기 마법사를 닫습니다. 데이터베이스를 연결할 준비가 되었습니다.

SQL 백업 및 복원을 사용하여 마이그레이션

백업 및 복원 기능을 사용하여 Windows의 SQL Server에서 Linux의 SQL Server로 데이터베이스를 마이그레이션할 수 있습니다. 이 섹션에서는 이 방법을 사용하여 데이터베이스를 Linux 환경으로 전송하는 데 도움이 되는 단계별 가이드를 제공합니다.

기본 요건

백업 및 복원 방법을 사용하여 데이터베이스를 마이그레이션하려면 다음이 필요합니다.

  • 다음을 갖춘 Windows 머신:

    • SQL Server가 설치되었습니다.
    • SQL Server Management Studio (SSMS)가 설치되어 있습니다.
    • 마이그레이션할 데이터베이스입니다. 이 문서에서는 AdventureWorks2022 데이터베이스를 사용합니다.
  • SQL Server가 설치된 Linux 머신

Windows 머신에서 데이터베이스 백업

다음과 같이 SSMS를 사용하여 Windows에서 데이터베이스를 파일로 백업할 수 있습니다.

  1. Windows 머신에서 SSMS를 엽니다.
  2. 연결 창에 localhost를 입력합니다.
  3. 객체 탐색기에서 데이터베이스를 펼칩니다.
  4. 대상 데이터베이스를 마우스 오른쪽 버튼으로 클릭하고 작업을 선택한 다음 백업...을 클릭합니다.

    백업을 만듭니다.

  5. 데이터베이스 백업 창에서 백업 유형전체로 설정되어 있고 백업 대상디스크로 설정되어 있는지 확인합니다. 백업 파일의 이름과 위치를 기록해 둡니다. 예를 들어 SQL Server 2022의 데이터베이스 백업은 기본적으로 C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\Backup에 저장됩니다.

    SQL 데이터베이스 백업 옵션

  6. 확인을 클릭하여 백업을 시작합니다.

백업 파일을 Linux 머신에 복사

Secure Copy Protocol (SCP) 클라이언트를 사용하여 백업 파일을 Linux 머신에 업로드할 수 있습니다. 다음 절차에서는 SCP 명령줄 클라이언트를 사용합니다. 하지만 WinSCP 또는 Git Bash Shell을 사용하여 파일을 업로드할 수도 있습니다.

  1. Windows 머신에서 새 명령 프롬프트를 열고 Windows 머신에서 데이터베이스 백업하기 섹션에서 만든 백업 파일이 포함된 디렉터리로 이동합니다. 예를 들면 다음과 같습니다.

    cd 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\Backup\'
    
  2. scp 명령어를 사용하여 파일을 대상 Linux 머신에 복사합니다. 다음 예에서는 앞에서 만든 MigrationBackup.bak 파일을 사용합니다.

    scp MigrationBackup.bak sysadmin@LINUX_INTERNAL_IP:./
    

    LINUX_INTERNAL_IP를 Linux 머신의 IP로 바꿉니다.

    백업 파일을 대상 머신에 복사합니다.

백업 파일 이동

Linux 머신에서 SQL Server로 데이터베이스를 복원하려면 백업 파일이 mssql 사용자(/var/opt/mssql)가 소유한 기본 위치에 있어야 합니다.

백업 파일을 mssql 디렉터리로 이동하려면 다음 단계를 따르세요.

  1. Windows 머신에서 SSH를 사용하여 대상 Linux 머신에 연결합니다.

    ssh sysadmin@LINUX_INTERNAL_IP
    

    LINUX_INTERNAL_IP를 Linux 머신의 IP로 바꿉니다.

  2. 새 백업 디렉터리를 만듭니다.

    sudo mkdir -p /var/opt/mssql/backup
    
  3. 백업 파일을 새로 만든 디렉터리로 이동합니다.

    sudo mv ~/MigrationBackup.bak /var/opt/mssql/backup
    

데이터베이스 복원

다음 단계에 따라 SSMS를 사용하여 Linux 머신에서 데이터베이스를 복원할 수 있습니다.

  1. Windows 머신에서 SSMS를 엽니다.
  2. 연결 창에 Linux 머신의 IP 주소 또는 호스트 이름을 입력합니다.
  3. 로그인 정보와 비밀번호를 지정합니다.
  4. 연결을 클릭합니다.

    복원할 백업 파일을 선택합니다.

  5. 객체 탐색기에서 데이터베이스 폴더를 마우스 오른쪽 버튼으로 클릭하고 데이터베이스 복원...을 선택합니다.

  6. 데이터베이스 복원 창에서 소스기기로 설정하고 ...를 클릭하여 백업 선택 대화상자를 엽니다.

  7. 백업 기기 선택 대화상자에서 추가를 클릭합니다.

  8. 파일 브라우저에서 \var\opt\mssql\backup 디렉터리를 클릭하고 업로드된 백업 파일을 선택합니다.

  9. 확인을 클릭하여 선택사항을 수락하고 대화상자를 닫습니다.

  10. 채워진 백업 미디어를 검토하고 확인을 클릭합니다.

    복원할 백업 파일을 선택합니다.

Linux 머신에서 데이터베이스 복원을 시작하기 전에 Linux 머신에서 복원된 데이터베이스 파일의 위치를 업데이트해야 합니다. Windows 서버의 경로가 Linux 서버에 없기 때문입니다.

  1. 왼쪽 메뉴에서 파일을 클릭합니다.
  2. 모든 파일을 폴더로 이동을 선택하여 복원된 파일을 SQL Server 기본 데이터 디렉터리로 이동합니다.
  3. 확인을 클릭하여 복원 프로세스를 시작합니다.
  4. 서버의 모든 데이터베이스를 나열하여 복원을 확인합니다. 복원된 데이터베이스가 표시됩니다.

    SELECT Name FROM sys.Databases
    GO
    
  5. 이전된 데이터베이스에서 다른 쿼리를 실행합니다.

    USE AdventureWorks2022
    SELECT top 100 * FROM [Person].[Person]
    GO
    

삭제

튜토리얼을 완료한 후에는 만든 리소스를 삭제하여 할당량 사용을 중지하고 요금이 청구되지 않도록 할 수 있습니다. 다음 섹션은 이러한 리소스를 삭제하거나 사용 중지하는 방법을 설명합니다.

프로젝트 삭제

비용이 청구되지 않도록 하는 가장 쉬운 방법은 튜토리얼에서 만든 프로젝트를 삭제하는 것입니다.

프로젝트를 삭제하는 방법은 다음과 같습니다.

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

다음 단계