All Products
Search
Document Center

PolarDB:Menghubungkan ke jaringan basis data global

Last Updated:Jun 21, 2026

Jaringan basis data global (GDN) terdiri dari beberapa kluster PolarDB yang ditempatkan di berbagai wilayah. Topik ini menjelaskan cara melihat titik akhir kluster GDN dan menghubungkannya.

Pemisahan baca/tulis dan perutean permintaan

Perutean permintaan baca dan tulis ke kluster (kluster utama dan kluster sekunder) dalam GDN ditentukan oleh konfigurasi database proxy masing-masing kluster. Anda tidak perlu memodifikasi kode aplikasi—cukup hubungkan ke alamat kluster yang bersangkutan, dan permintaan baca/tulis akan dirutekan secara otomatis berdasarkan logika berikut:

  • Database proxy secara otomatis meneruskan permintaan tulis, seperti pernyataan INSERT, UPDATE, dan DELETE, sintaks broadcast lainnya seperti pernyataan SET, serta semua permintaan dalam transaksi ke node utama kluster utama untuk diproses.

  • Secara default, database proxy merutekan permintaan baca ke node read-only kluster sekunder lokal untuk akses lokal. Jika session consistency diaktifkan, beberapa permintaan baca juga dapat dirutekan ke node utama kluster utama untuk memastikan konsistensi data.

Catatan

Saat sebuah aplikasi terhubung ke titik akhir kluster sekunder, aturan perutean yang sama tetap berlaku. Setelah klien membuat koneksi dengan database proxy, proxy tersebut membuat dan mempertahankan koneksi backend dari kluster sekunder ke node utama kluster utama. Apakah koneksi ini dibuat sebelumnya atau tidak bergantung pada konfigurasi database proxy. Tautan dari kluster sekunder ke node utama sering kali merupakan koneksi cross-region. Untuk aplikasi dengan koneksi singkat, pembuatan koneksi cross-region yang sering dapat menurunkan performa akibat fluktuasi jaringan. Dalam skenario ini, kami merekomendasikan agar Anda mengaktifkan On-demand Connections untuk database proxy kluster sekunder. Untuk informasi selengkapnya, lihat Konfigurasi database proxy.

Selain itu, GDN menyediakan nama domain global, yang tidak hanya memungkinkan akses terdekat tetapi juga tetap tidak berubah setelah terjadi switchover kluster utama.

Logika perutean detail

Node tujuan

Permintaan yang diteruskan

Hanya diteruskan ke node utama kluster utama

  • Semua operasi DML, seperti INSERT, UPDATE, DELETE, dan SELECT FOR UPDATE.

  • Semua operasi DDL, seperti membuat, menghapus, atau mengubah tabel atau database, serta mengelola izin.

  • Semua permintaan dalam transaksi.

  • Fungsi yang ditentukan pengguna.

  • Prosedur tersimpan.

  • Pernyataan EXECUTE.

  • Multi Statements.

  • Permintaan yang menggunakan tabel temporary.

  • SELECT last_insert_id().

  • Semua kueri dan modifikasi terhadap variabel pengguna.

  • SHOW PROCESSLIST.

  • KILL (pernyataan SQL KILL, bukan perintah KILL).

Diteruskan ke node read-only atau node utama

Catatan

Permintaan dikirim ke node utama hanya jika Primary Node Accepts Read Requests diatur ke Yes dalam konfigurasi database proxy.

  • Permintaan baca di luar transaksi.

  • Perintah COM_STMT_EXECUTE.

Selalu diteruskan ke semua node

  • Semua modifikasi terhadap variabel sistem.

  • Perintah USE.

  • Perintah COM_STMT_PREPARE.

  • Perintah seperti COM_CHANGE_USER, COM_QUIT, dan COM_SET_OPTION.

Catatan

Node utama kluster sekunder hanya digunakan untuk replikasi internal dan tidak menangani traffic baca atau tulis. Oleh karena itu, dalam tabel ini, node utama mengacu pada node utama kluster utama, dan node read-only mengacu pada node read-only kluster sekunder.

Catatan
  • Layanan pemisahan baca/tulis GDN hanya didukung untuk titik akhir kluster atau titik akhir kustom yang Read-write mode-nya diatur ke Read/Write (Automatic Read/Write Splitting).

  • Primary address dan titik akhir kustom yang Read-write mode-nya diatur ke Read-Only tidak mendukung layanan pemisahan baca/tulis GDN.

  • Untuk mengurangi potensi dampak bisnis akibat lag replikasi antara kluster utama dan kluster sekunder, kami merekomendasikan mengatur Primary Node Accepts Read Requests ke No dan Consistency Level ke Eventual Consistency (Weak) saat Anda mengonfigurasi titik akhir kluster kustom pada kluster sekunder.

  • Jika aplikasi Anda tidak dapat mentolerir lag replikasi dari kluster sekunder, kami merekomendasikan agar Anda langsung terhubung ke titik akhir kluster kluster utama.

Lihat titik akhir kluster

  1. Login 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 GDN ID/Name-nya untuk membuka halaman detail GDN.

  3. Di bagian Clusters, temukan kluster sekunder target dan klik Cluster Endpoint di kolom View untuk melihat detail titik akhir kluster.

    Catatan
    • Anda hanya dapat melihat informasi titik akhir kluster default, termasuk titik akhir Private dan Public.

    • Untuk informasi titik akhir yang lebih detail, klik Visit the Overview page of the cluster. Anda akan diarahkan ke halaman detail kluster target, tempat Anda dapat melihat lebih banyak titik akhir di bagian Database Connections.

Menghubungkan ke kluster GDN

Aplikasi di wilayah berbeda terhubung ke GDN menggunakan titik akhir kluster terdekat, sehingga memungkinkan pemisahan baca/tulis otomatis. Topik ini memberikan contoh beberapa metode koneksi umum.

Gunakan DMS untuk menghubungkan ke kluster

DMS adalah layanan manajemen data grafis dari Alibaba Cloud. Anda dapat mengelola kluster PolarDB Anda langsung di DMS tanpa menginstal alat tambahan.

  1. Buka Konsol PolarDB. Di Cluster List, klik ID kluster target untuk membuka halaman detail kluster. Di pojok kanan atas halaman, klik Log on to Database.image

  2. Masukkan database account dan database password Anda untuk kluster PolarDB for MySQL, lalu klik Log on.image

  3. Setelah login, temukan kluster PolarDB for MySQL di daftar Logged-in Instances di panel navigasi kiri.image

Gunakan client untuk menghubungkan ke kluster

Anda dapat menggunakan client apa pun yang kompatibel dengan MySQL untuk menghubungkan ke kluster PolarDB. Contoh berikut menggunakan MySQL Workbench 8.0.29.

  1. Unduh dan instal MySQL Workbench.

  2. Buka MySQL Workbench dan pilih Database > Connect to Database.

  3. Masukkan informasi koneksi dan klik OK.

    Connection dialog

    Parameter

    Deskripsi

    Contoh

    Hostname

    Titik akhir database.

    pc-2***.rwlb.rds.aliyuncs.com

    Port

    Nomor port titik akhir database.

    Catatan

    Port default adalah 3306.

    3306

    Username

    Akun database.

    polardb_mysql_user

    Password

    Password akun database.

    Pass***233

Gunakan command line untuk menghubungkan ke kluster

Jika client MySQL telah diinstal di server Anda, jalankan perintah berikut untuk menghubungkan ke kluster PolarDB for MySQL.

Sintaksis:

mysql -h<endpoint> -P<port> -u<database_username> -p<database_user_password>

Contoh:

mysql -h pc-2***.rwlb.rds.aliyuncs.com -P3306 -upolardb_mysql_user -pPass***233

Parameter

Deskripsi

Contoh

-h

Titik akhir database.

pc-2***.rwlb.rds.aliyuncs.com

-P

Nomor port titik akhir database.

Catatan
  • Port default adalah 3306.

  • Jika port adalah port default, Anda dapat menghilangkan parameter ini.

3306

-u

Akun database.

polardb_mysql_user

-p

Password akun database.

Catatan

Parameter ini wajib.

  • Jika Anda menghilangkan parameter ini, Anda akan diminta memasukkan password setelah Enter password.

  • Jika Anda menyertakan parameter ini, jangan tambahkan spasi antara -p dan password.

Pass***233

Gunakan aplikasi untuk menghubungkan ke kluster

Menghubungkan ke kluster PolarDB for MySQL sama seperti menghubungkan ke database MySQL mana pun. Ganti endpoint, port, akun, dan password dengan nilai kluster PolarDB Anda. Contoh berdasarkan bahasa:

Java

Gunakan driver MySQL JDBC dalam proyek Maven untuk menghubungkan ke kluster PolarDB for MySQL.

  1. Tambahkan dependensi driver MySQL JDBC ke file pom.xml Anda:

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.27</version>
    </dependency>
  2. Hubungkan ke kluster. Ganti <HOST>, <USER>, <PASSWORD>, <DATABASE>, <YOUR_TABLE_NAME>, dan <YOUR_TABLE_COLUMN_NAME> dengan nilai aktual Anda.

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.Statement;
    
    public class DatabaseConnection {
       public DatabaseConnection() {
       }
    
       public static void main(String[] args) {
          // Titik akhir, port, dan nama database yang akan dihubungi.
          String url = "jdbc:mysql://<HOST>:3306/<DATABASE>?useSSL=false&serverTimezone=UTC";
          // Akun database.
          String user = "<USER>";
          // Password akun database.
          String password = "<PASSWORD>";
    
          try {
             Class.forName("com.mysql.cj.jdbc.Driver");
             Connection conn = DriverManager.getConnection(url, user, password);
             Statement stmt = conn.createStatement();
             // Nama tabel data yang akan diambil.
             ResultSet rs = stmt.executeQuery("SELECT * FROM `<YOUR_TABLE_NAME>`");
    
             while(rs.next()) {
                // Nama kolom dalam tabel data yang akan diambil.
                System.out.println(rs.getString("<YOUR_TABLE_COLUMN_NAME>"));
             }
    
             rs.close();
             stmt.close();
             conn.close();
          } catch (Exception var7) {
             var7.printStackTrace();
          }
    
       }
    }

Python

Gunakan library PyMySQL dengan Python 3 untuk menghubungkan ke kluster PolarDB for MySQL.

  1. Instal library PyMySQL:

    pip3 install PyMySQL
  2. Hubungkan ke kluster. Ganti <HOST>, <USER>, <PASSWORD>, <DATABASE>, dan <YOUR_TABLE_NAME> dengan nilai aktual Anda.

    import pymysql
    
    # Parameter koneksi database
    host = '<HOST>'  # Titik akhir kluster PolarDB
    port = 3306  # Port default adalah 3306
    user = '<USER>'  # Akun database
    password = '<PASSWORD>'  # Password akun database
    database = '<DATABASE>'  # Nama database yang akan dihubungi
    
    try:
        # Buat koneksi database
        connection = pymysql.connect(
            host=host,
            port=port,
            user=user,
            passwd=password,
            db=database
        )
    
        # Dapatkan cursor
        with connection.cursor() as cursor:
            # Jalankan kueri SQL
            sql = "SELECT * FROM `<YOUR_TABLE_NAME>`"  # Nama tabel data yang akan diambil
            cursor.execute(sql)
    
            # Dapatkan hasil kueri
            results = cursor.fetchall()
            for row in results:
                print(row)
    
    finally:
        # Tutup koneksi database
        if 'connection' in locals() and connection.open:
            connection.close()
    

Go

Gunakan paket database/sql dan driver go-sql-driver/mysql (Go 1.23.0) untuk menghubungkan ke kluster PolarDB for MySQL.

  1. Instal driver go-sql-driver/mysql:

    go get -u github.com/go-sql-driver/mysql
  2. Hubungkan ke kluster. Ganti <HOST>, <USER>, <PASSWORD>, <DATABASE>, dan <YOUR_TABLE_NAME> dengan nilai aktual Anda.

    package main
    
    import (
        "database/sql"
        "fmt"
        "log"
        _ "github.com/go-sql-driver/mysql"
    )
    
    func main() {
        // Parameter koneksi database
        dbHost := "<HOST>"       // Titik akhir kluster PolarDB
        dbPort := "3306"         // Port default adalah 3306
        dbUser := "<USER>"       // Akun database
        dbPass := "<PASSWORD>"   // Password akun database
        dbName := "<DATABASE>"   // Nama database yang akan dihubungi
    
        // Bangun Data Source Name (DSN)
        dsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=True&loc=Local", dbUser, dbPass, dbHost, dbPort, dbName)
    
        // Buka koneksi database
        db, err := sql.Open("mysql", dsn)
        if err != nil {
            log.Fatalf("Gagal menghubungkan ke database: %v", err)
        }
        defer db.Close()
    
        // Uji koneksi
        err = db.Ping()
        if err != nil {
            log.Fatalf("Gagal ping database: %v", err)
        }
    
        // Buat cursor
        var result string
        err = db.QueryRow("SELECT VERSION()").Scan(&result)
        if err != nil {
            log.Fatalf("Gagal menjalankan kueri: %v", err)
        }
    
        // Cetak versi database
        fmt.Printf("Terhubung ke database, versi: %s\n", result)
    
        // Jalankan kueri SQL
        rows, err := db.Query("SELECT * FROM `<YOUR_TABLE_NAME>`") // Nama tabel data yang akan diambil
        if err != nil {
            log.Fatalf("Gagal menjalankan kueri: %v", err)
        }
        defer rows.Close()
    }

Dokumentasi terkait

Referensi API

API

Deskripsi

DescribeDBClusterEndpoints

Menanyakan informasi tentang titik akhir kluster kluster PolarDB.

ModifyDBClusterEndpoint

Memodifikasi atribut titik akhir kluster PolarDB. Atribut tersebut mencakup mode baca/tulis, penambahan node baru otomatis, tingkat konsistensi, pemisahan transaksi, Primary Node Accepts Read Requests, dan kolam koneksi.