Mencegah wraparound ID transaksi

recommender penggunaan ID transaksi tinggi Cloud SQL secara proaktif menghasilkan rekomendasi yang membantu Anda menghindari potensi wraparound ID transaksi untuk instance PostgreSQL Cloud SQL.

Anda dapat menerapkan rekomendasi ini saat instance Cloud SQL cenderung mengalami masalah wraparound ID transaksi. Halaman ini menjelaskan cara pemberi rekomendasi penggunaan ID transaksi tinggi Cloud SQL bekerja dan cara menggunakannya.

Cara kerjanya

ID transaksi ditetapkan saat transaksi dimulai, dan ID tersebut akan dibekukan hingga transaksi dikosongkan. Pemakaian ID transaksi adalah jumlah transaksi yang tidak di-vacuum (ditetapkan dikurangi dibekukan) yang dinyatakan sebagai pecahan dari nilai maksimum 2 miliar. Pada setelan PostgreSQL default, dengan proses vacuum yang berjalan optimal dan tanpa gangguan, sebagian besar database mengalami pemanfaatan ID transaksi di region sekitar 10%. Tingkat penggunaan ID transaksi yang lebih tinggi dapat diamati di database yang sibuk, karena beban kerja reguler sering kali lebih diutamakan daripada vacuum. Jika kecenderungan penggunaan ID transaksi menuju nilai yang sangat tinggi (80% atau lebih), database mungkin berisiko kehabisan ID transaksi. Pemakaian ID transaksi yang mencapai 100% disebut sebagai wraparound ID transaksi. Setelah persentase penggunaan ID transaksi mencapai 100%, PostgreSQL berhenti menerima penulisan kueri.

Pemberi rekomendasi pemanfaatan ID transaksi tinggi Cloud SQL menganalisis pemanfaatan ID transaksi pada instance PostgreSQL Cloud SQL.

Jika persentase penggunaan ID transaksi lebih dari atau sama dengan 80%, sebaiknya ambil tindakan untuk menghindari penutup ID transaksi.

Harga

Rekomendasi penggunaan ID transaksi tinggi Cloud SQL berada dalam Tingkat harga pemberi rekomendasi Standar.

Sebelum memulai

Sebelum Anda dapat melihat rekomendasi dan insight, lakukan tindakan berikut:

  • Agar mendapatkan izin untuk melihat dan bekerja dengan insight dan rekomendasi, pastikan Anda memiliki peran yang diperlukan.
    Tugas Peran
    Melihat rekomendasi Salah satu peran berikut: recommender.cloudsqlViewer atau cloudsql.viewer.
    Menerapkan rekomendasi Salah satu dari peran berikut: recommender.cloudsqlAdmin, cloudsql.editor, atau cloudsql.admin.
    Untuk informasi selengkapnya tentang peran, lihat memahami peran dan memberikan izin IAM.
  • Enable the Recommender API.

    Enable the API

Daftar rekomendasi Peningkatan Performa Instance

Anda dapat membuat daftar rekomendasi Tingkatkan Performa Instance menggunakan Google Cloud Console, gcloud CLI, atau Recommender API.

Rekomendasi performa instance yang meningkat hanya ditampilkan jika Anda memiliki instance yang mendekati batas ID transaksi.

Konsol

Untuk membuat daftar rekomendasi tentang performa instance menggunakan Konsol Google Cloud, ikuti langkah-langkah berikut:

  1. Buka halaman Instance Cloud SQL.

    Buka Instance Cloud SQL

  2. Klik Lihat semua di banner rekomendasi Cegah wraparound ID transaksi.

Atau, ikuti langkah berikut:

  1. Buka Hub Rekomendasi. Lihat juga Mulai menggunakan Hub Rekomendasi.

    Buka Hub Rekomendasi

  2. Pada card Peningkatan Performa Instance Cloud SQL, klik Tampilkan semua.

  3. Pilih instance dengan rekomendasi Cegah wraparound ID transaksi.

gcloud CLI

Untuk menampilkan daftar rekomendasi Tingkatkan Performa Instance menggunakan gcloud CLI, jalankan perintah gcloud recommender recommendations list sebagai berikut:

gcloud recommender recommendations list \
--project=PROJECT_ID \
--location=LOCATION \
--recommender=google.cloudsql.instance.PerformanceRecommender \
--filter=recommenderSubtype=POSTGRES_HIGH_TRANSACTION_ID_UTILIZATION_BEST_PRACTICE

Ganti kode berikut:

  • PROJECT_ID: project ID Anda
  • LOCATION: Region, seperti us-central1

API

Untuk membuat daftar rekomendasi Tingkatkan Performa Instance menggunakan Recommendations API, panggil metode recommendations.list seperti berikut:

GET https://recommender.googleapis.com/v1beta1/projects/PROJECT-ID/locations/LOCATION/recommenders/google.cloudsql.instance.PerformanceRecommender.PostgresHighTransactionIdUtilizationBestPractice/recommendations

Ganti kode berikut:

  • PROJECT_ID: ID Project Anda.
  • LOCATION: Region, seperti us-central1.

Jika pemberi rekomendasi mendeteksi instance dengan penggunaan ID transaksi yang tinggi, pemberi rekomendasi akan mencantumkannya dalam tabel yang berisi rekomendasi performa lainnya. Setiap baris menampilkan ID instance, rekomendasi singkat, mesin database, lokasi, dan tanggal pembaruan terakhir.

Lihat insight dan rekomendasi mendetail

Anda dapat melihat insight dan rekomendasi mendetail tentang instance yang cenderung mendekati sampul ID transaksi menggunakan Konsol Google Cloud, gcloud CLI, atau Recommender API.

Konsol

Untuk melihat insight dan rekomendasi mendetail tentang instance yang mendekati nilai minimum performa menggunakan Konsol Google Cloud, klik link rekomendasi dalam daftar instance.

gcloud CLI

Untuk melihat insight dan rekomendasi mendetail tentang instance yang mendekati nilai minimum performa menggunakan gcloud CLI, jalankan perintah gcloud recommender insights list seperti berikut:

gcloud recommender insights list \
--project=PROJECT_ID \
--location=LOCATION \
--insight-type=google.cloudsql.instance.PerformanceInsight \
--filter=insightSubtype=POSTGRES_HIGH_TRANSACTION_ID_UTILIZATION

Ganti kode berikut:

  • PROJECT_ID: ID Project Anda.
  • LOCATION: Region, seperti us-central1.

API

Untuk melihat insight dan rekomendasi mendetail tentang instance yang mendekati nilai minimum performa menggunakan Recommendations API, panggil metode insights.list sebagai berikut:

GET https://recommender.googleapis.com/v1beta1/projects/PROJECT-ID/locations/LOCATION/insightTypes/google.cloudsql.instance.PerformanceRecommender.PostgresHighTransactionIdUtilization/insights

Ganti kode berikut:

  • PROJECT_ID: ID Project Anda.
  • LOCATION: Region, seperti us-central1.

Tabel berikut berisi daftar insight dan rekomendasi yang dihasilkan oleh rekomendasi pemanfaatan ID transaksi tinggi Cloud SQL. Subjenis terlihat di hasil gcloud CLI dan API.

Insight Rekomendasi
Persentase penggunaan ID transaksi pada instance ini tinggi dan mendekati 100%.
Subjenis: POSTGRES_HIGH_TRANSACTION_ID_UTILIZATION
Hindari wrapper ID transaksi potensial untuk instance Cloud SQL.
Subjenis: POSTGRES_HIGH_TRANSACTION_ID_UTILIZATION_BEST_PRACTICE

Menerapkan rekomendasi

Evaluasi rekomendasi dengan cermat dan lakukan salah satu tindakan berikut:

  • Untuk memeriksa rekomendasi, klik Lihat instance. Lihat Mengoptimalkan performa instance atau Mencegah sampul ID transaksi dan mengikuti rekomendasinya.

  • Untuk menolak rekomendasi agar tidak ditekankan dan tampak redup, klik Tolak.

  • Untuk menutup panel tanpa menerapkan atau menolak rekomendasi, klik Batal.

Mengoptimalkan performa instance Anda

Untuk mengatasi masalah akhir wraparound ID transaksi pada instance, lakukan langkah berikut:

  1. Temukan database dan tabel yang menyebabkan penyelesaian wraparound.

  2. Pelajari dan tafsirkan metrik penggunaan ID transaksi di instance database Anda.

  3. Periksa ID transaksi yang macet.

  4. Hapus pemblokir VACUUM.

  5. Periksa dan percepat kecepatan VACUUM.

Untuk informasi tambahan, lihat juga postingan blog Menggunakan VACUUM untuk mempercepat pembekuan ID transaksi di Cloud SQL untuk PostgreSQL.

Mencegah wraparound ID transaksi

Untuk mencegah wrapper ID transaksi untuk sebuah instance, jalankan perintah berikut:

SELECT * FROM google_vacuum_mgmt.pg_fix_wraparound();

Contoh output:

postgres=> select * from google_vacuum_mgmt.pg_fix_wraparound();
-[ RECORD 1 ]-----+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
issue_description | Gemini has detected an open prepared transaction on your instance which is blocking vacuum. Monitor the transaction ID utilization and commit or rollback the transaction, as needed.
query             | ROLLBACK PREPARED 'trx_id_pin'; or COMMIT PREPARED 'trx_id_pin';
recommendation    | To commit a prepared transaction, you must be connected as the same user that originally executed the transaction: postgres
insights          | Transaction ID Utilization: 88.49%

Langkah selanjutnya