์ด ํ์ด์ง์์๋ SQL ๋คํ ํ์ผ์ ์ฌ์ฉํ์ฌ Cloud SQL ์ธ์คํด์ค๋ก ๋ฐ์ดํฐ๋ฅผ ๋ด๋ณด๋ด๊ณ ๊ฐ์ ธ์ค๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค.
์์ํ๊ธฐ ์ ์
๋ด๋ณด๋ด๊ธฐ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ์ง๋ง ์ธ์คํด์ค๊ฐ ํ๋ก๋น์ ๋๋์ง ์๋ ํ ์ผ๋ฐ์ ์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ ์ ์ง์ฅ์ ์ฃผ์ง ์์ต๋๋ค.
๊ถ์ฅ์ฌํญ์ ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ ๋ฐ ๋ด๋ณด๋ด๊ธฐ ๊ถ์ฅ์ฌํญ์ ์ฐธ์กฐํ์ธ์.
๊ฐ์ ธ์ค๊ธฐ ์์ ์ ์๋ฃํ ํ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํฉ๋๋ค.
PostgreSQL์ฉ Cloud SQL์์ ๋ฐ์ดํฐ ๋ด๋ณด๋ด๊ธฐ
PostgreSQL์ฉ Cloud SQL์์ ๋ด๋ณด๋ด๊ธฐ์ ํ์ํ ์ญํ ๋ฐ ๊ถํ
๋ฐ์ดํฐ๋ฅผ Cloud SQL์์ Cloud Storage๋ก ๋ด๋ณด๋ด๋ ค๋ฉด ๋ด๋ณด๋ด๊ธฐ๋ฅผ ์์ํ๋ ์ฌ์ฉ์์๊ฒ ๋ค์ ์ญํ ์ค ํ๋๊ฐ ์์ด์ผ ํฉ๋๋ค.
- Cloud SQL ํธ์ง์ ์ญํ
- ๋ค์ ๊ถํ์ด ํฌํจ๋ ๋ง์ถค ์ญํ :
cloudsql.instances.get
cloudsql.instances.export
๋ํ Cloud SQL ์ธ์คํด์ค์ ์๋น์ค ๊ณ์ ์๋ ๋ค์ ์ญํ ์ค ํ๋๊ฐ ์์ด์ผ ํฉ๋๋ค.
storage.objectAdmin
Identity and Access Management(IAM) ์ญํ- ๋ค์ ๊ถํ์ด ํฌํจ๋ ๋ง์ถค ์ญํ :
storage.objects.create
storage.objects.list
(ํ์ผ์ ๋์์ ๋ด๋ณด๋ด๋ ๊ฒฝ์ฐ์๋ง)storage.objects.delete
(ํ์ผ์ ๋์์ ๋ด๋ณด๋ด๋ ๊ฒฝ์ฐ์๋ง)
IAM ์ญํ ์ ๋ํ ๋์๋ง์ Identity and Access Management๋ฅผ ์ฐธ์กฐํ์ธ์.
PostgreSQL์ฉ Cloud SQL์์ SQL ๋คํ ํ์ผ๋ก ๋ด๋ณด๋ด๊ธฐ
Cloud SQL์ ์ฌ์ฉํ์ฌGoogle Cloud ์ฝ์, gcloud CLI ๋๋ API์์ ๋ด๋ณด๋ด๊ธฐ๋ฅผ ์ํํ ๋๋ ๊ฒฐ๊ณผ ๋ด๋ณด๋ด๊ธฐ ํ์ผ์ Cloud SQL๋ก ๋ค์ ๊ฐ์ ธ์ค๋ ๋ฐ ํ์ํ ์ต์ ๊ณผ ํจ๊ปpg_dump
์ ํธ๋ฆฌํฐ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
Cloud SQL๋ก ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ค๋ฉด SQL ๋คํ ํ์ผ ํ์์ด Cloud SQL์ ๋ง๊ฒ ์ง์ ๋๋๋ก ์ธ๋ถ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฒ์์ ๋ฐ์ดํฐ ๋ด๋ณด๋ด๊ธฐ์ ๋์ ์๋ ์๋ด๋ฅผ ๋ฐ๋ผ์ผ ํฉ๋๋ค.
Cloud SQL ์ธ์คํด์ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ Cloud Storage ๋ฒํท์ SQL ๋คํ ํ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ด๋ณด๋ด๋ ค๋ฉด ๋ค์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์.
์ฝ์
-
Google Cloud ์ฝ์์์ Cloud SQL ์ธ์คํด์ค ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
- ์ธ์คํด์ค์ ๊ฐ์ ํ์ด์ง๋ฅผ ์ด๋ ค๋ฉด ์ธ์คํด์ค ์ด๋ฆ์ ํด๋ฆญํฉ๋๋ค.
- ๋ด๋ณด๋ด๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ํ์ผ ํ์ ์น์ ์์ SQL์ ํด๋ฆญํ์ฌ SQL ๋คํ ํ์ผ์ ๋ง๋ญ๋๋ค.
- ๋ด๋ณด๋ผ ๋ฐ์ดํฐ ์น์ ์์ ๋๋กญ๋ค์ด ๋ฉ๋ด๋ฅผ ์ฌ์ฉํ์ฌ ๋ด๋ณด๋ผ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ ํํฉ๋๋ค.
- ๋์ ์น์ ์์ ์ฐพ์๋ณด๊ธฐ๋ฅผ ์ ํํ์ฌ ๋ด๋ณด๋ผ Cloud Storage ๋ฒํท ๋๋ ํด๋๋ฅผ ๊ฒ์ํฉ๋๋ค.
- ๋ด๋ณด๋ด๊ธฐ๋ฅผ ํด๋ฆญํ์ฌ ์์ํฉ๋๋ค.
gcloud
- Cloud Storage ๋ฒํท์ ๋ง๋ญ๋๋ค.
- ๋ด๋ณด๋ผ Cloud SQL ์ธ์คํด์ค์ ์๋น์ค ๊ณ์ ์ ์ฐพ์ต๋๋ค.
gcloud sql instances describe
๋ช ๋ น์ด๋ฅผ ์คํํ์ฌ ์ํํ ์ ์์ต๋๋ค. ์ถ๋ ฅ์์serviceAccountEmailAddress
ํ๋๋ฅผ ์ฐพ์ต๋๋ค.gcloud sql instances describe INSTANCE_NAME
gcloud storage buckets add-iam-policy-binding
์ ์ฌ์ฉํ์ฌ ์๋น์ค ๊ณ์ ์storage.objectAdmin
IAM ์ญํ ์ ๋ถ์ฌํฉ๋๋ค. IAM ๊ถํ ์ค์ ์ ๋ํ ๋์๋ง์ IAM ๊ถํ ์ฌ์ฉ์ ์ฐธ์กฐํ์ธ์.- ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ Cloud Storage ๋ฒํท์ผ๋ก ๋ด๋ณด๋
๋๋ค.
gcloud sql export sql INSTANCE_NAME gs://BUCKET_NAME/sqldumpfile.gz \ --database=DATABASE_NAME \ --offload
export sql
๋ช ๋ น์ด์๋ ํธ๋ฆฌ๊ฑฐ ๋๋ ์ ์ฅ ํ๋ก์์ ๊ฐ ํฌํจ๋์ง ์์ง๋ง ๋ทฐ๊ฐ ํฌํจ๋ฉ๋๋ค. ํธ๋ฆฌ๊ฑฐ ๋๋ ์ ์ฅ ํ๋ก์์ ๋ฅผ ๋ด๋ณด๋ด๋ ค๋ฉด pg_dump ๋๊ตฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค.export sql
๋ช ๋ น์ด ์ฌ์ฉ ๋ฐฉ๋ฒ์ ๋ํ ์์ธํ ๋ด์ฉ์sql export sql
๋ช ๋ น์ด ์ฐธ์กฐ ํ์ด์ง๋ฅผ ํ์ธํ์ธ์. - ์ด์ ์ ์ค์ ํ IAM ์ญํ ์ ์ ์งํ ํ์๊ฐ ์์ผ๋ฉด ์ง๊ธ ์ทจ์ํฉ๋๋ค.
REST v1
- ๋ด๋ณด๋ด๊ธฐ์ ์ฌ์ฉํ ๋ฒํท์ ๋ง๋ญ๋๋ค.
gcloud storage buckets create gs://BUCKET_NAME --project=PROJECT_NAME --location=LOCATION_NAME
์ด ๋จ๊ณ๋ ํ์ ์ฌํญ์ ์๋์ง๋ง ๋ค๋ฅธ ๋ฐ์ดํฐ์ ๋ํ ์ก์ธ์ค๋ฅผ ์ด์ง ์์๋ ๋๊ธฐ ๋๋ฌธ์ ์ ๊ทน ๊ถ์ฅ๋ฉ๋๋ค.
- ์ธ์คํด์ค์ ๋ฒํท์
legacyBucketWriter
IAM ์ญํ ์ ์ ๊ณตํฉ๋๋ค. IAM ๊ถํ ์ค์ ์ ๋ํ ๋์๋ง์ IAM ๊ถํ ์ฌ์ฉ์ ์ฐธ์กฐํ์ธ์. - ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ด๋ณด๋
๋๋ค.
์์ฒญ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ ์ ๋ค์์ ๋ฐ๊ฟ๋๋ค.
- PROJECT_ID: ํ๋ก์ ํธ ID
- INSTANCE_ID: ์ธ์คํด์ค ID
- BUCKET_NAME: Cloud Storage ๋ฒํท ์ด๋ฆ
- PATH_TO_DUMP_FILE: SQL ๋คํ ํ์ผ์ ๊ฒฝ๋ก
- DATABASE_NAME_1: Cloud SQL ์ธ์คํด์ค ๋ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ด๋ฆ
- DATABASE_NAME_2: Cloud SQL ์ธ์คํด์ค ๋ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ด๋ฆ
HTTP ๋ฉ์๋ ๋ฐ URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/export
JSON ์์ฒญ ๋ณธ๋ฌธ:
{ "exportContext": { "fileType": "SQL", "uri": "gs://BUCKET_NAME/PATH_TO_DUMP_FILE", "databases": ["DATABASE_NAME"], "offload": TRUE | FALSE, "sqlExportOptions": { "clean": [TRUE|FALSE], "ifExists": [TRUE|FALSE] } } }
์์ฒญ์ ๋ณด๋ด๋ ค๋ฉด ๋ค์ ์ต์ ์ค ํ๋๋ฅผ ํผ์นฉ๋๋ค.
๋ค์๊ณผ ๋น์ทํ JSON ์๋ต์ด ํ์๋ฉ๋๋ค.
- ์ด์ ์ ์ค์ ํ IAM ์ญํ ์ ์ ์งํ ํ์๊ฐ ์์ผ๋ฉด ์ง๊ธ ์ญ์ ํฉ๋๋ค.
REST v1beta4
- ๋ด๋ณด๋ด๊ธฐ์ ์ฌ์ฉํ ๋ฒํท์ ๋ง๋ญ๋๋ค.
gcloud storage buckets create gs://BUCKET_NAME --project=PROJECT_NAME --location=LOCATION_NAME
์ด ๋จ๊ณ๋ ํ์ ์ฌํญ์ ์๋์ง๋ง ๋ค๋ฅธ ๋ฐ์ดํฐ์ ๋ํ ์ก์ธ์ค๋ฅผ ์ด์ง ์์๋ ๋๊ธฐ ๋๋ฌธ์ ์ ๊ทน ๊ถ์ฅ๋ฉ๋๋ค.
- ์ธ์คํด์ค์ ๋ฒํท์
storage.objectAdmin
IAM ์ญํ ์ ์ ๊ณตํฉ๋๋ค. IAM ๊ถํ ์ค์ ์ ๋ํ ๋์๋ง์ IAM ๊ถํ ์ฌ์ฉ์ ์ฐธ์กฐํ์ธ์. - ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ด๋ณด๋
๋๋ค.
์์ฒญ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ ์ ๋ค์์ ๋ฐ๊ฟ๋๋ค.
- PROJECT_ID: ํ๋ก์ ํธ ID
- INSTANCE_ID: ์ธ์คํด์ค ID
- BUCKET_NAME: Cloud Storage ๋ฒํท ์ด๋ฆ
- PATH_TO_DUMP_FILE: SQL ๋คํ ํ์ผ์ ๊ฒฝ๋ก
- DATABASE_NAME_1: Cloud SQL ์ธ์คํด์ค ๋ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ด๋ฆ
- DATABASE_NAME_2: Cloud SQL ์ธ์คํด์ค ๋ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ด๋ฆ
HTTP ๋ฉ์๋ ๋ฐ URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/export
JSON ์์ฒญ ๋ณธ๋ฌธ:
{ "exportContext": { "fileType": "SQL", "uri": "gs://BUCKET_NAME/PATH_TO_DUMP_FILE", "databases": ["DATABASE_NAME"], "offload": TRUE | FALSE, "sqlExportOptions": { "clean": [TRUE|FALSE], "ifExists": [TRUE|FALSE] } } }
์์ฒญ์ ๋ณด๋ด๋ ค๋ฉด ๋ค์ ์ต์ ์ค ํ๋๋ฅผ ํผ์นฉ๋๋ค.
๋ค์๊ณผ ๋น์ทํ JSON ์๋ต์ด ํ์๋ฉ๋๋ค.
- ์ด์ ์ ์ค์ ํ IAM ์ญํ ์ ์ ์งํ ํ์๊ฐ ์์ผ๋ฉด ์ง๊ธ ์ทจ์ํฉ๋๋ค.
PostgreSQL์ฉ Cloud SQL๋ก ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ
PostgreSQL์ฉ 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๋ฅผ ์ฐธ์กฐํ์ธ์.
PostgreSQL์ฉ Cloud 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
-
SQL ๋คํ ํ์ผ์ ๋ง๋ญ๋๋ค. ๋งํฌ๋ ์๋ด์์๋ ๋คํ ํ์ผ์ด Cloud SQL๊ณผ ํธํ๋๋๋ก ํ๋ ํน์ ํ๋๊ทธ๋ฅผ ์ค์ ํฉ๋๋ค.
- ์จํ๋ ๋ฏธ์ค PostgreSQL ์๋ฒ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒฝ์ฐ:
- pg_dump๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ ๋ด๋ณด๋ด๊ธฐ์ ์๋ด์ ๋ฐ๋ผ SQL ๋คํ ํ์ผ์ ๋ง๋ญ๋๋ค.
- ๋ฒํท ๋ง๋ค๊ธฐ์ ์๋ด์ ๋ฐ๋ผ Cloud Storage์ ๋ฒํท์ ๋ง๋ญ๋๋ค.
- ๊ฐ์ฒด ์ ๋ก๋์ ์ ์ฐจ๋ฅผ ๋ฐ๋ผ SQL ๋คํ ํ์ผ์ Cloud Storage ๋ฒํท์ ์ ๋ก๋ํฉ๋๋ค.
- 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 ํ์ด์ง๋ฅผ ์ฐธ์กฐํ์ธ์.importContext.importUser
์์ฑ์ ์ง์ ํฉ๋๋ค. - ์ด์ ์ ์ค์ ํ IAM ๊ถํ์ ์ ์งํ ํ์๊ฐ ์์ผ๋ฉด ์ง๊ธ ์ญ์ ํฉ๋๋ค.
REST v1beta4
-
SQL ๋คํ ํ์ผ์ ๋ง๋ญ๋๋ค. ๋งํฌ๋ ์๋ด์์๋ ๋คํ ํ์ผ์ด Cloud SQL๊ณผ ํธํ๋๋๋ก ํ๋ ํน์ ํ๋๊ทธ๋ฅผ ์ค์ ํฉ๋๋ค.
- ์จํ๋ ๋ฏธ์ค PostgreSQL ์๋ฒ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒฝ์ฐ:
- pg_dump๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ ๋ด๋ณด๋ด๊ธฐ์ ์๋ด์ ๋ฐ๋ผ SQL ๋คํ ํ์ผ์ ๋ง๋ญ๋๋ค.
- ๋ฒํท ๋ง๋ค๊ธฐ์ ์๋ด์ ๋ฐ๋ผ Cloud Storage์ ๋ฒํท์ ๋ง๋ญ๋๋ค.
- ๊ฐ์ฒด ์ ๋ก๋์ ์ ์ฐจ๋ฅผ ๋ฐ๋ผ SQL ๋คํ ํ์ผ์ Cloud Storage ๋ฒํท์ ์ ๋ก๋ํฉ๋๋ค.
- 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 ํ์ด์ง๋ฅผ ์ฐธ์กฐํ์ธ์.importContext.importUser
์์ฑ์ ์ง์ ํฉ๋๋ค. - ์ด์ ์ ์ค์ ํ IAM ๊ถํ์ ์ ์งํ ํ์๊ฐ ์์ผ๋ฉด ์ง๊ธ ์ญ์ ํฉ๋๋ค.
๋ค์ ๋จ๊ณ
- ๊ฐ์ ธ์ค๊ธฐ ๋ฐ ๋ด๋ณด๋ด๊ธฐ ์์ ์ํ ํ์ธ ๋ฐฉ๋ฒ ์์๋ณด๊ธฐ
- ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ ๋ฐ ๋ด๋ณด๋ด๊ธฐ ๊ถ์ฅ์ฌํญ ์์ธํ ์์๋ณด๊ธฐ
- Cloud Storage ์์ธํ ์์๋ณด๊ธฐ
- ๊ฐ์ ธ์ค๊ธฐ ๋ฐ ๋ด๋ณด๋ด๊ธฐ์ ๋ํด ์๋ ค์ง ๋ฌธ์