全部产品
Search
文档中心

PolarDB:Hubungkan ke Jaringan Basis Data Global

更新时间:Nov 05, 2025

Jaringan Basis Data Global (GDN) adalah jaringan dari beberapa kluster PolarDB yang tersebar di berbagai wilayah. Topik ini menjelaskan cara melihat titik akhir kluster GDN dan cara menghubungkannya.

Pemisahan baca/tulis dan pengarahan permintaan

Pengarahan permintaan baca dan tulis ke kluster dalam GDN ditentukan oleh konfigurasi proksi database setiap kluster. Aplikasi Anda tidak memerlukan perubahan kode. Cukup hubungkan ke titik akhir kluster yang sesuai, dan permintaan akan secara otomatis diarahkan berdasarkan logika berikut:

  • Permintaan tulis seperti INSERT, UPDATE, dan DELETE, serta sintaks siaran lainnya seperti SET, dan semua permintaan dalam transaksi, secara otomatis diteruskan ke node utama kluster utama untuk diproses.

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

GDN juga menyediakan nama domain global. Fitur ini tidak hanya memungkinkan akses terdekat tetapi juga memastikan nama domain tetap tidak berubah setelah switchover kluster utama.

Klik untuk melihat logika pengarahan 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.

  • EXECUTE pernyataan.

  • Multi Statements.

  • Permintaan yang menggunakan tabel sementara.

  • SELECT last_insert_id().

  • Semua kueri dan modifikasi variabel pengguna.

  • SHOW PROCESSLIST.

  • KILL (pernyataan, bukan perintah).

Diteruskan ke node read-only atau node utama

Catatan

Permintaan dikirim ke node utama hanya jika The Primary Node Accepts Read Requests disetel ke Yes dalam konfigurasi proksi database.

  • Permintaan baca di luar transaksi.

  • COM_STMT_EXECUTE perintah.

Selalu diteruskan ke semua node

  • Semua modifikasi variabel sistem.

  • USE perintah.

  • COM_STMT_PREPARE perintah.

  • Perintah seperti COM_CHANGE_USER, COM_QUIT, dan COM_SET_OPTION.

Catatan

Node utama dalam kluster sekunder terutama digunakan untuk replikasi data asinkron dari kluster utama dan tidak menangani permintaan baca atau tulis apa pun. Oleh karena itu, node utama dalam tabel merujuk pada node utama kluster utama, dan node read-only merujuk pada node read-only kluster sekunder.

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 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, kami sarankan ketika Anda mengonfigurasi titik akhir kluster kustom pada kluster sekunder, atur Primary Node Accepts Read Requests ke No dan atur Consistency Level ke Eventual Consistency (Weak).

  • Jika skenario bisnis Anda tidak dapat mentolerir latensi dalam kluster sekunder, hubungkan langsung ke titik akhir kluster utama.

Lihat titik akhir kluster

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

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

  3. Di bagian Clusters, temukan kluster sekunder target dan klik View di kolom Cluster Endpoint. Anda dapat melihat detail titik akhir kluster di kotak dialog yang muncul.image

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

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

Hubungkan ke kluster basis data global

Aplikasi di wilayah berbeda dapat menghubungkan ke GDN menggunakan titik akhir kluster terdekat. GDN secara otomatis melakukan pemisahan baca/tulis. Anda dapat menghubungkan ke kluster basis data dengan beberapa cara. Bagian berikut memberikan contoh metode koneksi yang berbeda.

Gunakan DMS untuk menghubungkan ke kluster

DMS adalah layanan manajemen data visual yang disediakan oleh Alibaba Cloud. DMS menyediakan berbagai layanan manajemen seperti manajemen data, manajemen skema, kontrol akses, audit keamanan, grafik intelijen bisnis (BI), tren data, pelacakan data, optimasi kinerja, dan manajemen server. Anda dapat mengelola kluster PolarDB Anda di DMS tanpa perlu menggunakan alat lain.

  1. Masuk ke Konsol PolarDB. Klik Clusters di panel navigasi di sebelah kiri. Pilih wilayah di pojok kiri atas dan klik ID kluster dalam daftar untuk masuk ke halaman Informasi Dasar. Di pojok kanan atas halaman, klik Log on to Database. image

  2. Di kotak dialog yang muncul, masukkan Database Account dan Database Password yang Anda buat untuk kluster PolarDB for MySQL, dan klik Login. image

  3. Setelah Anda masuk ke kluster PolarDB for MySQL, klik Instances Connected di panel navigasi di sebelah kiri untuk melihat dan mengelola kluster PolarDB for MySQL. image

Gunakan klien untuk menghubungkan ke kluster

Anda dapat menggunakan klien MySQL untuk menghubungkan ke kluster PolarDB. MySQL Workbench 8.0.29 digunakan dalam contoh ini. Operasi menggunakan jenis klien lain serupa.

  1. Instal MySQL Workbench. Untuk informasi lebih lanjut, kunjungi halaman unduhan MySQL Workbench.

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

  3. Masukkan informasi koneksi dan klik OK.

    连接界面

    Parameter

    Deskripsi

    Contoh

    Hostname

    Titik akhir database. Untuk informasi lebih lanjut, lihat Koneksi Database.

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

    Port

    Nomor port yang sesuai dengan titik akhir database.

    Catatan

    Nomor port default adalah 3306.

    3306

    Username

    Akun database. Untuk informasi lebih lanjut, lihat Buat akun database.

    polardb_mysql_user

    Password

    Kata sandi akun database.

    Pass***233

Gunakan CLI untuk menghubungkan ke kluster

Jika klien MySQL diinstal di server Anda, Anda dapat menjalankan perintah di CLI untuk menghubungkan ke kluster PolarDB for MySQL.

Sintaks:

mysql -h <Endpoint> -P <Port> -u <Account> -p <Password>

Contoh:

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

Parameter

Deskripsi

Contoh

-h

Titik akhir database. Untuk informasi lebih lanjut, lihat Koneksi Database.

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

-P

Nomor port yang sesuai dengan titik akhir database.

Catatan
  • Nomor port default adalah 3306.

  • Jika Anda ingin menggunakan port default, Anda tidak perlu menentukan nilai untuk parameter ini.

3306

-u

Akun database. Untuk informasi lebih lanjut, lihat Buat akun database.

polardb_mysql_user

-p

Kata sandi akun database.

Catatan

Parameter ini wajib.

  • Jika Anda tidak menentukan parameter ini, Anda diminta untuk memasukkan kata sandi lagi saat pesan Enter password ditampilkan.

  • Jika Anda menentukan parameter ini, jangan masukkan spasi antara -p dan kata sandi.

Pass***233

Gunakan aplikasi untuk menghubungkan ke kluster

Menghubungkan ke kluster PolarDB for MySQL mirip dengan menghubungkan ke database MySQL biasa. Anda hanya perlu mengganti titik akhir, port, akun, dan kata sandi database. Contoh berikut menunjukkan cara menggunakan aplikasi untuk mengakses database PolarDB dalam beberapa bahasa pengembangan:

Java

Dalam contoh ini, proyek Maven digunakan untuk menghubungkan ke kluster PolarDB for MySQL menggunakan driver JDBC MySQL.

  1. Pertama, tambahkan dependensi driver JDBC MySQL ke file pom.xml. Contoh kode:

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.27</version>
    </dependency>
  2. Hubungkan ke kluster. Ganti <HOST>, nomor port, <USER>, <PASSWORD>, <DATABASE>, <YOUR_TABLE_NAME>, dan <YOUR_TABLE_COLUMN_NAME> dengan informasi database 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 kluster PolarDB yang akan dihubungkan.
          String url = "jdbc:mysql://<HOST>:3306/<DATABASE>?useSSL=false&serverTimezone=UTC";
          // Akun database.
          String user = "<USER>";
          // Kata sandi 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 diquery.
             ResultSet rs = stmt.executeQuery("SELECT * FROM `<YOUR_TABLE_NAME>`");
    
             while(rs.next()) {
                // Nama kolom tabel data yang akan diquery.
                System.out.println(rs.getString("<YOUR_TABLE_COLUMN_NAME>"));
             }
    
             rs.close();
             stmt.close();
             conn.close();
          } catch (Exception var7) {
             var7.printStackTrace();
          }
    
       }
    }

Python

Dalam contoh ini, Python3 digunakan untuk menghubungkan ke kluster PolarDB for MySQL menggunakan library PyMySQL.

  1. Pertama, instal library PyMySQL. Anda dapat menjalankan perintah berikut untuk menginstalnya:

    pip3 install PyMySQL
  2. Hubungkan ke kluster. Ganti <HOST>, nomor port, <USER>, <PASSWORD>, <DATABASE>, dan <YOUR_TABLE_NAME> dengan informasi database Anda.

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

Go

Dalam contoh ini, Go 1.23.0 digunakan untuk menghubungkan ke kluster PolarDB for MySQL menggunakan paket database/sql dan driver go-sql-driver/mysql.

  1. Pertama, instal driver go-sql-driver/mysql. Anda dapat menjalankan perintah berikut untuk menginstal driver:

    go get -u github.com/go-sql-driver/mysql
  2. Hubungkan ke kluster. Ganti <HOST>, nomor port, <USER>, <PASSWORD>, <DATABASE>, dan <YOUR_TABLE_NAME> dengan informasi database 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 3306.
        dbUser := "<USER>" // Akun database.
        dbPass := "<PASSWORD>" // Kata sandi akun database.
        dbName := "<DATABASE>" // Nama database yang akan dihubungkan.
    
        // Buat DSN (Data Source Name)
        dsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=True&loc=Local", dbUser, dbPass, dbHost, dbPort, dbName)
    
        // Buat koneksi database.
        db, err := sql.Open("mysql", dsn)
        if err != nil {
            log.Fatalf("Gagal terhubung ke database: %v", err)
        }
        defer db.Close()
    
        // Tes 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 mengeksekusi query: %v", err)
        }
    
        // Cetak versi database.
        fmt.Printf("Terhubung ke database, versi: %s\n", result)
    
        // Eksekusi query SQL.
        rows, err := db.Query("SELECT * FROM '<YOUR_TABLE_NAME>'") // Nama tabel data yang diquery.
        if err != nil {
            log.Fatalf("Gagal mengeksekusi query: %v", err)
        }
        defer rows.Close()

Referensi

  • Jaringan Basis Data Global (GDN): Informasi tentang GDN, arsitektur layanannya, dan skenario penggunaan umum.

  • Buat nama domain global: Panduan untuk membuat alamat koneksi terpadu yang memungkinkan akses terdekat serta memastikan nama domain tetap konsisten setelah switchover kluster utama.

Operasi API terkait

API

Deskripsi

DescribeDBClusterEndpoints

Mengquery informasi titik akhir kluster PolarDB.

ModifyDBClusterEndpoint

Memodifikasi atribut 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 pengaturan kolam koneksi.