이 튜토리얼에서는 Microsoft SQL Server 2022 데이터베이스를 Cloud Storage 버킷에 직접 백업하고 나중에 복원하는 방법을 설명합니다. SQL Server 2022에서 도입된 SQL Server 백업 기본 기능은 클라우드 기반 재해 복구 및 데이터 마이그레이션을 위한 원활하고 비용 효율적인 전략을 제공합니다.
SQL Server 백업 네이티브 기능은 Cloud Storage를 비롯한 S3 호환 객체 스토리지를 지원하는 BACKUP TO URL
및 RESTORE FROM URL
명령어를 활용합니다. 이렇게 하면 중간 로컬 스토리지가 필요하지 않아 백업 워크플로가 간소화되고 운영 오버헤드가 줄어듭니다.
이 튜토리얼은 데이터베이스 관리자 및 엔지니어를 대상으로 합니다.
목표
이 튜토리얼에서는 목표를 달성하기 위해 다음 작업을 완료하는 방법을 보여줍니다.- 새 Cloud Storage 버킷 만들기
- SQL Server 커넥터 구성
- 데이터베이스 백업
- 백업에서 데이터베이스 복원
비용
이 문서에서는 비용이 청구될 수 있는 Google Cloud구성요소( )를 사용합니다.
프로젝트 사용량을 기준으로 예상 비용을 산출하려면 가격 계산기를 사용합니다.
이 문서에 설명된 태스크를 완료했으면 만든 리소스를 삭제하여 청구가 계속되는 것을 방지할 수 있습니다. 자세한 내용은 삭제를 참조하세요.
시작하기 전에
이 튜토리얼을 진행하려면 Google Cloud 프로젝트가 필요합니다. 새 프로젝트를 만들거나 기존에 만든 프로젝트를 선택할 수 있습니다.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, activate Cloud Shell.
Microsoft SQL Server 2022 이상이 설치되어 실행 중인지 확인합니다.
Google Cloud 프로젝트와 SQL Server 모두에 백업 및 복원 작업을 실행하는 데 필요한 권한이 있는지 확인합니다.
액세스 키와 연결된 사용자 또는 서비스 계정에 Cloud Storage 버킷에서 객체를 만들고 볼 권한이 있는지 확인합니다.
백업을 실행하는 데 사용되는 SQL Server 사용자 계정에 데이터베이스 백업 및 로그 백업 권한이 있는지 확인합니다.
Google Cloud 프로젝트를 선택합니다.
gcloud config set project PROJECT_ID
버킷을 만듭니다. 버킷을 만들려면 다음과 같이
gcloud storage buckets create
명령어를 실행합니다.gcloud storage buckets create gs://BUCKET_NAME --location=BUCKET_LOCATION
다음을 바꿉니다.
BUCKET_NAME
을 버킷의 고유한 이름으로 바꿉니다.BUCKET_LOCATION
을 버킷 위치로 바꿉니다.Google Cloud 콘솔에서 Cloud Storage 설정으로 이동합니다.
상호 운용성 탭을 선택합니다.
사용자 계정의 액세스 키에서 키 만들기를 클릭합니다.
생성된 액세스 키와 보안 비밀을 안전하게 저장합니다. 다음 단계에서 필요합니다.
CREDENTIAL_NAME
: 사용자 인증 정보의 이름ACCESS_KEY
: 이전 섹션에서 만든 액세스 키를 사용합니다.SECRET
: 이전 섹션에서 만든 보안 비밀을 사용합니다.CREDENTIAL_NAME
3단계에서 만든 사용자 인증 정보의 이름입니다. 예:sql_backup_credentials
BUCKET_NAME
1단계에서 만든 버킷의 이름입니다.FOLDER_NAME
백업 파일을 저장할 폴더의 이름입니다.BACKUP_FILE_NAME
백업 파일의 이름입니다.FORMAT
: 기존 백업 파일을 덮어쓰고 새 미디어 세트를 만듭니다.STATS
: 백업 진행 상황을 보고합니다.COMPRESSION
: 백업을 압축하여 파일 크기와 업로드 시간을 줄일 수 있습니다.MAXTRANSFERSIZE
: 큰 백업 파일의 I/O 오류를 방지하는 것이 좋습니다.- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
- Google Cloud에 대한 참조 아키텍처, 다이어그램, 권장사항 살펴보기. Cloud 아키텍처 센터 살펴보기
Cloud Storage 버킷 만들기
Google Cloud 콘솔을 사용하거나
gcloud storage
명령어를 사용하여 Cloud Storage 버킷을 만들 수 있습니다.gcloud storage
명령어를 사용하여 Cloud Storage 버킷을 만들려면 다음 단계를 따르세요.S3 상호 운용성 구성 및 액세스 키 만들기
SQL Server가 S3 프로토콜을 사용하여 Cloud Storage와 통신하도록 허용하려면 다음 단계에 따라 상호 운용성을 사용 설정하고 액세스 키를 생성해야 합니다.
프로덕션 환경에서는 보안 및 관리를 위해 서비스 계정 해시 기반 메시지 인증 코드 (HMAC) 키를 사용하는 것이 좋습니다.
SQL Server에 사용자 인증 정보 추가
SQL Server가 Cloud Storage 버킷으로 인증할 수 있도록 하려면 SQL Server 내에서 사용자 인증 정보 객체를 만들어 Cloud Storage 액세스 키와 보안 비밀을 저장해야 합니다. 이렇게 하려면 SQL Server Management Studio (SSMS)에서 다음 T-SQL 명령어를 실행하세요.
CREATE CREDENTIAL CREDENTIAL_NAME WITH IDENTITY = 'S3 Access Key', SECRET = 'ACCESS_KEY:SECRET';
다음을 바꿉니다.
IDENTITY = 'S3 Access Key'
는 SQL Server에 새 S3 커넥터를 사용하도록 지시하므로 중요합니다. 보안 비밀은 액세스 키, 콜론, 보안 비밀 키 순으로 형식이 지정되어야 합니다.예:
CREATE CREDENTIAL sql_backup_credentials WITH IDENTITY = 'S3 Access Key', SECRET = 'GOOGGE3SVF7OQE5JRMLQ7KWB:b31Pl8Tx1ARJfdGOsbgMFQNbk3nPdlT2UCYzs1iC';
Cloud Storage에 데이터 백업
이제 사용자 인증 정보가 있으므로
TO URL
옵션과 함께BACKUP DATABASE
명령어를 사용하여 데이터베이스를 Cloud Storage 버킷에 직접 백업할 수 있습니다. 다음과 같이 S3 커넥터를 사용하려면 URL에s3://storage.googleapis.com
을 접두사로 붙입니다.BACKUP DATABASE DATABASE_NAME TO URL = 's3://storage.googleapis.com/BUCKET_NAME/FOLDER_NAME/BACKUP_FILE_NAME.bak' WITH CREDENTIAL = 'CREDENTIAL_NAME', FORMAT, STATS = 10, MAXTRANSFERSIZE = 10485760, COMPRESSION;
다음을 바꿉니다.
명령어에 사용된 백업 매개변수에 대한 설명은 다음과 같습니다.
자세한 내용은 S3 호환 객체 스토리지를 위한 URL에 SQL Server 백업을 참고하세요.
데이터베이스가 매우 큰 경우 다음과 같이 백업을 여러 파일로 분할할 수 있습니다.
BACKUP DATABASE DATABASE_NAME TO URL = 's3://storage.googleapis.com/BUCKET_NAME/FOLDER_NAME/BACKUP_FILE_NAME_0.bak', URL = 's3://storage.googleapis.com/BUCKET_NAME/FOLDER_NAME/BACKUP_FILE_NAME_1.bak' -- ... more files WITH CREDENTIAL = 'CREDENTIAL_NAME', FORMAT, STATS = 10, MAXTRANSFERSIZE = 10485760, COMPRESSION;
Cloud Storage에서 데이터 복원하기
다음과 같이
RESTORE DATABASE
명령어를 사용하여 Cloud Storage에 저장된 백업 파일에서 데이터베이스를 직접 복원할 수 있습니다.RESTORE DATABASE DATABASE_NAME FROM URL = 's3://storage.googleapis.com/BUCKET_NAME/FOLDER_NAME/BACKUP_FILE_NAME.bak' WITH CREDENTIAL = 'CREDENTIAL_NAME';
다음을 바꿉니다.
삭제
이 튜토리얼에서 사용한 리소스 비용이 Google Cloud 계정에 청구되지 않도록 하려면 다음 안내를 따르세요.
프로젝트 삭제
다음 단계
-