์ด ํ์ด์ง์์๋ SQL ๋คํ ํ์ผ์ ์ฌ์ฉํ์ฌ Cloud SQL ์ธ์คํด์ค๋ก ๋ฐ์ดํฐ๋ฅผ ๋ด๋ณด๋ด๊ณ ๊ฐ์ ธ์ค๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค.
SQL Server์์๋ Cloud SQL์์ SQL ๋คํ ํ์ผ๋ก ๋ด๋ณด๋ผ ์ ์์ต๋๋ค.
์์ํ๊ธฐ ์ ์
๋ด๋ณด๋ด๊ธฐ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ์ง๋ง ์ธ์คํด์ค๊ฐ ํ๋ก๋น์ ๋๋์ง ์๋ ํ ์ผ๋ฐ์ ์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ ์ ์ง์ฅ์ ์ฃผ์ง ์์ต๋๋ค.
๊ถ์ฅ์ฌํญ์ ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ ๋ฐ ๋ด๋ณด๋ด๊ธฐ ๊ถ์ฅ์ฌํญ์ ์ฐธ์กฐํ์ธ์.
๊ฐ์ ธ์ค๊ธฐ ์์ ์ ์๋ฃํ ํ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํฉ๋๋ค.
SQL Server์ฉ Cloud SQL์์ ๋ฐ์ดํฐ ๋ด๋ณด๋ด๊ธฐ
SQL Server์์๋ Cloud SQL์์ SQL ๋คํ ํ์ผ๋ก ๋ด๋ณด๋ผ ์ ์์ต๋๋ค.SQL Server์ฉ Cloud SQL๋ก ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ
SQL Server์ฉ Cloud SQL๋ก ๊ฐ์ ธ์ค๊ธฐ์ ํ์ํ ์ญํ ๋ฐ ๊ถํ
๋ฐ์ดํฐ๋ฅผ Cloud Storage์์ Cloud SQL๋ก ๊ฐ์ ธ์ค๋ ค๋ฉด ๊ฐ์ ธ์ค๊ธฐ๋ฅผ ์์ํ๋ ์ฌ์ฉ์์๊ฒ ๋ค์ ์ญํ ์ค ํ๋๊ฐ ์์ด์ผ ํฉ๋๋ค.
- Cloud SQL ๊ด๋ฆฌ์ ์ญํ
- ๋ค์ ๊ถํ์ด ํฌํจ๋ ๋ง์ถค ์ญํ :
cloudsql.instances.get
cloudsql.instances.import
๋ํ Cloud SQL ์ธ์คํด์ค์ ์๋น์ค ๊ณ์ ์๋ ๋ค์ ์ญํ ์ค ํ๋๊ฐ ์์ด์ผ ํฉ๋๋ค.
storage.objectAdmin
IAM ์ญํ- ๋ค์ ๊ถํ์ด ํฌํจ๋ ์ปค์คํ
์ญํ :
storage.objects.get
storage.objects.list
(์คํธ๋ผ์ดํ๋ ๊ฐ์ ธ์ค๊ธฐ๋ง ํด๋น)
IAM ์ญํ ์ ๋ํ ๋์๋ง์ Identity and Access Management๋ฅผ ์ฐธ์กฐํ์ธ์.
SQL Server์ฉ Cloud SQL๋ก SQL ๋คํ ํ์ผ ๊ฐ์ ธ์ค๊ธฐ
SQL ํ์ผ์ ์ผ๋ จ์ SQL ๋ช ๋ น์ด๊ฐ ํฌํจ๋ ์ผ๋ฐ ํ ์คํธ ํ์ผ์ ๋๋ค.
๋ค์ ์ ์ฐจ์์๋ SQL ํ์ผ์ ๊ฐ์ ธ์ฌ ๊ธฐ์กด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ง์ ํ ์ค๋น๋ฅผ ํฉ๋๋ค.
์ฝ์
-
Google Cloud ์ฝ์์์ Cloud SQL ์ธ์คํด์ค ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
- ์ธ์คํด์ค์ ๊ฐ์ ํ์ด์ง๋ฅผ ์ด๋ ค๋ฉด ์ธ์คํด์ค ์ด๋ฆ์ ํด๋ฆญํฉ๋๋ค.
- ๊ฐ์ ธ์ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ค๋ ํ์ผ ์ ํ ์น์
์์ ๊ฐ์ ธ์ค๊ธฐ์ ์ฌ์ฉํ ๋ฒํท๊ณผ SQL ๋คํ ํ์ผ์ ๊ฒฝ๋ก๋ฅผ ์
๋ ฅํ๊ฑฐ๋ ๊ธฐ์กด ํ์ผ์ ์ฐพ์ต๋๋ค.
์์ถ๋ ํ์ผ(
.gz
) ๋๋ ์์ถ๋์ง ์์ ํ์ผ(.sql
)์ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค. - ํ์์ SQL์ ์ ํํฉ๋๋ค.
๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ ํํฉ๋๋ค.
์ด๋ ๊ฒ ํ๋ฉด ๊ฐ์ ธ์ค๊ธฐ ์ ์ Cloud SQL์ด
USE DATABASE
๋ฌธ์ ์คํํฉ๋๋ค.๊ฐ์ ธ์ค๊ธฐ๋ฅผ ์ํํ ์ฌ์ฉ์๋ฅผ ์ง์ ํ๋ ค๋ฉด ์ฌ์ฉ์๋ฅผ ์ ํํฉ๋๋ค.
๊ฐ์ ธ์ค๊ธฐ ํ์ผ์ ํน์ ์ฌ์ฉ์๊ฐ ์ํํด์ผ ํ๋ ๋ฌธ์ด ํฌํจ๋์ด ์๋ค๋ฉด, ์ด ํ๋๋ฅผ ์ฌ์ฉํ์ฌ ํด๋น ์ฌ์ฉ์๋ฅผ ์ง์ ํฉ๋๋ค.
- ๊ฐ์ ธ์ค๊ธฐ๋ฅผ ํด๋ฆญํ์ฌ ๊ฐ์ ธ์ค๊ธฐ๋ฅผ ์์ํฉ๋๋ค.
gcloud
- Cloud Storage ๋ฒํท์ ๋ง๋ญ๋๋ค.
ํ์ผ์ ๋ฒํท์ ์ ๋ก๋ํฉ๋๋ค.
๋ฒํท์ ํ์ผ ์ ๋ก๋ํ๊ธฐ์ ๋ํ ๋์๋ง์ ๊ฐ์ฒด ์ ๋ก๋๋ฅผ ์ฐธ์กฐํ์ธ์.
- ๊ฐ์ ธ์ค๊ธฐ์ ๋์ ์ธ์คํด์ค๋ฅผ ์ค๋ช
ํฉ๋๋ค.
gcloud sql instances describe INSTANCE_NAME
serviceAccountEmailAddress
ํ๋๋ฅผ ๋ณต์ฌํฉ๋๋ค.gcloud storage buckets add-iam-policy-binding
์ ์ฌ์ฉํ์ฌ ๋ฒํท์ ์๋น์ค ๊ณ์ ์storage.objectAdmin
IAM ์ญํ ์ ๋ถ์ฌํฉ๋๋ค. IAM ๊ถํ ์ค์ ์ ๋ํ ๋์๋ง์ IAM ๊ถํ ์ฌ์ฉ์ ์ฐธ๊ณ ํ์ธ์.gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \ --member=serviceAccount:SERVICE-ACCOUNT \ --role=roles/storage.objectAdmin
- ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ฐ์ ธ์ต๋๋ค.
gcloud sql import sql INSTANCE_NAME gs://BUCKET_NAME/IMPORT_FILE_NAME \ --database=DATABASE_NAME
import sql
๋ช ๋ น์ด ์ฌ์ฉ์ ๋ํ ์์ธํ ๋ด์ฉ์sql import sql
๋ช ๋ น์ด ์ฐธ์กฐ ํ์ด์ง๋ฅผ ํ์ธํ์ธ์.๋ช ๋ น์ด๊ฐ
ERROR_RDBMS
์ ๊ฐ์ ์ค๋ฅ๋ฅผ ๋ฐํํ ๊ฒฝ์ฐ ๊ถํ์ ๊ฒํ ํ์ธ์. ์ด ์ค๋ฅ๋ ๊ถํ ๋ฌธ์ ๋ก ์ธํด ๋ฐ์ํ๋ ๊ฒฝ์ฐ๊ฐ ์์ฃผ ์์ต๋๋ค. - ์ด์ ์ ์ค์ ํ IAM ๊ถํ์ ์ ์งํ ํ์๊ฐ ์์ผ๋ฉด
gcloud storage buckets remove-iam-policy-binding
์ ์ฌ์ฉํ์ฌ ์ญ์ ํฉ๋๋ค.
REST v1
- Cloud Storage ๋ฒํท์ ๋ง๋ญ๋๋ค.
ํ์ผ์ ๋ฒํท์ ์ ๋ก๋ํฉ๋๋ค.
๋ฒํท์ ํ์ผ ์ ๋ก๋ํ๊ธฐ์ ๋ํ ๋์๋ง์ ๊ฐ์ฒด ์ ๋ก๋๋ฅผ ์ฐธ์กฐํ์ธ์.
- ์ธ์คํด์ค์ ๋ฒํท์
legacyBucketWriter
๋ฐobjectViewer
IAM ์ญํ ์ ์ ๊ณตํฉ๋๋ค. IAM ๊ถํ ์ค์ ์ ๋ํ ๋์๋ง์ IAM ๊ถํ ์ฌ์ฉ์ ์ฐธ์กฐํ์ธ์. - ๋คํ ํ์ผ์ ๊ฐ์ ธ์ต๋๋ค.
์์ฒญ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ ์ ๋ค์์ ๋ฐ๊ฟ๋๋ค.
- project-id: ํ๋ก์ ํธ ID
- instance-id: ์ธ์คํด์ค ID
- bucket_name: Cloud Storage ๋ฒํท ์ด๋ฆ
- path_to_sql_file: SQL ํ์ผ ๊ฒฝ๋ก
- database_name: Cloud SQL ์ธ์คํด์ค ๋ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ด๋ฆ
HTTP ๋ฉ์๋ ๋ฐ URL:
POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/import
JSON ์์ฒญ ๋ณธ๋ฌธ:
{ "importContext": { "fileType": "SQL", "uri": "gs://bucket_name/path_to_sql_file", "database": "database_name" } }
์์ฒญ์ ๋ณด๋ด๋ ค๋ฉด ๋ค์ ์ต์ ์ค ํ๋๋ฅผ ํผ์นฉ๋๋ค.
๋ค์๊ณผ ๋น์ทํ JSON ์๋ต์ด ํ์๋ฉ๋๋ค.
์ด ์์ฒญ์ ์ํ ๋งค๊ฐ๋ณ์์ ์ ์ฒด ๋ชฉ๋ก์ instances:import ํ์ด์ง๋ฅผ ์ฐธ์กฐํ์ธ์. - ์ด์ ์ ์ค์ ํ IAM ๊ถํ์ ์ ์งํ ํ์๊ฐ ์์ผ๋ฉด ์ง๊ธ ์ญ์ ํฉ๋๋ค.
REST v1beta4
- Cloud Storage ๋ฒํท์ ๋ง๋ญ๋๋ค.
ํ์ผ์ ๋ฒํท์ ์ ๋ก๋ํฉ๋๋ค.
๋ฒํท์ ํ์ผ ์ ๋ก๋ํ๊ธฐ์ ๋ํ ๋์๋ง์ ๊ฐ์ฒด ์ ๋ก๋๋ฅผ ์ฐธ์กฐํ์ธ์.
- ์ธ์คํด์ค์ ๋ฒํท์
storage.objectAdmin
IAM ์ญํ ์ ์ ๊ณตํฉ๋๋ค. IAM ๊ถํ ์ค์ ์ ๋ํ ๋์๋ง์ IAM ๊ถํ ์ฌ์ฉ์ ์ฐธ์กฐํ์ธ์. - ๋คํ ํ์ผ์ ๊ฐ์ ธ์ต๋๋ค.
์์ฒญ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ ์ ๋ค์์ ๋ฐ๊ฟ๋๋ค.
- project-id: ํ๋ก์ ํธ ID
- instance-id: ์ธ์คํด์ค ID
- bucket_name: Cloud Storage ๋ฒํท ์ด๋ฆ
- path_to_sql_file: SQL ํ์ผ ๊ฒฝ๋ก
- database_name: Cloud SQL ์ธ์คํด์ค ๋ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ด๋ฆ
HTTP ๋ฉ์๋ ๋ฐ URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/import
JSON ์์ฒญ ๋ณธ๋ฌธ:
{ "importContext": { "fileType": "SQL", "uri": "gs://bucket_name/path_to_sql_file", "database": "database_name" } }
์์ฒญ์ ๋ณด๋ด๋ ค๋ฉด ๋ค์ ์ต์ ์ค ํ๋๋ฅผ ํผ์นฉ๋๋ค.
๋ค์๊ณผ ๋น์ทํ JSON ์๋ต์ด ํ์๋ฉ๋๋ค.
์ด ์์ฒญ์ ์ํ ๋งค๊ฐ๋ณ์์ ์ ์ฒด ๋ชฉ๋ก์ instances:import ํ์ด์ง๋ฅผ ์ฐธ์กฐํ์ธ์. - ์ด์ ์ ์ค์ ํ IAM ๊ถํ์ ์ ์งํ ํ์๊ฐ ์์ผ๋ฉด ์ง๊ธ ์ญ์ ํฉ๋๋ค.
๋ค์ ๋จ๊ณ
- ๊ฐ์ ธ์ค๊ธฐ ๋ฐ ๋ด๋ณด๋ด๊ธฐ ์์ ์ํ ํ์ธ ๋ฐฉ๋ฒ ์์๋ณด๊ธฐ
- ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ ๋ฐ ๋ด๋ณด๋ด๊ธฐ ๊ถ์ฅ์ฌํญ ์์ธํ ์์๋ณด๊ธฐ
- Cloud Storage ์์ธํ ์์๋ณด๊ธฐ
- ๊ฐ์ ธ์ค๊ธฐ ๋ฐ ๋ด๋ณด๋ด๊ธฐ์ ๋ํด ์๋ ค์ง ๋ฌธ์