Cloud SQL
https://cloud.google.com/sql/docs/mysql?hl=ja
https://cloud.google.com/sql/docs/postgres?hl=ja
https://cloud.google.com/sql/docs/sqlserver?hl=ja
前作業
gcloud init
gcloud auth list
gcloud --version
gcloud projects create project01-9999999 \
--name="project01"
gcloud config list
gcloud config set project project01-9999999
gcloud config set compute/region asia-northeast1
gcloud config set compute/zone asia-northeast1-a
gcloud beta billing accounts list
gcloud beta billing projects link project01-9999999 --billing-account=111111-111111-111111
gcloud services enable compute.googleapis.com --project project01-9999999
---------------------------------------------
---------------------------------------------
[1] MySQL
インスタンスの作成
vCPU : 1
メモリ : 614.4 MB
HDD ストレージ : 10 GB
gcloud sql tiers list
gcloud sql instances create mysql01 \
--assign-ip \
--availability-type=zonal \
--database-version=MYSQL_8_0_30 \
--enable-bin-log \
--no-deletion-protection \
--retained-backups-count=1 \
--root-password='password' \
--no-storage-auto-increase \
--storage-size=10 \
--storage-type=HDD \
--tier=db-f1-micro \
--region=asia-northeast1
gcloud sql instances list
gcloud sql instances describe mysql01
インスタンスの削除
gcloud sql instances delete mysql01 --quiet
承認済みアドレスの設定
gcloud sql instances patch mysql01 \
--authorized-networks=192.0.2.1/32
インスタンスのクローンを作成する
gcloud sql instances clone mysql01 mysql02
---------------------------------------------
データベースの作成
gcloud sql databases create test \
--instance=mysql01
gcloud sql databases list --instance=mysql01
gcloud sql databases describe test --instance=mysql01
データベースの削除
gcloud sql databases delete test --instance=mysql01
---------------------------------------------
インスタンス接続
gcloud sql connect mysql01 --user=root
MYSQL_PWD='password' mysql -h 192.0.2.2 -P 3306 -u root
---------------------------------------------
インスタンスの起動停止
インスタンスの停止
gcloud sql instances patch mysql01 \
--activation-policy=NEVER
インスタンスの起動
gcloud sql instances patch mysql01 \
--activation-policy=ALWAYS
インスタンスの再起動
gcloud sql instances restart mysql01
---------------------------------------------
レプリカの作成
MySQL インスタンスのレプリケーションを有効にするには、
最初に自動バックアップとポイントインタイム リカバリ(バイナリ ロギング)を有効にする必要があります。
gcloud sql instances create mysql11 \
--master-instance-name=mysql01 \
--region=asia-northeast1
レプリカの昇格
gcloud sql instances promote-replica mysql11
---------------------------------------------
オンデマンドバックアップ
gcloud sql backups create --instance=mysql01
gcloud sql backups list --instance=mysql01
gcloud sql backups describe 1111111111111 --instance=mysql01
バックアップの削除
gcloud sql backups delete 1111111111111 --instance=mysql01
---------------------------------------------
復元
gcloud sql backups restore 1111111111111 \
--restore-instance=mysql01
---------------------------------------------
---------------------------------------------
[2] PostgreSQL
インスタンスの作成
vCPU : 1
メモリ : 614.4 MB
HDD ストレージ : 10 GB
gcloud sql tiers list
gcloud sql instances create postgres01 \
--assign-ip \
--availability-type=zonal \
--database-version=POSTGRES_14 \
--enable-point-in-time-recovery \
--no-deletion-protection \
--retained-backups-count=1 \
--root-password='password' \
--no-storage-auto-increase \
--storage-size=10 \
--storage-type=HDD \
--tier=db-f1-micro \
--region=asia-northeast1
gcloud sql instances list
gcloud sql instances describe postgres01
インスタンスの削除
gcloud sql instances delete postgres01 --quiet
承認済みアドレスの設定
gcloud sql instances patch postgres01 \
--authorized-networks=192.0.2.1/32
インスタンスのクローンを作成する
gcloud sql instances clone postgres01 postgres02
---------------------------------------------
データベースの作成
gcloud sql databases create test \
--instance=postgres01
gcloud sql databases list --instance=postgres01
gcloud sql databases describe test --instance=postgres01
データベースの削除
gcloud sql databases delete test --instance=postgres01
---------------------------------------------
インスタンス接続
gcloud sql connect postgres01 --user=postgres --database=test
PGPASSWORD='password' psql -h 192.0.2.3 -p 5432 -U postgres test
---------------------------------------------
インスタンスの起動停止
インスタンスの停止
gcloud sql instances patch postgres01 \
--activation-policy=NEVER
インスタンスの起動
gcloud sql instances patch postgres01 \
--activation-policy=ALWAYS
インスタンスの再起動
gcloud sql instances restart postgres01
---------------------------------------------
レプリカの作成
gcloud sql instances create postgres11 \
--master-instance-name=postgres01 \
--region=asia-northeast1
レプリカの昇格
gcloud sql instances promote-replica postgres11
---------------------------------------------
オンデマンドバックアップ
gcloud sql backups create --instance=postgres01
gcloud sql backups list --instance=postgres01
gcloud sql backups describe 1111111111111 --instance=postgres01
バックアップの削除
gcloud sql backups delete 1111111111111 --instance=postgres01
---------------------------------------------
復元
gcloud sql backups restore 1111111111111 \
--restore-instance=postgres01
---------------------------------------------
---------------------------------------------
[3] SQL Server
インスタンスの作成
vCPU : 1
メモリ : 3840 MB
SSD ストレージ : 10 GB
gcloud sql tiers list
gcloud sql instances create mssql01 \
--assign-ip \
--availability-type=zonal \
--database-version=SQLSERVER_2019_EXPRESS \
--enable-point-in-time-recovery \
--no-deletion-protection \
--retained-backups-count=1 \
--root-password='password' \
--no-storage-auto-increase \
--storage-size=10 \
--storage-type=SSD \
--cpu=1 \
--memory=3840MiB \
--region=asia-northeast1
gcloud sql instances list
gcloud sql instances describe mssql01
インスタンスの削除
gcloud sql instances delete mssql01 --quiet
承認済みアドレスの設定
gcloud sql instances patch mssql01 \
--authorized-networks=192.0.2.1/32
インスタンスのクローンを作成する
gcloud sql instances clone mssql01 mssql02
---------------------------------------------
データベースの作成
gcloud sql databases create test \
--instance=mssql01
gcloud sql databases list --instance=mssql01
gcloud sql databases describe test --instance=mssql01
データベースの削除
gcloud sql databases delete test --instance=mssql01
→ 原因不明のエラー発生
ERROR: (gcloud.sql.databases.delete) [INTERNAL_ERROR]
---------------------------------------------
インスタンス接続
sqlcmd -S 192.0.2.4 -U sqlserver -d test
---------------------------------------------
インスタンスの起動停止
インスタンスの停止
gcloud sql instances patch mssql01 \
--activation-policy=NEVER
インスタンスの起動
gcloud sql instances patch mssql01 \
--activation-policy=ALWAYS
インスタンスの再起動
gcloud sql instances restart mssql01
---------------------------------------------
レプリカの作成
→ 調査日時点で未対応
---------------------------------------------
オンデマンドバックアップ
gcloud sql backups create --instance=mssql01
gcloud sql backups list --instance=mssql01
gcloud sql backups describe 1111111111111 --instance=mssql01
バックアップの削除
gcloud sql backups delete 1111111111111 --instance=mssql01
---------------------------------------------
復元
gcloud sql backups restore 1111111111111 \
--restore-instance=mssql01
---------------------------------------------
クリーンアップ
gcloud projects list
gcloud projects delete project01-9999999 --quiet