AAtsushi's Blog

CloudSQL for PostgreSQLのバックアップ

概要

CloudSQL for PostgreSQLのバックアップ方法がいくつかある。いったいどこまでバックアップされるのかがわからなかったので、それぞれを比較してみた。

用語

  • データベースフラグ

CloudSQL for PostgreSQLではpostgresql.confといった設定ファイルにアクセスできない。その代わりにデータベースフラグというものがあり、これでPostgeSQLのパラメータ調整ができる。

比較結果

バックアップには以下の4パターンがある。

  1. インスタンスのクローンを作成(インスタンスをまるごとバックアップ)
  2. オンデマンド バックアップを作成(全てのデータベースをバックアップ)
  3. SQL ダンプファイルを使用したエクスポート(データベース毎にバックアップ)
  4. CSV ファイルを使用したエクスポート(テーブル毎にバックアップ)

1がもっともバックアップ範囲が広く、4がもっとも狭い。インスタンスをクローンすると、データベースフラグ(設定ファイルに相当)までバックアップすることができる。一方、CSV ファイルを使用したエクスポートではテーブルデータのみバックアップされる。

1.インスタンスのクローンを作成

Clone instances | Cloud SQL for PostgreSQL | Google Cloud

インスタンスのクローンを作成し、インスタンスをまるごとバックアップする。

新しいインスタンスには、新しい IP アドレスが割り振られが、設定(データベース フラグ、接続オプション、マシンタイプ、ストレージとメモリの設定)は元のインスタンスと同じになる。

引用元

対象バックアップ範囲
データベースフラグ
ユーザー/ロール
データベース
オブジェクト権限
テーブル定義
テーブル

2.オンデマンド バックアップを作成

Create and manage on-demand and automatic backups | Cloud SQL for PostgreSQL | Google Cloud

オンデマンド バックアップの機能を使用することで全てのデータベースをバックアップする。データベースフラグはバックアップされない。

対象バックアップ範囲
データベースフラグ×
ユーザー/ロール
データベース
オブジェクト権限
テーブル定義
テーブル

3.SQL ダンプファイルを使用したエクスポート

Export and import using SQL dump files | Cloud SQL for PostgreSQL | Google Cloud

SQL ダンプファイルを使用したエクスポートの機能を使用し、データベース毎にバックアップする。SQLクエリとして出力される。

対象バックアップ範囲
データベースフラグ×
ユーザー/ロール×
データベース×
オブジェクト権限
テーブル定義
テーブル

4.CSV ファイルを使用したエクスポート

Export and import using CSV files | Cloud SQL for PostgreSQL | Google Cloud

CSV ファイルを使用したエクスポートの機能を使用し、テーブルデータをバックアップすることができる。エクスポートするレコードをSQLで指定できる。CSVファイルとして出力される。

対象バックアップ範囲
データベースフラグ×
ユーザー/ロール×
権限×
データベース×
オブジェクト権限×
テーブル定義×
テーブルデー