Cloud SQL の機能

このページでは、Cloud SQL の主な機能について説明します。Cloud SQL は、MySQLPostgreSQLSQL Server で使用できます。

Cloud SQL for MySQL

特長

  • クラウド内のフルマネージド MySQL Community Edition データベースです。
  • Cloud SQL インスタンスは、MySQL 8.0、5.7(デフォルト)、5.6 をサポートし、最大で 416 GB の RAM と 30 TB のデータ ストレージを使用でき、必要に応じてストレージを自動的に増やすオプションがあります。
  • Google Cloud Console でインスタンスを作成、管理します。
  • インスタンスは米国、EU、アジア、オーストラリアで利用できます。
  • Google の内部ネットワーク、データベース テーブル、一時ファイル、バックアップでは、お客様のデータは暗号化されます。
  • Cloud SQL Proxy または SSL / TLS プロトコルで安全な外部接続をサポートします。
  • プライベート IP(プライベート サービス アクセス)をサポートします。
  • 自動フェイルオーバーにより複数のゾーン間でデータが複製されます。
  • mysqldump を使用したデータベースのインポートとエクスポート、または CSV ファイルをインポートやエクスポートも可能です。
  • MySQL ワイヤ プロトコルと標準 MySQL コネクタをサポートします。
  • 自動またはオンデマンドでのバックアップと、ポイントインタイム リカバリを行います。
  • インスタンス クローンの作成。
  • Google Cloud のオペレーション スイートのロギング、モニタリングとの統合。
  • ISO/IEC 27001 を遵守しています。

サポートされている言語

Cloud SQL for MySQL は、Java、Python、PHP、Node.js、Go、Ruby で作成された App Engine アプリケーションで使用できます。また、標準の MySQL プロトコルを使用する外部アプリケーションでも Cloud SQL for MySQL を使用できます。

Cloud SQL for MySQL インスタンスに接続する方法

Cloud SQL の MySQL インスタンスには次の方法で接続できます。

  • mysql クライアント。詳細については、こちらをご覧ください。
  • SQL Workbench や Toad for MySQL などのサードパーティ製ツール。詳細については、こちらをご覧ください。
  • 外部アプリケーション。詳細については、こちらをご覧ください。
  • App Engine アプリケーション。詳細については、こちらをご覧ください。
  • Compute Engine で実行するアプリケーション。詳細については、こちらをご覧ください。
  • Google Kubernetes Engine で実行するアプリケーション。詳細については、こちらをご覧ください。
  • Cloud Functions。詳細については、こちらをご覧ください。
  • Cloud Run。詳細については、こちらをご覧ください。
  • Google Apps Script スクリプト。詳細については、こちらをご覧ください。

限定公開の Google アクセスを使用した Cloud SQL への接続はサポートされていません。 プライベート サービス アクセスがサポートされています。詳細については、サービスのプライベート アクセス オプションをご覧ください。

MySQL for Cloud SQL 8.0 でのユーザー管理

MySQL 8.0 が変更されたため、MySQL ユーザー管理に CREATE または DELETE を使用することはできません。INSERTUPDATEDELETE ステートメントを使用してユーザー権限を変更することもできません。代わりに、CREATEDROP USERGRANTREVOKE ステートメントを使用して、ユーザー権限を変更します。詳細については、Account management notes をご覧ください。

注: Account management notes の、mysql_upgrade によるバージョン 8.0 へのアップグレードに関する記述は無視してください。代わりに、インスタンスでの MySQL のアップグレードの手順に従ってアップグレードしてください。

Cloud SQL と標準 MySQL の機能の違い

一般に、Cloud SQL インスタンスが提供する MySQL 機能は、ローカルにホストされた MySQL インスタンスが提供する機能と同じです。ただし、標準の MySQL インスタンスと Cloud SQL for MySQL インスタンスの間には、いくつかの違いがあります。

サポートされていない MySQL の機能

MySQL for Cloud SQL 5.6 と 5.7 では、次の機能はサポートされていません。

  • SUPER 権限

MySQL for Cloud SQL 8.0 では、次の機能はサポートされていません。

サポートされていないプラグイン

サポートされていないステートメント

次の SQL ステートメントを送信すると、エラーが発生し、「Error 1290: The MySQL server is running with the Google option so it cannot execute this statement」というエラー メッセージが表示されます。

  • LOAD DATA INFILE

    なお、LOAD DATA LOCALINFILE はサポートされます。

  • SELECT ... INTO OUTFILE

  • SELECT ... INTO DUMPFILE

  • INSTALL PLUGIN ...

  • UNINSTALL PLUGIN

  • CREATE FUNCTION ... SONAME ...

MySQL インスタンスでは GTID レプリケーションを使用するため、以下のステートメントはサポートされません。

  • CREATE TABLE ... SELECT ステートメント
  • トランザクション テーブルと非トランザクション テーブルの両方を更新するトランザクションやステートメント

次のステートメントは、MySQL for Cloud SQL 5.6 と 5.7 ではサポートされていませんが、MySQL for Cloud SQL 8.0 ではサポートされています。

  • トランザクション内の CREATE TEMPORARY TABLE ステートメント

詳しくは、MySQL のドキュメントをご覧ください。

サポートされていない関数

  • LOAD_FILE()

サポートされていないクライアント プログラムの機能

  • --local オプションを使用しない mysqlimport。これは LOAD DATA INFILE 制限が原因です。データをリモートで読み込む必要がある場合は、Cloud SQL の import 関数を使用してください。

  • --tab オプションを使用しているか、--tab で使用されるオプションを使用している mysqldump。これは、インスタンス ユーザーに対してファイル権限が許可されていないためです。他の mysqldump オプションはすべてサポートされています。

  • バイナリデータを含むデータベースを MySQL インスタンスの Cloud SQL にインポートするには、--hex-blob オプションと mysqldump を併用する必要があります。

    ローカルの MySQL サーバー インスタンスと mysql クライアントを使用している場合、hex-blob は必須フラグではありませんが、バイナリデータを含むデータベースを Cloud SQL インスタンスにインポートする場合は必須です。データのインポートの詳細については、データのインポートをご覧ください。

  • Cloud SQL フラグとして編集できない MySQL オプションとパラメータがあります。

    構成可能な Cloud SQL フラグの追加をリクエストするには、Cloud SQL ヘルプグループを使用します。

  • サポートされているストレージ エンジンは InnoDB だけです。MyISAM から InnoDB へのテーブルの変換については、MySQL のドキュメントをご覧ください。

Cloud SQL でプリセットされている MySQL オプション

Cloud SQL は、特定のオプション セットを使用して MySQL を実行します。オプションがアプリケーションの動作に影響を与える可能性がある場合は、参考情報としてここに記載します。

skip-name-resolve

このフラグは、クライアント接続のホスト名の解決方法に影響します。詳細については、こちらをご覧ください。

log_bin

このフラグを使用すると、バイナリ ロギングが有効になります。MySQL 8.0 を含む MySQL for Cloud SQL では、デフォルトで無効になっています。詳細についてはこちらをご覧ください。このデフォルトは、インスタンスでバイナリ ロギングを有効にすることでオーバーライドできます。

MySQL 8.0 認証

MySQL for Cloud SQL 8.0 では、caching_sha2_password ではなく、新規ユーザー用のデフォルトの認証プラグインとして mysql_native_password を使用します。mysql_native_password プラグインは MySQL 5.6 と 5.7 のユーザー用のデフォルトです。

新規ユーザーが caching_sha2_password プラグインをデフォルト認証として使用するようにしたい場合は、caching_sha2_password を使用するように default_authentication_plugin のインスタンス フラグを構成します。

既存のユーザーが caching_sha2_password を使用するように構成するには、ALTER USER コマンドを使用して認証プラグインを変更します。

caching_sha2_password 認証を使用するユーザーは、接続時に get-server-public-key フラグを使用する必要が生じることがあります。詳しくは、MySQL ドキュメントで SHA-2 Pluggable Authentication の使用に関するセクションをご覧ください。

MySQL for Cloud SQL 8.0 でサポートされていない Cloud SQL の機能

MySQL for Cloud SQL 8.0 では、フェイルオーバー レプリカを使用するレガシー バージョンの MySQL 高可用性(HA)構成はサポートされません。新しいリージョン HA 構成がサポートされます。

Cloud SQL for PostgreSQL

機能

  • クラウド内のフルマネージド PostgreSQL データベース。
  • 最大 624 GB の RAM と 96 個の CPU を搭載するカスタム マシンタイプ。
  • 最大 30 TB までのストレージ。必要に応じて、ストレージを自動的に増やすことができます。
  • Google Cloud Console でインスタンスを作成、管理します。
  • インスタンスは米国、EU、アジア、オーストラリアで利用できます。
  • Google の内部ネットワーク、データベース テーブル、一時ファイル、バックアップでは、顧客データは暗号化されます。
  • Cloud SQL Proxy または SSL / TLS プロトコルで安全な外部接続をサポートします。
  • 自動フェイルオーバーにより複数のゾーン間でデータが複製されます。
  • SQL ダンプファイルを使用して、データベースのインポートとエクスポートを行います。
  • PostgreSQL クライアント / サーバー プロトコルと標準の PostgreSQL コネクタをサポートします。
  • 自動またはオンデマンドでバックアップを行います。
  • インスタンス クローンの作成
  • Google Cloud のオペレーション スイートのロギング、モニタリングとの統合。
  • 複数の PostgreSQL バージョンのサポート。

まだ利用できない機能

Cloud SQL でまだ利用できない Postgres 12 と 13 の機能:

  • 低レベル仮想マシン(LLVM)JIT コンパイル
  • 論理レプリケーション

サポートされる拡張機能

Cloud SQL for PostgreSQL は PostgreSQL の多くの拡張機能をサポートしています。完全なリストについては、PostgreSQL の拡張機能をご覧ください。

サポートされる手続き型言語

Cloud SQL for PostgreSQL は、PL/pgSQL SQL 手続き型言語をサポートしています。

サポートされている言語

Cloud SQL for PostgreSQL は、Java、Python、PHP、Node.js、Go、Ruby で作成され、フレキシブル環境で実行される App Engine アプリケーションで使用できます。また、標準の PostgreSQL クライアント / サーバー プロトコルを使用する外部アプリケーションでも Cloud SQL for PostgreSQL を使用できます。

Cloud SQL for PostgreSQL インスタンスに接続する方法

Cloud SQL for PostgreSQL インスタンスには次の方法で接続できます。

  • psql クライアント。詳細については、こちらをご覧ください。
  • 標準の PostgreSQL クライアント / サーバー プロトコルを使用するサードパーティ製ツール。
  • 外部アプリケーション。詳細については、こちらをご覧ください。
  • App Engine アプリケーション。詳細については、こちらをご覧ください。
  • Compute Engine で実行するアプリケーション。詳細については、こちらをご覧ください。
  • Google Kubernetes Engine で実行するアプリケーション。詳細については、こちらをご覧ください。
  • Cloud Functions。詳細については、こちらをご覧ください。
  • Cloud Run。詳細については、こちらをご覧ください。

限定公開の Google アクセスを使用した Cloud SQL への接続はサポートされていません。

Cloud SQL と標準 PostgreSQL の機能の違い

一般に、Cloud SQL インスタンスが提供する PostgreSQL 機能は、ローカルにホストされた PostgreSQL インスタンスが提供する機能と同じです。ただし、標準の PostgreSQL インスタンスと Cloud SQL for PostgreSQL インスタンスの間に違いがあります。

サポートされていない機能

  • SUPERUSER 権限を必要とする機能

    CREATE EXTENSION ステートメントについては、この規則の例外が作成されますが、サポートされる拡張機能についてのみです。

  • カスタム バックグラウンド ワーカー

  • Cloud Shell の psql クライアントは、\c コマンドを使用した、異なるデータベースへの接続などの、再接続が必要な操作をサポートしていません。

大きな相違点

Cloud SQL for SQL Server

特長

  • クラウド内のフルマネージド SQL Server データベースです。
  • 最大 624 GB の RAM と 96 個の CPU を搭載するカスタム マシンタイプ。
  • 最大 30 TB までのストレージ。必要に応じて、ストレージを自動的に増やすことができます。
  • Google Cloud Console でインスタンスを作成、管理します。
  • インスタンスは米国、EU、アジア、オーストラリアで利用できます。
  • Google の内部ネットワーク、データベース テーブル、一時ファイル、バックアップでは、顧客データは暗号化されます。
  • Cloud SQL Proxy または SSL / TLS プロトコルで安全な外部接続をサポートします。
  • BAK ファイルと SQL ファイルを使用してデータベースをインポートします。
  • BAK ファイルを使用してデータベースをエクスポートします。
  • 自動またはオンデマンドでバックアップを行います。
  • インスタンス クローンの作成。
  • Stackdriver Logging / Monitoring との統合
  • レプリケーションやその他のジョブを容易にする SQL Server エージェントが有効になりました。
  • インスタンスの作成時にデータベースのデフォルトの照合を設定します。

Cloud SQL で使用できない SQL Server の機能

Cloud SQL で使用できない一般的な機能

  • SQL Server Reporting Services(SSRS)
  • SQL Server Analysis Services(SSAS)。ただし Compute Engine または Cloud SQL に接続する自己管理型環境は使用できます。
  • SQL Server Integration Services(SSIS)。ただし Compute Engine または Cloud SQL に接続する自己管理型環境は使用できます。
  • AD 認証
  • SP_Configure の設定。ただし、データベース フラグの構成を参照してください。
  • ストレッチ データベース
  • Microsoft Azure Blob ストレージへのバックアップ
  • バッファプール拡張
  • BULK INSERT と OPENROWSET(BULK...)の機能
  • データ品質サービス
  • データベース ログのシッピング
  • Always On 可用性グループ
  • データベース メール
  • 分散トランザクション コーディネーター(MSDTC)
  • ファイル テーブル
  • FILESTREAM のサポート
  • メンテナンス プラン
  • パフォーマンス データ コレクタ
  • ポリシーベースの管理
  • PolyBase
  • 機械学習と R Services(インストールするには OS アクセスが必要です)
  • リソース ガバナー
  • SQL Server Audit
  • サーバーレベルのトリガー
  • Service Broker エンドポイント
  • T-SQL エンドポイント(CREATE ENDPOINT を使った操作はすべて使用不可です)
  • WCF Data Services
  • CDC - 変更データ キャプチャ
  • sysadmin ロールと、このロールが必要なシステム ストアド プロシージャ

Cloud SQL で使用できないその他の操作

  • ADMINISTER BULK OPERATIONS
  • ALTER ANY CREDENTIAL
  • ALTER ANY EVENT NOTIFICATION
  • ALTER ANY EVENT SESSION
  • ALTER ANY SERVER AUDIT
  • ALTER RESOURCES
  • ALTER SETTINGS
  • AUTHENTICATE SERVER
  • CONTROL_SERVER
  • CREATE DDL EVENT NOTIFICATION
  • CREATE ENDPOINT
  • CREATE TRACE EVENT NOTIFICATION
  • EXTERNAL ACCESS ASSEMBLY
  • RESTORE
  • SHUTDOWN
  • CLR ASSEMBLIES

サポートされる構文

Cloud SQL for SQL Server は、Transact-SQL syntax をサポートしています。

サポートされている言語

Cloud SQL for SQL Server は、Java、Python、PHP、Node.js、Go、Ruby で記述されたフレキシブル環境で実行される App Engine アプリケーションで使用できます。

Cloud SQL for SQL Server インスタンスに接続する方法

以下から SQL Server の Cloud SQL インスタンスに接続できます。

限定公開の Google アクセスを使用した Cloud SQL への接続はサポートされていません。