すべてのプロダクト
Search
ドキュメントセンター

PolarDB:グローバルデータベースネットワークへの接続

最終更新日:Aug 27, 2026

Global Database Network (GDN) に接続するには、アプリケーションをリージョンに基づいて最も近いクラスターエンドポイントに接続します。GDN は自動的に読み書き分離を実行します。通常、読み取りリクエストはローカルクラスターにルーティングされ、書き込みリクエストはプライマリクラスターに転送されます。

リクエストルーティング

各クラスターのデータベースプロキシの設定によって、リクエストルーティングが決定されます。アプリケーションの変更は不要です。クラスターのエンドポイントに接続するだけで、リクエストは自動的にルーティングされます。

  • 書き込みリクエスト (INSERT、UPDATE、DELETE) およびトランザクション内のリクエストは、プライマリクラスターのプライマリノードにルーティングされます。

  • 読み取りリクエストは、デフォルトでローカルのセカンダリクラスターの読み取り専用ノードにルーティングされます。セッション一貫性が有効になっている場合、一部の読み取りリクエストはプライマリクラスターのプライマリノードにルーティングされることがあります。

クリックして転送ロジックの詳細を表示

ターゲットノード

転送されるリクエスト

プライマリクラスターのプライマリノードにのみ送信

  • DML 操作 (INSERT、UPDATE、DELETE など)

  • DDL 操作 (テーブルやデータベースの作成・削除、テーブルスキーマの変更など)

  • SHOW コマンド

  • BEGIN や COMMIT などのトランザクション関連コマンド

  • LISTEN、UNLISTEN、NOTIFY コマンド

  • ANALYZE コマンド

  • 2 フェーズコミットプロトコルコマンド

  • トランザクション内のリクエスト (動作はトランザクション分割の設定によって異なる場合があります)

  • 関数の定義と呼び出し (動作はユーザー定義関数のルーティングルールの設定によって異なる場合があります)

  • 一時テーブルを使用するリクエスト

  • 複数ステートメント Multi Statements

  • 書き込みリクエストを含む PREPARE ステートメント

読み取り専用ノードまたはプライマリノードに送信

  • トランザクション外の読み取りリクエスト

  • EXPLAIN コマンド

  • 読み取りリクエストを含む PREPARE ステートメント

常にすべてのノードに送信

  • USE コマンド

  • DISCARD および DEALLOCATE コマンド

説明
  • GDN の読み書き分離をサポートするのは、読み書きモード が [読み書き (読み書き自動分離)] に設定されているクラスターエンドポイントまたはカスタムエンドポイントのみです。

  • プライマリアドレス と、読み書きモード を 読み取り専用 に設定したカスタムエンドポイントは、GDN 読み書き分離をサポートしません。

  • プライマリクラスターとセカンダリクラスター間のレプリケーション遅延がビジネスに与える潜在的な影響を軽減するには、セカンダリクラスターでカスタムクラスターエンドポイントを設定する際に、プライマリノードによる読み取りリクエストの許可 を いいえ に設定し、一貫性レベル を 最終的な整合性 (弱) に設定することをお勧めします。

クラスターエンドポイントの表示

  1. PolarDB コンソールにログインします。左側のナビゲーションペインで、[グローバルデータベースネットワーク (GDN)] をクリックします。

  2. [グローバルデータベースネットワーク (GDN)] ページで、目的の GDN を探し、その [グローバルデータベースネットワーク ID] をクリックして詳細ページに移動します。

  3. クラスターリスト セクションで、対象のセカンダリクラスターを見つけ、クラスターのエンドポイント 列の [表示] をクリックすると、ダイアログボックスにクラスターエンドポイントの詳細が表示されます。

    説明
    • デフォルトクラスターについてのみ、Internal Network と Internet のエンドポイント情報を表示できます。

    • その他のエンドポイントの詳細を表示するには、クラスターの概要ページにアクセスし、 をクリックします。クラスターの詳細ページにリダイレクトされ、データベースへの接続 セクションでその他のエンドポイントを確認できます。

GDN クラスターへの接続

さまざまな方法でデータベースクラスターに接続できます。以下のセクションでは、その例を示します。

DMS を使用したクラスターへの接続

DMS は、データベース管理、セキュリティ監査、パフォーマンス最適化を提供します。 DMS で PolarDB クラスターを直接管理できます。

  1. PolarDB コンソールにログインします。クラスターリストで、クラスター ID をクリックして [基本情報] ページを開きます。右上隅にある [データベースにログイン] をクリックします。image

  2. ダイアログボックスにデータベースアカウントとパスワードを入力し、[ログイン] をクリックします。image

  3. ログイン後、左側のナビゲーションペインで[データベースインスタンス] > [接続済みインスタンス]を選択して、クラスターを管理します。image

クライアントを使用したクラスターへの接続

この手順では、pgAdmin 4 を使用して PolarDB クラスターに接続します。

  1. pgAdmin 4 クライアントをダウンロードしてインストールします。

  2. pgAdmin 4 クライアントを開き、[サーバー] を右クリックして、[登録 > サーバー...] を選択します。image

  3. [一般] タブで、接続名を設定します。[接続] タブで、接続パラメーターを設定し、[保存] をクリックします。image

    image

    パラメーター

    説明

    [ホスト名/アドレス]

    PolarDB クラスターのクラスターエンドポイントとポート。

    • ECS インスタンスから PolarDB クラスターにアクセスし、その ECS インスタンスが PolarDB クラスターと同じ VPC 内にある場合は、[プライベート] エンドポイントとポートを指定します。

    • オンプレミス環境から PolarDB クラスターにアクセスするには、[パブリック] エンドポイントとポートを指定します。

    • デフォルトのポート番号は 5432 です。

    [ポート]

    [ユーザー名]

    PolarDB クラスターのデータベースアカウントとパスワード。

    [パスワード]

  4. 接続に成功すると、次のページが表示されます。image

    説明

    postgres はデフォルトのシステムデータベースです。 このデータベースではいかなる操作も行わないでください。

psql を使用したクラスターへの接続

PostgreSQL Downloads から psql をダウンロードして、PolarDB クラスターに接続できます。 PolarDB-Tools の psql を使用して PolarDB クラスターに接続することもできます。

説明
  • 接続方法は Windows と Linux で同じです。

  • 公式の psql ドキュメントで詳細な使用方法を確認できます。

構文

psql -h <host> -p <port> -U <username> -d <dbname>

パラメーター

説明

host

PolarDB クラスターのクラスターエンドポイントとポート。

  • ECS インスタンスから PolarDB クラスターにアクセスし、ECS インスタンスが PolarDB クラスターと同じ VPC 内にある場合は、[プライベート] エンドポイントとポートを指定します。

  • オンプレミス環境から PolarDB クラスターにアクセスするには、[パブリック] エンドポイントとポートを指定します。

  • デフォルトのポート番号は 5432 です

port

username

PolarDB クラスターのデータベースアカウント。

dbname

データベース名。

例

psql -h pc-xxx.rwlb.rds.aliyuncs.com -p 5432 -U testusername -d postgres

プログラミング言語でのクラスターへの接続

PolarDB for PostgreSQL クラスターへの接続は、通常の PostgreSQL データベースへの接続と同様です。クラスターエンドポイント、ポート、アカウント、パスワードを更新するだけです。

Java

Maven ベースの Java プロジェクトで PostgreSQL JDBC ドライバーを使用して、PolarDB for PostgreSQL クラスターに接続します。

  1. pom.xml ファイルに PostgreSQL JDBC ドライバーの依存関係を追加します。 サンプルコード:

    <dependency>
      <groupId>org.postgresql</groupId>
      <artifactId>postgresql</artifactId>
      <version>42.2.18</version>
    </dependency>
  2. クラスターに接続します。 <HOST>、<PORT>、<USER>、<PASSWORD>、<DATABASE>、<YOUR_TABLE_NAME>、<YOUR_TABLE_COLUMN_NAME> の各プレースホルダーを、実際のクラスター接続パラメーターに置き換えてください。

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.Statement;
    
    public class PolarDBConnection {
        public static void main(String[] args) {
            // データベースの URL、ユーザー名、パスワード。
            String url = "jdbc:postgresql://<HOST>:<PORT>/<DATABASE>";
            String user = "<USER>";
            String password = "<PASSWORD>";
    
            try {
                // PostgreSQL JDBCドライバーをロードします。
                Class.forName("org.postgresql.Driver");
                
                // 接続を確立します。
                Connection conn = DriverManager.getConnection(url, user, password);
                
                // Statement オブジェクトを作成します。
                Statement stmt = conn.createStatement();
                
                // SQLクエリを実行します。
                ResultSet rs = stmt.executeQuery("SELECT * FROM <YOUR_TABLE_NAME>");
                
                // 結果セットを処理します。
                while (rs.next()) {
                    System.out.println(rs.getString("<YOUR_TABLE_COLUMN_NAME>"));
                }
                
                // リソースを閉じます。
                rs.close();
                stmt.close();
                conn.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

Python

Python 3 の psycopg2 ライブラリを使用して、PolarDB for PostgreSQL クラスターに接続します。

  1. psycopg2 ライブラリをインストールします。

    pip3 install psycopg2-binary
  2. クラスターに接続します。 <HOST>、<PORT>、<USER>、<PASSWORD>、<DATABASE>、<YOUR_TABLE_NAME> の各プレースホルダーを、実際のクラスター接続パラメーターに置き換えてください。

    import psycopg2
    
    try:
        # 接続パラメーター
        conn = psycopg2.connect(
            host="<HOST>",  # クラスターのエンドポイント。
            database="<DATABASE>",  # データベース名。
            user="<USER>",  # ユーザー名。
            password="<PASSWORD>",  # パスワード。
            port="<PORT>"  # ポート番号。
        )
    
        # カーソルオブジェクトを作成します。
        cursor = conn.cursor()
    
        # クエリを実行します。
        cursor.execute("SELECT * FROM <YOUR_TABLE_NAME>")
    
        # すべての結果を取得します。
        records = cursor.fetchall()
        for record in records:
            print(record)
            
    except Exception as e:
        print("Error:", e)
    finally:
        # 接続を閉じます。
        if 'cursor' in locals():
            cursor.close()
        if 'conn' in locals():
            conn.close()

Go

この例では、Go 1.23.0 の database/sql パッケージと lib/pq ドライバーを使用して、PolarDB for PostgreSQL クラスターへの接続方法を説明します。なお、lib/pq は現在メンテナンスモードにあり、新規プロジェクトでは pgx などの最新ドライバーの使用が推奨されます。

  1. lib/pq ドライバーをインストールします。

    go get -u github.com/lib/pq
  2. クラスターに接続します。 <HOST>、<PORT>、<USER>、<PASSWORD>、<DATABASE>、<YOUR_TABLE_NAME> の各プレースホルダーを、実際のクラスター接続パラメーターに置き換えてください。

    package main
    
    import (
        "database/sql"
        "fmt"
        "log"
    
        _ "github.com/lib/pq" // PostgreSQLドライバーを初期化します。
    )
    
    func main() {
        // 接続文字列の形式。
        connStr := "user=<USER> password=<PASSWORD> dbname=<DATABASE> host=<HOST> port=<PORT> sslmode=disable"
    
        // データベース接続を開きます。
        db, err := sql.Open("postgres", connStr)
        if err != nil {
            log.Fatal(err)
        }
        defer db.Close() // プログラムの終了時に接続を閉じます。
    
        // 接続をテストします。
        err = db.Ping()
        if err != nil {
            log.Fatal(err)
        }
        fmt.Println("Connected to PostgreSQL!")
    
        // クエリを実行します。
        rows, err := db.Query("SELECT * FROM <YOUR_TABLE_NAME>")
        if err != nil {
            log.Fatal(err)
        }
        defer rows.Close()
    }
    

関連 API

API

説明

DescribeDBClusterEndpoints

PolarDB クラスターの接続エンドポイント情報を取得します。

ModifyDBClusterEndpoint

PolarDB クラスターエンドポイントの読み書きモード、ノードの自動追加、一貫性レベル、トランザクション分割、プライマリノードの読み取りリクエストの受付可否、接続プーリングなどのプロパティを変更します。