概要
CloudSQL for PostgreSQLのバックアップ方法がいくつかある。いったいどこまでバックアップされるのかがわからなかったので、それぞれを比較してみた。
用語
データベースフラグ
CloudSQL for PostgreSQLではpostgresql.confといった設定ファイルにアクセスできない。その代わりにデータベースフラグというものがあり、これでPostgeSQLのパラメータ調整ができる。
比較結果
バックアップには以下の4パターンがある。
- インスタンスのクローンを作成(インスタンスをまるごとバックアップ)
- オンデマンド バックアップを作成(全てのデータベースをバックアップ)
- SQL ダンプファイルを使用したエクスポート(データベース毎にバックアップ)
- 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ファイルとして出力される。
対象 | バックアップ範囲 |
---|---|
データベースフラグ | × |
ユーザー/ロール | × |
権限 | × |
データベース | × |
オブジェクト権限 | × |
テーブル定義 | × |
テーブルデータ | 〇 |