Global Database Network (GDN) に接続するには、アプリケーションをリージョンに基づいて最も近いクラスターエンドポイントに接続します。GDN は自動的に読み書き分離を実行します。通常、読み取りリクエストはローカルクラスターにルーティングされ、書き込みリクエストはプライマリクラスターに転送されます。
リクエストルーティング
各クラスターのデータベースプロキシの設定によって、リクエストルーティングが決定されます。アプリケーションの変更は不要です。クラスターのエンドポイントに接続するだけで、リクエストは自動的にルーティングされます。
-
書き込みリクエスト (
INSERT、UPDATE、DELETE) およびトランザクション内のリクエストは、プライマリクラスターのプライマリノードにルーティングされます。 -
読み取りリクエストは、デフォルトでローカルのセカンダリクラスターの読み取り専用ノードにルーティングされます。セッション一貫性が有効になっている場合、一部の読み取りリクエストはプライマリクラスターのプライマリノードにルーティングされることがあります。
-
GDN の読み書き分離をサポートするのは、読み書きモード が [読み書き (読み書き自動分離)] に設定されているクラスターエンドポイントまたはカスタムエンドポイントのみです。
-
プライマリアドレス と、読み書きモード を 読み取り専用 に設定したカスタムエンドポイントは、GDN 読み書き分離をサポートしません。
-
プライマリクラスターとセカンダリクラスター間のレプリケーション遅延がビジネスに与える潜在的な影響を軽減するには、セカンダリクラスターでカスタムクラスターエンドポイントを設定する際に、プライマリノードによる読み取りリクエストの許可 を いいえ に設定し、一貫性レベル を 最終的な整合性 (弱) に設定することをお勧めします。
クラスターエンドポイントの表示
-
PolarDB コンソールにログインします。左側のナビゲーションペインで、[グローバルデータベースネットワーク (GDN)] をクリックします。
-
[グローバルデータベースネットワーク (GDN)] ページで、目的の GDN を探し、その [グローバルデータベースネットワーク ID] をクリックして詳細ページに移動します。
-
クラスターリスト セクションで、対象のセカンダリクラスターを見つけ、クラスターのエンドポイント 列の [表示] をクリックすると、ダイアログボックスにクラスターエンドポイントの詳細が表示されます。
説明-
デフォルトクラスターについてのみ、Internal Network と Internet のエンドポイント情報を表示できます。
-
その他のエンドポイントの詳細を表示するには、クラスターの概要ページにアクセスし、 をクリックします。クラスターの詳細ページにリダイレクトされ、データベースへの接続 セクションでその他のエンドポイントを確認できます。
-
GDN クラスターへの接続
さまざまな方法でデータベースクラスターに接続できます。以下のセクションでは、その例を示します。
DMS を使用したクラスターへの接続
DMS は、データベース管理、セキュリティ監査、パフォーマンス最適化を提供します。 DMS で PolarDB クラスターを直接管理できます。
-
PolarDB コンソールにログインします。クラスターリストで、クラスター ID をクリックして [基本情報] ページを開きます。右上隅にある [データベースにログイン] をクリックします。

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

-
ログイン後、左側のナビゲーションペインでを選択して、クラスターを管理します。

クライアントを使用したクラスターへの接続
この手順では、pgAdmin 4 を使用して PolarDB クラスターに接続します。
-
pgAdmin 4 クライアントをダウンロードしてインストールします。
-
pgAdmin 4 クライアントを開き、[サーバー] を右クリックして、 を選択します。

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


パラメーター
説明
[ホスト名/アドレス]
PolarDB クラスターのクラスターエンドポイントとポート。
-
ECS インスタンスから PolarDB クラスターにアクセスし、その ECS インスタンスが PolarDB クラスターと同じ VPC 内にある場合は、[プライベート] エンドポイントとポートを指定します。
-
オンプレミス環境から PolarDB クラスターにアクセスするには、[パブリック] エンドポイントとポートを指定します。
-
デフォルトのポート番号は 5432 です。
[ポート]
[ユーザー名]
PolarDB クラスターのデータベースアカウントとパスワード。
[パスワード]
-
-
接続に成功すると、次のページが表示されます。
説明postgresはデフォルトのシステムデータベースです。 このデータベースではいかなる操作も行わないでください。
psql を使用したクラスターへの接続
PostgreSQL Downloads から psql をダウンロードして、PolarDB クラスターに接続できます。 PolarDB-Tools の psql を使用して PolarDB クラスターに接続することもできます。
-
接続方法は Windows と Linux で同じです。
-
公式の psql ドキュメントで詳細な使用方法を確認できます。
構文
psql -h <host> -p <port> -U <username> -d <dbname>
|
パラメーター |
説明 |
|
|
PolarDB クラスターのクラスターエンドポイントとポート。
|
|
|
|
|
|
PolarDB クラスターのデータベースアカウント。 |
|
|
例
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 クラスターに接続します。
-
pom.xml ファイルに PostgreSQL JDBC ドライバーの依存関係を追加します。 サンプルコード:
<dependency> <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> <version>42.2.18</version> </dependency> -
クラスターに接続します。
<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 クラスターに接続します。
-
psycopg2 ライブラリをインストールします。
pip3 install psycopg2-binary -
クラスターに接続します。
<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 などの最新ドライバーの使用が推奨されます。
-
lib/pqドライバーをインストールします。go get -u github.com/lib/pq -
クラスターに接続します。
<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 |
説明 |
|
PolarDB クラスターの接続エンドポイント情報を取得します。 |
|
|
PolarDB クラスターエンドポイントの読み書きモード、ノードの自動追加、一貫性レベル、トランザクション分割、プライマリノードの読み取りリクエストの受付可否、接続プーリングなどのプロパティを変更します。 |