MySQL 8.0์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋งˆ์ด๋„ˆ ๋ฒ„์ „ ์—…๊ทธ๋ ˆ์ด๋“œ

MySQL์šฉ Cloud SQL์€ MySQL 8.0์˜ ์—ฌ๋Ÿฌ ๋ถ€ ๋ฒ„์ „์„ ์ง€์›ํ•˜๋ฉฐ ์ตœ์‹  ๋ถ€ ๋ฒ„์ „๋ณด๋‹ค ํ•œ ๋ถ€ ๋ฒ„์ „ ์ด์ „์ธ ๊ธฐ๋ณธ ๋ถ€ ๋ฒ„์ „์—์„œ MySQL 8.0 ์ธ์Šคํ„ด์Šค๋ฅผ ํ”„๋กœ๋น„์ €๋‹ํ•ฉ๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ œ๊ณต์—…์ฒด์—์„œ๋Š” ์ƒˆ๋กœ์šด ๋ถ€ ๋ฒ„์ „์„ ์ถœ์‹œํ•  ๋•Œ๋งˆ๋‹ค ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ, ๋ณด์•ˆ ํŒจ์น˜, ๋ฒ„๊ทธ ์ˆ˜์ •, ์„ฑ๋Šฅ ๊ฐœ์„ ์„ ์ œ๊ณตํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

MySQL 8.0์€ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ž๋™ ์—…๊ทธ๋ ˆ์ด๋“œ

Cloud SQL์€ ํŠน์ • ๋ถ€ ๋ฒ„์ „์— ์—ฐ๊ฒฐ๋˜์ง€ ์•Š์€ MySQL 8.0์šฉ Cloud SQL ์ธ์Šคํ„ด์Šค์˜ ์ž๋™ ๋ถ€ ๋ฒ„์ „ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ธ์Šคํ„ด์Šค๊ฐ€ MySQL ๋ฒ„์ „ 8.0.35 ์ด์ƒ์„ ์‹คํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ธ์Šคํ„ด์Šค์—์„œ ์ž๋™ ๋ถ€ ๋ฒ„์ „ ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ์‚ฌ์šฉ ์„ค์ •๋œ ๊ฒฝ์šฐ ์ •๊ธฐ ์œ ์ง€๋ณด์ˆ˜ ์—…๋ฐ์ดํŠธ ์ค‘์— MySQL์šฉ Cloud SQL 8.0 ์ธ์Šคํ„ด์Šค๊ฐ€ MySQL์šฉ Cloud SQL 8.0์˜ ๊ธฐ๋ณธ ๋ถ€ ๋ฒ„์ „์œผ๋กœ ์ž๋™ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฉ๋‹ˆ๋‹ค. MySQL ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ์ถœ์‹œํ•œ ์ตœ์‹  ๋ณด์•ˆ ํŒจ์น˜์™€ ๋ฒ„๊ทธ ์ˆ˜์ •์œผ๋กœ MySQL์šฉ Cloud SQL ์ธ์Šคํ„ด์Šค๋ฅผ ์ตœ์‹  ์ƒํƒœ๋กœ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋” ์ด์ƒ ๋ถ€ ๋ฒ„์ „ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์ˆ˜๋™์œผ๋กœ ์‹คํ–‰ํ•˜์ง€ ์•Š์•„๋„ ๋ฉ๋‹ˆ๋‹ค.

์ž๋™ ๋งˆ์ด๋„ˆ ์—…๊ทธ๋ ˆ์ด๋“œ ์‚ฌ์šฉ ์„ค์ • ํ™•์ธ

์ธ์Šคํ„ด์Šค์—์„œ ์ž๋™ ๋ถ€ ๋ฒ„์ „ ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ์‚ฌ์šฉ ์„ค์ •๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์„ธ์š”.

gcloud sql instances describe INSTANCE_NAME \
--project=PROJECT_ID

INSTANCE_NAME๋ฅผ ์ธ์Šคํ„ด์Šค ์ด๋ฆ„์œผ๋กœ, PROJECT_ID์„ ์ธ์Šคํ„ด์Šค์˜ ํ”„๋กœ์ ํŠธ ID๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค. ๋ช…๋ น์–ด์˜ ์ถœ๋ ฅ์—์„œ ๋‹ค์Œ ํ•„๋“œ๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค.

  • databaseVersion: ๊ฐ’์€ MYSQL_8_0์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • databaseInstalledVersion: ๊ฐ’์€ MYSQL_8_0_35 ์ด์ƒ์˜ ๋ถ€ ๋ฒ„์ „์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ˆ˜๋™ ์—…๊ทธ๋ ˆ์ด๋“œ

์ด ์„น์…˜์—์„œ๋Š” MySQL 8.0์šฉ Cloud SQL ์ธ์Šคํ„ด์Šค์˜ ๋ถ€ ๋ฒ„์ „์„ ์ˆ˜๋™์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. MySQL์šฉ Cloud SQL ๋ฒ„์ „ 8.0.34 ์ดํ•˜๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ MySQL์šฉ Cloud SQL์˜ ๋ถ€ ๋ฒ„์ „์„ ์ˆ˜๋™์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ƒˆ MySQL 8.0 ๋ถ€ ๋ฒ„์ „์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ธฐ ์ „ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ˆ™์ง€ํ•˜์„ธ์š”. MySQL 8.0 ์ถœ์‹œ ๋…ธํŠธ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”. MySQL์šฉ Cloud SQL 5.6 ๋˜๋Š” 5.7์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ Cloud SQL์ด ์ธ์Šคํ„ด์Šค์˜ ๋ถ€ ๋ฒ„์ „์„ ์ž๋™์œผ๋กœ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ ์ธ์Šคํ„ด์Šค๋ฅผ ํ”„๋กœ๋น„์ €๋‹ํ•  ๋•Œ Cloud SQL์€ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ตœ์‹  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฒ„์ „์œผ๋กœ ์ธ์Šคํ„ด์Šค๋ฅผ ์ž๋™์œผ๋กœ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ •๊ธฐ ์œ ์ง€๋ณด์ˆ˜ ์ค‘์—๋Š” Cloud SQL์ด ์ธ์Šคํ„ด์Šค๋ฅผ ์ง€์›๋˜๋Š” ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์ž๋™์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•ฉ๋‹ˆ๋‹ค.

MySQL 8.0 ์ธ์Šคํ„ด์Šค์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ถ€ ๋ฒ„์ „์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ ค๋ฉด ์ธ์Šคํ„ด์Šค๋ฅผ ์›ํ•˜๋Š” ๋ถ€ ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์›ํ•˜๋Š” ๋ถ€ ๋ฒ„์ „์ด ์„ค์น˜๋œ ๋ถ€ ๋ฒ„์ „๋ณด๋‹ค ๋†’์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ธ์Šคํ„ด์Šค๊ฐ€ ํ”„๋กœ๋น„์ €๋‹๋œ ํ›„์—๋Š” ์ง€์ •๋˜์ง€ ์•Š์€ ๋ถ€ ๋ฒ„์ „์œผ๋กœ ๋˜๋Œ๋ฆด ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

Cloud SQL Enterprise Plus ๋ฒ„์ „์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ ๋ถ€ ๋ฒ„์ „ ์—…๊ทธ๋ ˆ์ด๋“œ ์ค‘ ๋‹ค์šดํƒ€์ž„์ด ๊ฑฐ์˜ ์—†์ด ๋งˆ๋ฌด๋ฆฌ๋ฉ๋‹ˆ๋‹ค.

์ˆ˜๋™์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ธฐ ์ „์—

Cloud SQL์€ MySQL 8.0 ์ธ์Šคํ„ด์Šค์˜ ๋ถ€ ๋ฒ„์ „ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. MySQL 8.0์—์„œ๋Š” ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ธฐ๋ณธ ์ธ์Šคํ„ด์Šค๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ธฐ ์ „ ๋ฐ์ดํ„ฐ๊ฐ€ ์•ˆ์ „ํ•œ์ง€ ํ™•์ธํ•˜๋Š” ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ผ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  1. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋Œ€์ƒ ๋งˆ์ด๋„ˆ ๋ฒ„์ „์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

    gcloud

    gcloud CLI ์„ค์น˜ ๋ฐ ์‹œ์ž‘์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ gcloud CLI ์„ค์น˜๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”. Cloud Shell ์‹œ์ž‘ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ Cloud Shell ์‚ฌ์šฉ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

    ์ธํ”Œ๋ ˆ์ด์Šค ์—…๊ทธ๋ ˆ์ด๋“œ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ถ€ ๋ฒ„์ „์„ ํ™•์ธํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

    1. ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
    2. gcloud sql instances describe INSTANCE_NAME
         

      INSTANCE_NAME์„ ์ธ์Šคํ„ด์Šค ์ด๋ฆ„์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

    3. ๋ช…๋ น์–ด์˜ ์ถœ๋ ฅ์—์„œ upgradableDatabaseVersions ๋ผ๋ฒจ์ด ์ง€์ •๋œ ์„น์…˜์„ ์ฐพ์Šต๋‹ˆ๋‹ค.
    4. ๊ฐ ํ•˜์œ„ ์„น์…˜์—์„œ ์—…๊ทธ๋ ˆ์ด๋“œํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฒ„์ „์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ํ•˜์œ„ ์„น์…˜์—์„œ ๋‹ค์Œ ํ•„๋“œ๋ฅผ ๊ฒ€ํ† ํ•ฉ๋‹ˆ๋‹ค.
      • name: MySQL์šฉ Cloud SQL ๋ถ€ ๋ฒ„์ „ ์ธํ”Œ๋ ˆ์ด์Šค ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ํƒ€๊ฒŸํŒ…ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ฃผ ๋ฒ„์ „ ๋ฐ ๋ถ€ ๋ฒ„์ „์„ ํฌํ•จํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฒ„์ „ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค.

    REST v1

    ์ธํ”Œ๋ ˆ์ด์Šค ์—…๊ทธ๋ ˆ์ด๋“œ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ถ€ ๋ฒ„์ „์„ ํ™•์ธํ•˜๋ ค๋ฉด Cloud SQL Admin API์˜ instances.get ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

    ์š”์ฒญ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— ๋‹ค์Œ์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

    • INSTANCE_NAME: ์ธ์Šคํ„ด์Šค์˜ ์ด๋ฆ„

    HTTP ๋ฉ”์„œ๋“œ ๋ฐ URL:

    GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME

    ์š”์ฒญ์„ ๋ณด๋‚ด๋ ค๋ฉด ๋‹ค์Œ ์˜ต์…˜ ์ค‘ ํ•˜๋‚˜๋ฅผ ํŽผ์นฉ๋‹ˆ๋‹ค.

    ๋‹ค์Œ๊ณผ ๋น„์Šทํ•œ JSON ์‘๋‹ต์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

    
    upgradableDatabaseVersions:
    
    {
      major_version: "MYSQL_8_0"
      name: "MYSQL_8_0_36"
      display_name: "MySQL 8.0.36"
    }
    
    

    REST v1beta4

    ์ธํ”Œ๋ ˆ์ด์Šค ์—…๊ทธ๋ ˆ์ด๋“œ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ถ€ ๋ฒ„์ „์„ ํ™•์ธํ•˜๋ ค๋ฉด Cloud SQL Admin API์˜ instances.get ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

    ์š”์ฒญ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— ๋‹ค์Œ์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

    • INSTANCE_NAME: ์ธ์Šคํ„ด์Šค์˜ ์ด๋ฆ„

    HTTP ๋ฉ”์„œ๋“œ ๋ฐ URL:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME

    ์š”์ฒญ์„ ๋ณด๋‚ด๋ ค๋ฉด ๋‹ค์Œ ์˜ต์…˜ ์ค‘ ํ•˜๋‚˜๋ฅผ ํŽผ์นฉ๋‹ˆ๋‹ค.

    ๋‹ค์Œ๊ณผ ๋น„์Šทํ•œ JSON ์‘๋‹ต์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

    
    upgradableDatabaseVersions:
    
    {
      major_version: "MYSQL_8_0"
      name: "MYSQL_8_0_36"
      display_name: "MySQL 8.0.36"
    }
    
    

    Cloud SQL์ด ์ง€์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฒ„์ „์˜ ์ „์ฒด ๋ชฉ๋ก์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฒ„์ „ ๋ฐ ๋ฒ„์ „ ์ •์ฑ…์„ ์ฐธ์กฐํ•˜์„ธ์š”.

  2. ์Šคํ…Œ์ด์ง• ํ™˜๊ฒฝ์—์„œ ์—…๊ทธ๋ ˆ์ด๋“œ ํ…Œ์ŠคํŠธ

    1. ์Šคํ…Œ์ด์ง• ์ธ์Šคํ„ด์Šค๋กœ ์ œ๊ณตํ•  ํ”„๋กœ๋•์…˜ ์ธ์Šคํ„ด์Šค์˜ ํด๋ก ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ๋™์ผํ•œ ์ฃผ ๋ฒ„์ „ ๋ฐ ๋ถ€ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๋Š” ์ƒˆ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

    2. ์Šคํ…Œ์ด์ง• ์ธ์Šคํ„ด์Šค์—์„œ ๋ถ€ ๋ฒ„์ „ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    3. ์›Œํฌ๋กœ๋“œ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ์„ฑ๊ณตํ–ˆ๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์˜ˆ์ƒ ๋Œ€๋กœ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ๊ฐ€ ์„ฑ๊ณตํ–ˆ์œผ๋ฉด ๊ณ„์†ํ•ด์„œ ์ฝ๊ธฐ ๋ณต์ œ๋ณธ ์ธ์Šคํ„ด์Šค๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•ฉ๋‹ˆ๋‹ค.

  3. ์ฝ๊ธฐ ๋ณต์ œ๋ณธ ์ธ์Šคํ„ด์Šค๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•ฉ๋‹ˆ๋‹ค.

    1. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ชจ๋“  ์ฝ๊ธฐ ๋ณต์ œ๋ณธ์„ ๋Œ€์ƒ ๋ถ€ ๋ฒ„์ „์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•ฉ๋‹ˆ๋‹ค.

    2. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์˜ˆ์ƒ ๋Œ€๋กœ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

  4. ๊ธฐ๋ณธ ์ธ์Šคํ„ด์Šค ๋ฐฑ์—…

    ์ค‘์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—…๋ฐ์ดํŠธ์—์„œ์™€ ๊ฐ™์ด ๊ธฐ๋ณธ ์ธ์Šคํ„ด์Šค๋ฅผ ๋ฐฑ์—…ํ•ฉ๋‹ˆ๋‹ค.

๋ถ€ ๋ฒ„์ „ ์—…๊ทธ๋ ˆ์ด๋“œ

gcloud ๋˜๋Š” REST API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ธฐ์กด ์ธ์Šคํ„ด์Šค์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ถ€ ๋ฒ„์ „์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์‚ฌ์šฉ ์ค‘์ด ์•„๋‹ ๋•Œ ๋ถ€ ๋ฒ„์ „ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ธ์Šคํ„ด์Šค๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ์ธ์Šคํ„ด์Šค์— ๋‹ค์šดํƒ€์ž„์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Cloud SQL Enterprise Plus ๋ฒ„์ „ ์ธ์Šคํ„ด์Šค์—๋Š” ๋‹ค์šดํƒ€์ž„์ด ๊ฑฐ์˜ ์—†์Šต๋‹ˆ๋‹ค. ์„ค์น˜๋œ ๋ฒ„์ „์ด ์š”์ฒญ๋œ ๋ฒ„์ „๋ณด๋‹ค ๋†’์œผ๋ฉด ์š”์ฒญ์ด ๊ฑฐ๋ถ€๋ฉ๋‹ˆ๋‹ค.

gcloud

gcloud sql instances patch ๋ช…๋ น์–ด๋ฅผ --database-version ํ”Œ๋ž˜๊ทธ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์ „์— ๋‹ค์Œ ๋ณ€์ˆ˜๋ฅผ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

  • INSTANCE_NAME: ์ธ์Šคํ„ด์Šค ์ด๋ฆ„.
  • DATABASE_VERSION: ์ธ์Šคํ„ด์Šค์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฒ„์ „. ์ด ํ”Œ๋ž˜๊ทธ๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ๊ธฐ๋ณธ ์ฃผ ๋ฒ„์ „์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
gcloud sql instances patch INSTANCE_NAME \
   --database-version=DATABASE_VERSION

REST v1

PATCH ์š”์ฒญ์„ instances:patch ๋ฉ”์„œ๋“œ ๋ฐ databaseVersion ํ”Œ๋ž˜๊ทธ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์š”์ฒญ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— ๋‹ค์Œ์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

  • PROJECT_ID: ํ”„๋กœ์ ํŠธ ID
  • INSTANCE_ID: ์ธ์Šคํ„ด์Šค ID
  • DATABASE_VERSION: ์—…๊ทธ๋ ˆ์ด๋“œํ•  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฒ„์ „

HTTP ๋ฉ”์„œ๋“œ ๋ฐ URL:

PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID

JSON ์š”์ฒญ ๋ณธ๋ฌธ:

{
  "databaseVersion": "DATABASE_VERSION"
}

์š”์ฒญ์„ ๋ณด๋‚ด๋ ค๋ฉด ๋‹ค์Œ ์˜ต์…˜ ์ค‘ ํ•˜๋‚˜๋ฅผ ํŽผ์นฉ๋‹ˆ๋‹ค.

๋‹ค์Œ๊ณผ ๋น„์Šทํ•œ JSON ์‘๋‹ต์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "[email protected]",
  "insertTime": "2022-07-17T20:23:15.540Z",
  "operationType": "UPDATE",
  "name": "fa3f7304-ccf6-4d2f-a6f5-24df00000032",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/fa3f7304-ccf6-4d2f-a6f5-24df00000032",
  "targetProject": "PROJECT_ID"
}

REST v1beta4

PATCH ์š”์ฒญ์„ instances:patch ๋ฉ”์„œ๋“œ ๋ฐ databaseVersion ํ”Œ๋ž˜๊ทธ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์š”์ฒญ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— ๋‹ค์Œ์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

  • PROJECT_ID: ํ”„๋กœ์ ํŠธ ID
  • INSTANCE_ID: ์ธ์Šคํ„ด์Šค ID
  • DATABASE_VERSION: ์—…๊ทธ๋ ˆ์ด๋“œํ•  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฒ„์ „

HTTP ๋ฉ”์„œ๋“œ ๋ฐ URL:

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances/INSTANCE_ID

JSON ์š”์ฒญ ๋ณธ๋ฌธ:

{
  "databaseVersion": "DATABASE_VERSION"
}

์š”์ฒญ์„ ๋ณด๋‚ด๋ ค๋ฉด ๋‹ค์Œ ์˜ต์…˜ ์ค‘ ํ•˜๋‚˜๋ฅผ ํŽผ์นฉ๋‹ˆ๋‹ค.

๋‹ค์Œ๊ณผ ๋น„์Šทํ•œ JSON ์‘๋‹ต์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "[email protected]",
  "insertTime": "2022-07-17T20:23:15.540Z",
  "operationType": "UPDATE",
  "name": "fa3f7304-ccf6-4d2f-a6f5-24df00000032",
  "targetId": "INSTANCE-ID",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/fa3f7304-ccf6-4d2f-a6f5-24df00000032",
  "targetProject": "PROJECT_ID"
}

์„ค์น˜๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ถ€ ๋ฒ„์ „ ํ™•์ธ

์ธ์Šคํ„ด์Šค ์š”์•ฝ ์ •๋ณด๋ฅผ ํ™•์ธํ•  ๋•Œ, ์„ค์น˜๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ถ€ ๋ฒ„์ „์ด ๊ตฌ์„ฑ ์„น์…˜์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

์—…๊ทธ๋ ˆ์ด๋“œ ๋กค๋ฐฑ

์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ํ…Œ์ŠคํŠธํ•˜๋Š” ๋™์•ˆ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋กค๋ฐฑํ•˜์—ฌ ์ด์ „ ๋ถ€ ๋ฒ„์ „์„ ์‹คํ–‰ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ธ์Šคํ„ด์Šค๋ฅผ ๋ณต๊ตฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์—…๊ทธ๋ ˆ์ด๋“œ ์ „ ๋ฐฑ์—…์„ ๋ณต์›ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  1. ์ด์ „ ๋ถ€ ๋ฒ„์ „์—์„œ ๋ณต๊ตฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ธ์Šคํ„ด์Šค๋ฅผ ํ”„๋กœ๋น„์ €๋‹ํ•ฉ๋‹ˆ๋‹ค.
  2. ๋ณต๊ตฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ธ์Šคํ„ด์Šค์˜ ์„ค์ •์„ ์—…๊ทธ๋ ˆ์ด๋“œ ์ „ ์ƒํƒœ๋กœ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  3. ์—…๊ทธ๋ ˆ์ด๋“œ ์ „ ๋ฐฑ์—…์„ ๋ณต๊ตฌ ์ธ์Šคํ„ด์Šค๋กœ ๋ณต์›ํ•ฉ๋‹ˆ๋‹ค.

๋ฐฑ์—…์„ ๋ณต์›ํ•˜๋Š” ๋Œ€์‹  PITR(point-in-time recovery)์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ์ƒˆ ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.