< Lab >
Lab into : Administering a Highly Available Cloud SQL for SQL Server Database
실습: SQL Server 데이터베이스용 고가용성 Cloud SQL 관리
- 안전한 SQL 서버 클라우드 SQL 인스턴스를 생성
- 고가용성 백업 및 복원 작업을 수행
- 개인 IP를 사용해 클라이언트에서 인스턴스에 연결
Administering a Highly Available Cloud SQL for SQL Server Database
SQL Server 데이터베이스용 고가용성 Cloud SQL 관리
- Cloud SQL을 사용하여 안전하고 고가용성 SQL Server 데이터베이스 만들기
- SQL - 인스턴스 만들기 - SQL Server를 선택 후 인스턴스 ID를 sql-server로 생성
- 백업 및 복원 작업 수행
- 클라우드 셸을 열고 사용할 샘플 데이터베이스를 다운로드
curl -O https://storage.googleapis.com/cloud-training/dbmigration/AdventureWorksLT2017.bak
- Microsoft Adventure Works 샘플 데이터베이스를 복원할 수 있는 AdventureWorksLT2017.bak 이라는 SQL 백업 파일 확인
ls
- 현재 프로젝트의 ID로 설정된 환경 변수 확인
echo $DEVSHELL_PROJECT_ID
- 프로젝트 ID와 이름이 동일한 Cloud Storage 버킷 생성
gsutil mb gs://$DEVSHELL_PROJECT_ID
- Adventure Works 백업 파일을 해당 버킷에 복사
gsutil cp ./AdventureWorksLT2017.bak gs://$DEVSHELL_PROJECT_ID
- 콘솔의 SQL의 Overview에서 Import를 클릭해 버키을 찾아 AdventureWorksLT2017.bak 파일을 선택 후
데이터베이스 이름을 AdventureWorks 로 지정한 다음 가져오기 클릭
- Backups 링크를 클릭한 후 백업 생성을 클릭해 Initial AdventureWorks backup 을 이름으로 입력해 생성
- Operation 링크를 클릭해 데이터베이스에서 일어난 일 추적
- 개인 IP 주소를 사용하여 데이터베이스에 연결
- Users 링크 클릭해 sqlserver라는 사용자가 자동으로 생성 확인
- Overview에서 사설 IP 주소를 복사
+) Private IP Address : 10.35.160.2 - Cloud Shell에서 Ubuntu Linux 가상 머신 생성
gcloud compute instances create cloud-sql-client --zone=us-central1-a --image=ubuntu-1604-xenial-v20200610 --image-project=ubuntu-os-cloud
- 콘솔의 Compute Engine으로 이동해 가상 머신을 확인 후 SSH 클릭
- Microsoft SQL Server 클라이언트 소프트웨어를 다운로드 및 설치
curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add - curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list | sudo tee /etc/apt/sources.list.d/msprod.list sudo apt-get update sudo apt-get install mssql-tools unixodbc-dev
- 클라이언트 소프트웨어를 경로에 추가
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc source ~/.bashrc
- Cloud SQL 데이터베이스에 연결
sqlcmd -S 10.128.0.2,1433 -U sqlserver
- 데이터베이스 조회
EXEC sp_databases; go
- AdventureWorks 쿼리 실행
SELECT TOP (10) CompanyName FROM [AdventureWorks].[SalesLT].[Customer]; go
- 모든 회사 이름을 Google로 변경
UPDATE [AdventureWorks].[SalesLT].[Customer] SET CompanyName = 'Google'; go
- 명령이 작동했는지 확인
SELECT TOP (10) CompanyName FROM [AdventureWorks].[SalesLT].[Customer]; go
- 결과가 정확하지 않으므로 이전에 만든 백업 복원을 계속하기 위해 콘솔에서 Cloud SQL로 돌아간 후
서버를 선택해 백업 링크 클릭
- 백업 옆에 있는 복원을 클릭한 후 인스턴스 입력을 입력하고 복원
- 복원 작업이 완료되면 클라이언트 시스템으로 돌아가서 쿼리를 다시 실행해 백업이 올바르게 복업되었는지 확인
SELECT TOP (10) CompanyName FROM [AdventureWorks].[SalesLT].[Customer]; go
- 장애 조치를 트리거하여 고가용성 테스트
- Cloud SQL Overview에서 장애 조치를 클릭
- 지시에 따라 데이터베이스 이름을 입력하고 장애 조치 트리거 클릭
- 작업이 완료되면 클라이언트로 돌아가 쿼리 재실행
- 레코드 중 하나로 변경하려면 다음 명령 실행
UPDATE [AdventureWorks].[SalesLT].[Customer] SET CompanyName = 'Google' WHERE CustomerID = 1; go
- Overview 페이지에서 장애 조치를 클릭하여 주 데이터베이스로 돌아간
다음 장애 조치에서 변경한 사항이 주서버에 반영되었는지 확인
- 데이터베이스를 삭제하려면 Overview에서 삭제를 클릭하고 Compute Engine으로 이동해서 클라이언트 머신 삭제