全部产品
Search
文档中心

PolarDB:Terhubung ke jaringan basis data global

更新时间:Sep 30, 2025

Dalam Jaringan Basis Data Global (GDN), setiap kluster (baik kluster utama maupun sekunder) memiliki titik akhir kluster independen. Aplikasi Anda dapat terhubung ke GDN melalui titik akhir kluster terdekat berdasarkan lokasi geografisnya. GDN secara otomatis menangani pemisahan baca/tulis: permintaan tulis diteruskan ke kluster utama, sedangkan permintaan baca dilayani secara lokal.

Pemisahan baca/tulis dan pengarahan permintaan

Dalam GDN, pengarahan permintaan baca dan tulis ke kluster utama dan sekunder ditentukan oleh Konfigurasi PolarProxy dari masing-masing kluster. Tidak perlu memodifikasi kode aplikasi Anda. Saat terhubung ke titik akhir kluster, permintaan baca dan tulis diarahkan secara otomatis sebagai berikut:

  • Permintaan tulis seperti INSERT, UPDATE, dan DELETE, serta semua permintaan dalam transaksi, diteruskan ke node utama kluster utama untuk diproses.

  • Permintaan baca diarahkan secara default ke node read-only kluster sekunder lokal untuk akses dengan latensi rendah. Jika konsistensi sesi diaktifkan, beberapa permintaan baca juga dapat diarahkan ke node utama kluster utama untuk memastikan konsistensi data.

Klik untuk melihat logika pengalihan detail

Node Tujuan

Permintaan yang Diteruskan

Hanya dikirim ke node utama kluster utama

  • Operasi DML (seperti INSERT, UPDATE, dan DELETE)

  • Operasi DDL (seperti membuat atau menghapus tabel atau database, atau mengubah skema tabel)

  • Perintah SHOW

  • Perintah terkait transaksi seperti BEGIN dan COMMIT

  • Perintah LISTEN, UNLISTEN, dan NOTIFY

  • Perintah ANALYZE

  • Perintah protokol komit dua fase

  • Permintaan dalam transaksi (perilaku dapat bervariasi berdasarkan konfigurasi pemisahan transaksi)

  • Definisi dan panggilan fungsi (perilaku dapat bervariasi berdasarkan konfigurasi aturan routing fungsi yang ditentukan pengguna)

  • Permintaan yang menggunakan tabel sementara

  • Permintaan multi-pernyataan Multi Statements

  • Pernyataan PREPARE yang berisi permintaan tulis

Dikirim ke node read-only atau node utama

  • Permintaan baca di luar transaksi

  • Perintah EXPLAIN

  • Pernyataan PREPARE yang berisi permintaan baca

Selalu dikirim ke semua node

  • Perintah USE

  • Perintah DISCARD dan DEALLOCATE

Catatan
  • Hanya titik akhir kluster atau titik akhir kustom dengan Read/Write Mode disetel ke Read/Write (Automatic Read/Write Splitting) yang mendukung layanan pemisahan baca/tulis GDN.

  • Primary Endpoint dan titik akhir kustom dengan Read/Write Mode yang disetel ke Read-only tidak mendukung layanan pemisahan baca/tulis GDN.

  • Untuk mengurangi dampak potensial latensi replikasi antara kluster utama dan sekunder pada bisnis Anda, saat mengonfigurasi titik akhir kluster kustom pada kluster sekunder, atur Primary Node Accepts Read Requests ke No dan atur Consistency Level ke Eventual Consistency (Weak).

Lihat titik akhir kluster

  1. Masuk ke Konsol PolarDB. Di panel navigasi sebelah kiri, klik Global Database Network (GDN).

  2. Di halaman Global Database Network (GDN), temukan GDN target dan klik Global Database Network ID untuk masuk ke halaman detail GDN.

  3. Di bagian Clusters, temukan kluster sekunder target dan klik View di kolom Cluster Endpoint. Detail titik akhir kluster akan ditampilkan dalam kotak dialog yang muncul.image

    Catatan
    • Hanya informasi koneksi untuk titik akhir kluster default (termasuk alamat jaringan pribadi dan publik) yang ditampilkan di sini.

    • Untuk melihat lebih banyak detail titik akhir, klik View the Overview page of the cluster. Anda akan diarahkan ke halaman detail kluster target, di mana Anda dapat melihat lebih banyak titik akhir di bagian Database Connection.

Terhubung ke kluster basis data global

Aplikasi di wilayah berbeda dapat terhubung ke titik akhir kluster terdekat untuk mengakses GDN, yang secara otomatis menangani pemisahan baca/tulis. Anda dapat terhubung ke kluster basis data menggunakan salah satu cara berikut:

Gunakan DMS untuk terhubung ke kluster

Data Management (DMS) adalah alat manajemen data grafis yang disediakan oleh Alibaba Cloud. Ini menyediakan berbagai layanan manajemen data, termasuk manajemen data, manajemen skema, manajemen pengguna, audit keamanan, tren data, pelacakan data, grafik intelijen bisnis (BI), optimasi kinerja, dan manajemen server. Anda dapat mengelola kluster PolarDB langsung menggunakan DMS tanpa alat tambahan.

  1. Masuk ke Konsol PolarDB. Dalam daftar kluster, klik ID kluster yang ingin Anda hubungkan untuk masuk ke halaman Basic Information. Di sudut kanan atas halaman, klik Log On To Database.image

  2. Di kotak dialog yang muncul, masukkan akun database dan kata sandi yang Anda buat untuk kluster, lalu klik Login.image

  3. Setelah masuk ke kluster, pilih Database Instances > Instances Connected di panel navigasi sebelah kiri untuk mengelola kluster .image

Gunakan klien untuk terhubung ke kluster

Anda dapat menggunakan klien untuk terhubung ke kluster PolarDB. Prosedur berikut menggunakan klien pgAdmin 4 v9.0 untuk terhubung ke kluster.

  1. Unduh dan instal klien pgAdmin 4.

  2. Buka klien pgAdmin 4, klik kanan Servers, dan pilih Register > Server....image

  3. Di tab General, atur nama koneksi. Di tab Connection, konfigurasikan informasi koneksi kluster, lalu klik Save.image

    image

    Parameter

    Deskripsi

    Host name/address

    Titik akhir dan port kluster PolarDB.

    • Untuk mengakses kluster PolarDB dari instance ECS, dan instance ECS berada di VPC yang sama dengan kluster PolarDB, tentukan titik akhir dan port Private.

    • Untuk mengakses kluster PolarDB dari lingkungan lokal Anda, tentukan titik akhir dan port Public.

    • Nomor port default adalah 1521.

    Port

    Username

    Akun database dan kata sandi kluster PolarDB.

    Password

  4. Lihat hasil koneksi. Jika informasi koneksi benar, antarmuka berikut muncul, menunjukkan koneksi berhasil.image

    Catatan

    postgres adalah database sistem default. Jangan melakukan operasi apa pun pada database ini.

Gunakan psql untuk terhubung ke kluster

Anda dapat mengunduh psql dari Unduhan PostgreSQL untuk terhubung ke kluster PolarDB. Anda juga dapat menggunakan psql di PolarDB-Tools untuk terhubung ke kluster PolarDB.

Catatan
  • Metode koneksi kluster menggunakan psql sama untuk sistem Windows dan Linux.

  • Untuk informasi lebih lanjut tentang cara menggunakan psql, lihat psql.

Sintaks

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

Parameter

Deskripsi

host

Titik akhir kluster dan port kluster PolarDB.

  • Untuk mengakses kluster PolarDB dari instance ECS, dan instance ECS berada di VPC yang sama dengan kluster PolarDB, tentukan titik akhir dan port Private.

  • Untuk mengakses kluster PolarDB dari lingkungan lokal Anda, tentukan titik akhir dan port Public.

  • Nomor port default adalah 1521

port

username

Akun database kluster PolarDB.

dbname

Nama database.

Contoh

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

Terhubung ke kluster dalam bahasa pemrograman

Terhubung ke kluster PolarDB for PostgreSQL (Kompatibel dengan Oracle) mirip dengan menghubungkan database PostgreSQL biasa. Anda hanya perlu mengubah parameter koneksi, termasuk titik akhir, port, akun, dan kata sandi. Berikut adalah contoh cara terhubung ke kluster PolarDB dalam bahasa pemrograman tertentu.

Java

Contoh ini menjelaskan cara terhubung ke kluster PolarDB for PostgreSQL (Kompatibel dengan Oracle) menggunakan driver JDBC PostgreSQL dalam proyek Java berbasis Maven.

  1. Tambahkan dependensi driver JDBC PostgreSQL ke file pom.xml Anda. Contoh kode:

    <dependency>
      <groupId>org.postgresql</groupId>
      <artifactId>postgresql</artifactId>
      <version>42.2.18</version>
    </dependency>
  2. Terhubung ke kluster. Ganti placeholder <HOST>, <PORT>, <USER>, <PASSWORD>, <DATABASE>, <YOUR_TABLE_NAME>, dan <YOUR_TABLE_COLUMN_NAME> dengan parameter koneksi kluster yang sebenarnya.

    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 database, nama pengguna, dan kata sandi.
            String url = "jdbc:postgresql://<HOST>:<PORT>/<DATABASE>";
            String user = "<USER>";
            String password = "<PASSWORD>";
    
            try {
                // Muat driver JDBC PostgreSQL.
                Class.forName("org.postgresql.Driver");
                
                // Bentuk koneksi.
                Connection conn = DriverManager.getConnection(url, user, password);
                
                // Buat objek Statement.
                Statement stmt = conn.createStatement();
                
                // Eksekusi query SQL.
                ResultSet rs = stmt.executeQuery("SELECT * FROM <YOUR_TABLE_NAME>");
                
                // Proses hasil set.
                while (rs.next()) {
                    System.out.println(rs.getString("<YOUR_TABLE_COLUMN_NAME>"));
                }
                
                // Tutup sumber daya.
                rs.close();
                stmt.close();
                conn.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

Python

Contoh ini menjelaskan cara terhubung ke kluster PolarDB for PostgreSQL (Kompatibel dengan Oracle) menggunakan pustaka psycopg2 di Python 3.

  1. Instal pustaka psycopg2.

    pip3 install psycopg2-binary
  2. Terhubung ke kluster. Ganti placeholder <HOST>, <PORT>, <USER>, <PASSWORD>, <DATABASE>, dan <YOUR_TABLE_NAME> dengan parameter koneksi kluster yang sebenarnya.

    import psycopg2
    
    try:
        # Parameter koneksi
        conn = psycopg2.connect(
            host="<HOST>",  # Titik akhir kluster.
            database="<DATABASE>",  # Nama database.
            user="<USER>",  # Nama pengguna.
            password="<PASSWORD>",  # Kata sandi.
            port="<PORT>"  # Nomor port.
        )
    
        # Buat objek cursor.
        cursor = conn.cursor()
    
        # Eksekusi query.
        cursor.execute("SELECT * FROM <YOUR_TABLE_NAME>")
    
        # Dapatkan semua hasil.
        records = cursor.fetchall()
        for record in records:
            print(record)
            
    except Exception as e:
        print("Error:", e)
    finally:
        # Tutup koneksi.
        if 'cursor' in locals():
            cursor.close()
        if 'conn' in locals():
            conn.close()

Go

Contoh ini menjelaskan cara terhubung ke kluster PolarDB for PostgreSQL (Kompatibel dengan Oracle) menggunakan paket database/sql dan driver lib/pq di Go 1.23.0.

  1. Instal driver lib/pq.

    go get -u github.com/lib/pq
  2. Terhubung ke kluster. Ganti placeholder <HOST>, <PORT>, <USER>, <PASSWORD>, <DATABASE>, dan <YOUR_TABLE_NAME> dengan parameter koneksi kluster yang sebenarnya.

    package main
    
    import (
        "database/sql"
        "fmt"
        "log"
    
        _ "github.com/lib/pq" // Inisialisasi driver PostgreSQL.
    )
    
    func main() {
        // Format string koneksi.
        connStr := "user=<USER> password=<PASSWORD> dbname=<DATABASE> host=<HOST> port=<PORT> sslmode=disable"
    
        // Buka koneksi database.
        db, err := sql.Open("postgres", connStr)
        if err != nil {
            log.Fatal(err)
        }
        defer db.Close() // Tutup koneksi saat program keluar.
    
        // Uji koneksi.
        err = db.Ping()
        if err != nil {
            log.Fatal(err)
        }
        fmt.Println("Terhubung ke PostgreSQL!")
    
        // Eksekusi query.
        rows, err := db.Query("SELECT * FROM <YOUR_TABLE_NAME>")
        if err != nil {
            log.Fatal(err)
        }
        defer rows.Close()
    }
    

Operasi API Terkait

API

Deskripsi

DescribeDBClusterEndpoints

Mengambil informasi titik akhir dari kluster PolarDB.

ModifyDBClusterEndpoint

Memodifikasi properti titik akhir kluster PolarDB, termasuk mode baca/tulis, apakah akan menambahkan node baru ke titik akhir secara otomatis, tingkat konsistensi, pemisahan transaksi, apakah node utama menerima permintaan baca, dan kolam koneksi.