Memecahkan masalah

Periksa apakah pertanyaan atau masalah Anda telah ditangani di salah satu halaman berikut:

Topik dalam halaman ini meliputi:

Pencadangan dan pemulihan

Masalah Pemecahan masalah
Anda tidak dapat melihat status operasi saat ini. Konsol Google Cloud hanya melaporkan keberhasilan atau kegagalan ketika operasi sudah selesai. dan tidak didesain untuk menampilkan peringatan atau update lainnya.

Jalankan perintah gcloud sql operations list untuk mencantumkan semua operasi untuk instance Cloud SQL yang ditentukan.

Anda ingin tahu siapa yang melakukan operasi pencadangan on demand. Antarmuka pengguna tidak menunjukkan pengguna yang memulai operasi.

Lihat di log dan filter berdasarkan teks untuk menemukan pengguna. Anda mungkin perlu menggunakan log audit untuk informasi pribadi. File log yang relevan meliputi:

  • cloudsql.googlapis.com/mysql-general.log
  • cloudsql.googleapis.com/mysql.err
  • Jika Cloud Audit Logs diaktifkan dan Anda memiliki izin yang diperlukan untuk melihatnya, cloudaudit.googleapis.com/activity mungkin juga tersedia.
Setelah instance dihapus, Anda tidak dapat membuat cadangan instance tersebut.

Setelah instance dihapus permanen, pemulihan data tidak dapat dilakukan. Namun, jika instance dipulihkan, cadangannya juga akan dipulihkan. Untuk informasi selengkapnya terkait pemulihan instance yang dihapus, lihat Cadangan pemulihan.

Jika Anda telah melakukan operasi ekspor, buat instance baru, lalu lakukan operasi impor untuk membuat ulang database. Ekspor ditulis ke Cloud Storage dan impor dibaca dari sana.

Pencadangan otomatis terhenti selama berjam-jam dan tidak dapat dibatalkan. Pencadangan dapat memakan waktu lama bergantung pada ukuran database.

Jika benar-benar perlu membatalkan operasi, Anda dapat meminta dukungan pelanggan untuk force restart instance.

Operasi pemulihan bisa gagal jika satu atau beberapa pengguna yang dirujuk dalam file dump SQL tidak ada. Sebelum memulihkan dump SQL, semua pengguna database yang memiliki objek atau diberi izin pada objek dalam database yang diekspor harus ada dalam database target. Jika tidak, operasi pemulihan akan gagal membuat ulang objek dengan kepemilikan atau izin asli.

Buat pengguna database sebelum memulihkan dump SQL.

Anda ingin meningkatkan jumlah hari untuk menyimpan pencadangan otomatis dari tujuh hari menjadi 30 hari, atau lebih. Anda dapat mengonfigurasi jumlah cadangan otomatis yang akan dipertahankan, dari 1 hingga 365. Pencadangan otomatis dipangkas secara teratur berdasarkan nilai retensi yang dikonfigurasi. Sayangnya, ini berarti cadangan yang saat ini terlihat adalah satu-satunya cadangan otomatis yang dapat Anda pulihkan.

Untuk menyimpan cadangan tanpa batas waktu, Anda dapat membuat cadangan on demand, karena cadangan tersebut tidak dihapus dengan cara yang sama seperti cadangan otomatis. Pencadangan sesuai permintaan akan tetap ada tanpa batas waktu. Artinya, pencadangan tersebut akan tetap ada hingga dihapus atau instance tempatnya dihapus. Karena jenis cadangan tersebut tidak dihapus secara otomatis, hal ini dapat mempengaruhi penagihan.

Pencadangan otomatis gagal dan Anda tidak menerima notifikasi email. Agar Cloud SQL memberitahukan status pencadangan, konfigurasi pemberitahuan berbasis log.

Membatalkan impor dan ekspor

Masalah Pemecahan masalah
Pesan error: You can't cancel operation [operation-ID] because this operation isn't in progress.

Anda mencoba membatalkan operasi impor atau ekspor yang telah selesai, gagal atau dibatalkan. Jika operasi sedang berjalan, Anda dapat membatalkannya.

Pesan error: You can't cancel operation [operation-ID] because Cloud SQL doesn't support the cancellation of an [operation-type] operation.

Cloud SQL tidak mendukung pembatalan operasi karena memiliki jenis operasi selain IMPORT atau EXPORT.

Pesan error: The [operation-type] operation isn't cancelled. Wait and retry in a few seconds.

Cloud SQL saat ini tidak dapat membatalkan operasi impor atau ekspor. Coba lagi dalam beberapa detik. Jika masalah berlanjut, hubungi Dukungan Google Cloud.

Clone

Masalah Pemecahan masalah
Cloning gagal dengan error constraints/sql.restrictAuthorizedNetworks. Operasi cloning diblokir oleh konfigurasi Authorized Networks. Authorized Networks dikonfigurasi untuk alamat IP publik di bagian Konektivitas pada konsol Google Cloud, dan cloning tidak diizinkan karena pertimbangan keamanan.

Hapus semua entri Authorized Networks dari instance Cloud SQL jika memungkinkan. Atau, buat replika tanpa entri Authorized Networks apapun.

Pesan error: Failed to create subnetwork. Couldn't find free blocks in allocated IP ranges. Please allocate new ranges for this service provider. Help Token: [help-token-id].

Anda mencoba menggunakan Konsol Google Cloud untuk meng-clone instance dengan alamat IP pribadi, tetapi Anda tidak menentukan rentang IP yang dialokasikan yang ingin digunakan dan instance sumber tidak dibuat dengan rentang yang ditentukan. Akibatnya, instance yang di-clone dibuat dalam rentang acak.

Gunakan gcloud untuk meng-clone instance dan memberikan nilai untuk parameter
--allocated-ip-range-name. Untuk informasi selengkapnya, lihat Meng-clone instance dengan IP pribadi.

Konektivitas

Masalah Pemecahan masalah
Aborted connection. Masalahnya mungkin:
  • Ketidakstabilan jaringan.
  • Tidak ada respons terhadap perintah keep-alive TCP (baik klien maupun server tidak responsif, mungkin kelebihan beban)
  • Masa pakai koneksi mesin database terlampaui dan server mengakhiri koneksi.

Aplikasi harus menoleransi kegagalan jaringan dan mengikuti praktik terbaik, seperti penggabungan koneksi dan percobaan ulang. Sebagian besar penyatuan koneksi akan menangkap error ini jika memungkinkan. Jika tidak, aplikasi akan mencoba ulang atau gagal dengan sendirinya.

Untuk percobaan ulang koneksi, sebaiknya gunakan metode berikut:

  1. Backoff eksponensial. Tingkatkan interval waktu antara setiap percobaan ulang, secara eksponensial.
  2. Tambahkan juga backoff acak.

Menggabungkan metode ini membantu mengurangi throttling.

Certificate verify failed.

Sertifikat klien telah habis masa berlakunya atau jalur ke sertifikat salah.

Buat ulang sertifikat dengan membuat ulang sertifikat.

Membuat instance

Masalah Pemecahan masalah
Pesan error: Failed to create subnetwork. Couldn't find free blocks in allocated IP ranges. Please allocate new ranges for this service provider. Tidak ada lagi alamat yang tersedia dalam rentang IP yang dialokasikan. Ada beberapa kemungkinan skenario:

  • Ukuran rentang IP yang dialokasikan untuk koneksi layanan pribadi lebih kecil dari /24.
  • Ukuran rentang IP yang dialokasikan untuk koneksi layanan pribadi terlalu kecil untuk jumlah instance Cloud SQL.
  • Persyaratan ukuran rentang IP yang dialokasikan akan lebih besar jika instance dibuat di beberapa region. Lihat ukuran rentang yang dialokasikan

Untuk mengatasi masalah ini, Anda dapat memperluas rentang IP yang dialokasikan atau mengalokasikan rentang IP tambahan ke koneksi layanan pribadi. Untuk informasi selengkapnya, lihat Mengalokasikan rentang alamat IP.

Jika menggunakan tanda --allocated-ip-range-name saat membuat instance Cloud SQL, Anda hanya dapat memperluas rentang IP yang ditentukan.

Jika Anda mengalokasikan rentang baru, pastikan alokasinya tidak tumpang tindih dengan alokasi yang ada.

Setelah membuat rentang IP baru, perbarui peering vpc dengan perintah berikut:


gcloud services vpc-peerings update \
--service=servicenetworking.googleapis.com \
--ranges=OLD_RESERVED_RANGE_NAME,NEW_RESERVED_RANGE_NAME \
--network=VPC_NETWORK \
--project=PROJECT_ID \
--force
    

Jika Anda memperluas alokasi yang sudah ada, pastikan untuk hanya menambah rentang alokasi dan tidak menguranginya. Misalnya, jika alokasi asli adalah 10.0.10.0/24, buat alokasi baru dengan minimal 10.0.10.0/23.

Secara umum, jika dimulai dari alokasi /24, mengurangi /mask sebesar 1 untuk setiap kondisi (grup jenis instance tambahan, region tambahan) adalah aturan praktis yang baik. Misalnya, jika mencoba membuat kedua grup jenis instance pada alokasi yang sama, beralih dari /24 ke /23 sudah cukup.

Setelah memperluas rentang IP yang ada, perbarui peering vpc dengan perintah berikut:


gcloud services vpc-peerings update \
--service=servicenetworking.googleapis.com \
--ranges=RESERVED_RANGE_NAME \
--network=VPC_NETWORK \
--project=PROJECT_ID
    
Pesan error: Failed to create subnetwork. Router status is temporarily unavailable. Please try again later. Help Token: [token-ID]. Coba buat instance Cloud SQL lagi.

Ekspor

Masalah Pemecahan masalah
HTTP Error 409: Operation failed because another operation was already in progress. Sudah ada operasi yang tertunda untuk instance Anda. Hanya satu operasi yang diizinkan pada satu waktu. Coba permintaan Anda setelah operasi saat ini selesai.
HTTP Error 403: The service account does not have the required permissions for the bucket. Pastikan bucket ada dan akun layanan untuk instance Cloud SQL (yang melakukan ekspor) memiliki peran Storage Object Creator (roles/storage.objectCreator) untuk memungkinkan ekspor ke bucket. Lihat Peran IAM untuk Cloud Storage.
Ekspor CSV berhasil, tetapi ekspor SQL gagal. Format CSV dan SQL melakukan ekspor secara berbeda. Format SQL mengekspor seluruh database, dan mungkin memerlukan waktu lebih lama untuk diselesaikan. Format CSV memungkinkan Anda menentukan elemen database yang akan disertakan dalam ekspor.

Gunakan ekspor CSV untuk mengekspor hal yang Anda butuhkan saja.

Ekspor memerlukan waktu terlalu lama. Cloud SQL tidak mendukung operasi sinkron serentak.

Gunakan pengurangan beban ekspor. Pada level yang tinggi, dalam pengurangan beban ekspor, bukannya mengeluarkan ekspor pada instance sumber, melainkan Cloud SQL menjalankan instance pengurangan beban untuk melakukan ekspor. Pengurangan beban ekspor memiliki beberapa keunggulan, termasuk peningkatan performa pada instance sumber dan pemblokiran operasi administratif saat ekspor sedang berjalan. Dengan pengurangan beban ekspor, total latensi dapat meningkat sebesar jumlah waktu yang diperlukan untuk memunculkan instance pengurangan beban. Umumnya, untuk ekspor yang berukuran wajar, latensi tidak signifikan. Namun, jika ekspor cukup kecil, Anda mungkin akan melihat peningkatan latensi.

Anda ingin ekspor dilakukan secara otomatis. Cloud SQL tidak menyediakan cara untuk mengotomatiskan ekspor.

Anda dapat membangun sistem ekspor otomatis Anda sendiri menggunakan produk Google Cloud seperti Cloud Scheduler, Pub/Sub, dan Cloud Functions, Produk-produk tersebut mirip dengan artikel ini yang membahas tentang mengotomatiskan pencadangan.

Eksternal utama

Masalah Pemecahan masalah
Lost connection to MySQL server during query when dumping table. Sumbernya mungkin tidak tersedia, atau file dump berisi paket yang terlalu besar.

Pastikan kabel primer eksternal tersedia untuk terhubung. Anda juga dapat mengubah nilai tanda net_read_timeout dan net_write_timeout pada instance sumber untuk menghentikan error. Untuk informasi selengkapnya tentang nilai yang diizinkan untuk tanda ini, lihat Mengonfigurasi tanda database.

Untuk mempelajari lebih lanjut cara menggunakan tanda mysqldump untuk migrasi impor terkelola, lihat Tanda sinkronisasi awal yang diizinkan dan default

Migrasi data awal berhasil, tetapi tidak ada data yang direplikasi. Salah satu kemungkinan penyebabnya adalah database sumber Anda telah menentukan flag replikasi yang menyebabkan beberapa atau semua perubahan database tidak direplikasi.

Pastikan tanda replikasi seperti binlog-do-db, binlog-ignore-db, replicate-do-db, atau replicate-ignore-db tidak ditetapkan dengan cara yang bertentangan.

Jalankan perintah show master status pada instance utama untuk melihat setelan saat ini.

Migrasi data awal berhasil tetapi replikasi data berhenti berfungsi setelah beberapa saat. Hal-hal yang sebaiknya dicoba:

  • Periksa metrik replikasi untuk instance replika Anda di bagian Cloud Monitoring pada konsol Google Cloud.
  • Error dari thread IO MySQL atau thread SQL dapat ditemukan di Cloud Logging dalam file mysql.err log.
  • Error ini juga dapat ditemukan saat menghubungkan ke instance replika. Jalankan perintah SHOW SLAVE STATUS, dan periksa kolom berikut dalam output:
    • Slave_IO_Running
    • Slave_SQL_Running
    • Last_IO_Error
    • Last_SQL_Error
mysqld check failed: data disk is full. Disk data instance replika penuh.

Tingkatkan ukuran disk instance replika. Anda dapat meningkatkan ukuran disk secara manual atau mengaktifkan peningkatan penyimpanan otomatis.

Eksternal replika

Masalah Pemecahan masalah
Pesan error: The slave is connecting ... master has purged binary logs containing GTIDs that the slave requires. Instance Cloud SQL utama memiliki pencadangan otomatis dan log biner, serta pemulihan point-in-time diaktifkan, sehingga harus memiliki cukup log agar replika dapat mengejar ketertinggalan. Namun, dalam kasus ini, meskipun log biner ada, replika tidak tahu dari baris mana harus mulai membaca.

Buat file dump baru menggunakan setelan flag yang benar, dan konfigurasi replika eksternal menggunakan file tersebut

  1. Hubungkan ke klien mysql Anda melalui instance Compute Engine.
  2. Jalankan mysqldump lalu gunakan flag --master-data=1 dan --flush-privileges.

    Penting: Jangan sertakan flag --set-gtid-purged=OFF.

    Pelajari lebih lanjut.

  3. Pastikan file dump yang baru saja dibuat berisi baris SET @@GLOBAL.GTID_PURGED='...'.
  4. Upload file dump ke bucket Cloud Storage dan konfigurasi replika menggunakan file dump.

Flag

Masalah Pemecahan masalah
Setelah mengaktifkan flag, instance akan melakukan loop antara panik dan error. Hubungi dukungan pelanggan untuk meminta penghapusan flag yang diikuti dengan hard drain. Hal ini memaksa instance untuk mulai ulang pada host yang berbeda dengan konfigurasi baru tanpa flag atau setelan yang tidak diinginkan.
Anda melihat pesan error Bad syntax for dict arg saat mencoba menetapkan flag. Parameter value yang kompleks, seperti daftar yang dipisahkan koma, memerlukan perlakuan khusus saat digunakan dengan perintah gcloud.

Ketersediaan tinggi

Masalah Pemecahan masalah
Anda tidak dapat menemukan metrik untuk failover manual. Hanya failover otomatis yang masuk ke metrik.
Penggunaan resource instance Cloud SQL (CPU dan RAM) mendekati 100%, sehingga instance ketersediaan tinggi mengalami gangguan. Ukuran mesin instance terlalu kecil untuk beban tersebut.

Edit instance untuk mengupgrade ke ukuran mesin yang lebih besar untuk mendapatkan lebih banyak CPU dan memori.

Impor

Masalah Pemecahan masalah
HTTP Error 409: Operation failed because another operation was already in progress. Sudah ada operasi yang tertunda untuk instance Anda. Hanya satu operasi yang diizinkan pada satu waktu. Coba permintaan Anda setelah operasi saat ini selesai.
Operasi impor memakan waktu terlalu lama. Terlalu banyak koneksi aktif dapat mengganggu operasi impor.

Tutup operasi yang tidak digunakan. Periksa penggunaan CPU dan memori instance Cloud SQL untuk memastikan ada banyak resource yang tersedia. Cara terbaik untuk memastikan resource maksimum untuk impor adalah dengan memulai ulang instance sebelum memulai operasi.

Mulai ulang:

  • Menutup semua koneksi.
  • Mengakhiri tugas yang mungkin menghabiskan resource.
Operasi impor bisa gagal ketika satu atau beberapa pengguna yang dirujuk dalam file dump tidak ada. Sebelum mengimpor file dump, semua pengguna database yang memiliki objek atau diberi izin pada objek dalam database yang diekspor harus ada di database target. Jika tidak, operasi impor akan gagal membuat ulang objek dengan kepemilikan atau izin asli.

Buat pengguna database sebelum mengimpor.

Operasi impor gagal dengan error bahwa tabel tidak ada. Tabel dapat memiliki dependensi kunci asing di tabel lain, dan bergantung pada urutan operasi, satu atau beberapa tabel tersebut mungkin belum ada selama operasi impor.

Hal-hal yang sebaiknya dicoba:

Tambahkan baris berikut di awal file dump:


SET FOREIGN_KEY_CHECKS=0;
  

Selain itu, tambahkan baris berikut di akhir file dump:


SET FOREIGN_KEY_CHECKS=1;
  

Setelan ini menonaktifkan pemeriksaan integritas data saat operasi impor sedang berlangsung, dan mengaktifkannya kembali setelah data dimuat. Hal ini tidak memengaruhi integritas data di database, karena data sudah divalidasi selama pembuatan file dump.

Logging

Masalah Pemecahan masalah
Log audit tidak ditemukan. Log Akses Data hanya ditulis jika operasi merupakan panggilan API berbasis pengguna yang diautentikasi yang membuat, mengubah, atau membaca data yang dibuat pengguna, atau jika operasi mengakses file konfigurasi atau metadata resource.
Informasi operasi tidak ditemukan dalam log. Anda ingin menemukan informasi selengkapnya tentang suatu operasi.

Misalnya, pengguna telah dihapus tetapi Anda tidak dapat mengetahui siapa yang melakukannya. Log menunjukkan operasi dimulai tetapi tidak memberikan informasi lebih lanjut. Anda harus mengaktifkan logging audit agar informasi identitas pribadi (PII) yang mendetail seperti ini dapat dicatat ke dalam log.

Logging menggunakan banyak kapasitas disk. Ada tiga jenis file log yang menggunakan kapasitas disk: log pengulangan, log umum, dan log biner.

Hubungkan ke database dan jalankan perintah berikut untuk mengetahui detail tentang setiap jenis:


SHOW VARIABLES LIKE 'innodb_log_file%';

SELECT ROUND(SUM(LENGTH(argument)/POW(1024,2),2)
AS GB from mysql.general_log;

SHOW BINARY LOGS;
    
File log sulit dibaca. Anda lebih suka melihat log sebagai json atau teks.Anda dapat menggunakan perintah gcloud logging read bersama dengan perintah pasca-pemrosesan linux untuk mendownload log.

Untuk mendownload log sebagai JSON:


gcloud logging read \
"resource.type=cloudsql_database \
AND logName=projects/PROJECT_ID \
/logs/cloudsql.googleapis.com%2FLOG_NAME" \
--format json \
--project=PROJECT_ID \
--freshness="1d" \
> downloaded-log.json
    

Untuk mendownload log dalam format TEXT:


gcloud logging read \
"resource.type=cloudsql_database \
AND logName=projects/PROJECT_ID \
/logs/cloudsql.googleapis.com%2FLOG_NAME" \
--format json \
--project=PROJECT_ID \
--freshness="1d"| jq -rnc --stream 'fromstream(1|truncate_stream(inputs)) \
| .textPayload' \
--order=asc
> downloaded-log.txt
   

Mengelola instance

Masalah Pemecahan masalah
Performa lambat setelah memulai ulang MySQL. Cloud SQL memungkinkan penyimpanan data ke cache dalam kumpulan buffer InnoDB. Namun, setelah mulai ulang, cache ini akan selalu kosong, dan semua operasi baca memerlukan perjalanan dua arah ke backend untuk mendapatkan data. Akibatnya, kueri bisa lebih lambat dari yang diharapkan hingga cache terisi.
Pemulihan error lambat. general_log yang besar mungkin telah terakumulasi. Anda dapat mengurangi waktu pemulihan error dengan mencegah general_log yang besar terakumulasi. Jika Anda mengaktifkan general_log, potong tabel dan hanya aktifkan general_log untuk jangka waktu yang singkat.

Anda dapat mengetahui ukuran log umum dengan terhubung ke database dan menjalankan kueri ini:

SELECT ROUND(SUM(LENGTH(argument)/POW(1024,2)),2) from mysql.general_log;
Anda ingin mengetahui apa saja yang menggunakan ruang penyimpanan. Misalnya, Anda melihat bahwa database hanya menggunakan tiga GB, tetapi menyatakan bahwa penyimpanan sedang menggunakan 14 GB. Sebagian besar ruang yang tidak digunakan oleh tabel digunakan oleh log biner dan/atau file sementara.

Hal-hal yang sebaiknya dicoba:

  • Anda dapat memeriksa penyimpanan yang ditempati oleh log biner menggunakan perintah berikut di antarmuka command line MySQL: SHOW BINARY LOGS;
  • Tabel sementara juga dapat menggunakan sejumlah besar ruang penyimpanan. Untuk memeriksa penggunaan ruang sementara, gunakan perintah berikut: SELECT * FROM INFORMATION_SCHEMA.FILES WHERE TABLESPACE_NAME='innodb_temporary'\G.
  • Perintah berikut memungkinkan Anda memeriksa ukuran log ulangi: SHOW VARIABLES LIKE 'innodb_log_file%';
  • Anda dapat memeriksa ukuran general_log, jika diaktifkan, dengan bantuan perintah berikut: SELECT ROUND(SUM(LENGTH(argument)/POW(1024,2)),2) AS GB from mysql.general_log;
  • Jika perlu, Anda dapat memotong tabel log dengan menggunakan API. Untuk mengetahui informasi selengkapnya, lihat halaman referensi instances.truncateLog.
  • Pelajari lebih lanjut cara menyetel dan mengonfigurasi log kueri lambat.
Kueri diblokir. Kueri dapat mengunci database MySQL sehingga menyebabkan semua kueri berikutnya mengalami pemblokiran/waktu tunggu.

Hubungkan ke database dan jalankan kueri ini:

SHOW PROCESSLIST.

Item pertama dalam daftar mungkin item yang memegang kunci, yang ditunggu oleh item berikutnya.

Kueri SHOW INNODB STATUS juga dapat membantu.

Anda tidak dapat menghapus log biner secara manual. Log biner tidak dapat dihapus secara manual. Log biner akan otomatis dihapus dengan pencadangan otomatis terkait, yang biasanya terjadi setelah sekitar tujuh hari.
Anda ingin mencari informasi tentang file sementara. File bernama ibtmp1 digunakan untuk menyimpan data sementara. File ini direset setelah database dimulai ulang. Untuk menemukan informasi tentang penggunaan file sementara, hubungkan ke database dan jalankan kueri berikut:

SELECT * FROM INFORMATION_SCHEMA.FILES WHERE TABLESPACE_NAME='innodb_temporary'\G

Anda ingin mengetahui tentang ukuran tabel. Informasi ini tersedia di database.

Hubungkan ke database dan jalankan kueri berikut:

SELECT TABLE_SCHEMA, TABLE_NAME, sum(DATA_LENGTH+INDEX_LENGTH)/pow(1024,2) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA NOT IN ('PERFORMANCE_SCHEMA','INFORMATION_SCHEMA','SYS','MYSQL') GROUP BY TABLE_SCHEMA, TABLE_NAME;

mysqld mendapat sinyal 11. Coba faktorkan ulang kueri agar tidak membuat terlalu banyak koneksi. Jika cara ini tidak menyelesaikan masalah, hubungi dukungan pelanggan. Sinyal 11 biasanya mewakili masalah software MySQL.

InnoDB: page_cleaner: 1000ms intended loop took 5215ms. The settings might not be optimal. Pembersih halaman tidak dapat mengikuti tingkat perubahan pada instance. Sekali per detik, pembersih halaman akan memindai kumpulan buffer untuk mencari halaman kotor yang akan dikosongkan dari kumpulan buffer ke disk. Peringatan yang Anda lihat menunjukkan bahwa ada banyak halaman kotor yang harus dikosongkan, dan perlu waktu lebih dari satu detik untuk mengosongkan satu batch halaman tersebut ke disk.

Lakukan sharding pada instance jika memungkinkan. Menggunakan banyak instance Cloud SQL yang lebih kecil akan lebih baik daripada satu instance besar.

Penyimpanan sementara meningkatkan penyimpanan otomatis. Penyimpanan otomatis diaktifkan.

Proses mulai ulang akan menghapus file sementara, tetapi tidak mengurangi penyimpanan. Hanya dukungan pelanggan yang dapat mereset ukuran instance.

Data sedang dihapus secara otomatis. Sebuah skrip kemungkinan besar sedang berjalan di suatu tempat di lingkungan Anda.

Periksa log di sekitar waktu penghapusan dan periksa apakah ada skrip berbahaya yang berjalan dari dasbor atau proses otomatis lainnya.

Instance tidak dapat dihapus. Anda mungkin melihat pesan error ERROR: (gcloud.sql.instances.delete) HTTP Error 409: The instance or operation is not in an appropriate state to handle the request, atau instance mungkin memiliki status flag INSTANCE_RISKY_FLAG_CONFIG.

Beberapa kemungkinan penjelasan meliputi:

  • Operasi lain sedang berlangsung. Operasi Cloud SQL tidak berjalan secara bersamaan. Tunggu hingga operasi lainnya selesai.
  • Peringatan INSTANCE_RISKY_FLAG_CONFIG dipicu setidaknya setiap kali satu flag beta digunakan. Hapus setelan flag yang berisiko dan mulai ulang instance
Instance macet karena ukuran data sementara yang besar. Sistem dapat membuat banyak tabel sementara sekaligus, bergantung pada kueri dan beban.

Sayangnya, Anda tidak dapat mengecilkan file ibtmp1 dengan metode apa pun selain memulai ulang layanan.

Salah satu opsi mitigasi adalah membuat tabel sementara dengan ROW_FORMAT=COMPRESSED, sehingga tabel tersebut disimpan dalam tablespace file per tabel di direktori file sementara. Namun, kelemahannya adalah biaya performa yang terkait dengan pembuatan dan penghapusan tablespace file per tabel untuk setiap tabel sementara.

Terjadi error fatal selama upgrade berlangsung. Log mungkin menampilkan lebih banyak data. Meskipun begitu, dukungan pelanggan mungkin diperlukan untuk membuat ulang instance secara paksa.
Instance macet saat memulai ulang setelah kehabisan kapasitas disk. Kemampuan peningkatan penyimpanan otomatis tidak diaktifkan.

Jika penyimpanan instance habis, dan kemampuan peningkatan penyimpanan otomatis tidak diaktifkan, instance Anda akan offline. Untuk menghindari masalah ini, Anda dapat mengedit instance untuk mengaktifkan peningkatan penyimpanan otomatis.

Instance utama lokal Anda terhambat. Google Cloud tidak dapat membantu instance yang tidak ada di Cloud SQL.
Penonaktifan berjalan lambat saat memulai ulang. Saat suatu instance dimatikan, semua koneksi yang belum selesai dan tidak berakhir dalam 60 detik akan mengakibatkan proses penonaktifan berantakan.

Dengan memiliki koneksi yang dapat bertahan kurang dari 60 detik, sebagian besar penonaktifan yang berantakan dapat dihindari, termasuk koneksi dari command prompt database. Jika Anda membiarkan koneksi ini terbuka selama berjam-jam atau bahkan berhari-hari, maka proses penonaktifan bisa jadi berantakan.

Pengguna tidak dapat dihapus. Pengguna tersebut mungkin memiliki objek dalam database yang bergantung padanya. Anda harus menghapus objek tersebut atau mengalihkannya ke pengguna lain.

Cari tahu objek mana yang bergantung pada pengguna tersebut, lalu hapus atau alihkan objek tersebut ke pengguna yang berbeda.

Artikel ini membahas cara menemukan objek milik pengguna.
Kueri tertentu berjalan lambat. Kueri dapat berjalan lambat karena berbagai alasan, sebagian besar disebabkan oleh aspek database tertentu. Salah satu alasan yang dapat melibatkan Cloud SQL adalah latensi jaringan, yaitu saat resource sumber (penulis atau pembaca) dan resource tujuan (Cloud SQL) berada di region yang berbeda.

Lihat tips performa umum secara khusus.

Untuk penyisipan, update, atau penghapusan database yang berjalan lambat, pertimbangkan tindakan berikut:

  • Jika mengaktifkan flag long_query_time, Anda dapat memeriksa log untuk kueri yang lambat. Buka halaman Logs Explorer untuk project Anda, lalu jalankan kueri seperti ini:
    
    resource.type="cloudsql_database"
    resource.labels.database_id="INSTANCE-ID"
    log_name="projects/PROJECT-ID/logs/cloudsql.googleapis.com%2Fmysql-slow.log"
          

    Anda dapat mendownload log dalam format JSON atau TEXT untuk diproses secara lokal.

  • Periksa lokasi penulis dan database; mengirim data jarak jauh dapat menyebabkan latensi.
  • Periksa lokasi pembaca dan database; latensi lebih memengaruhi performa baca daripada performa tulis

Untuk mengurangi latensi, sebaiknya tempatkan resource sumber dan tujuan di region yang sama.

Memori yang habis terindikasi, tetapi diagram pemantauan tidak menampilkannya. Instance dapat gagal dan melaporkan Out of memory, tetapi Konsol Google Cloud atau diagram Cloud Monitoring tampaknya menunjukkan bahwa masih ada memori yang tersisa.

Ada faktor lain selain workload Anda yang dapat memengaruhi penggunaan memori, seperti jumlah koneksi aktif dan proses overhead internal. Meskipun begitu, hal ini tidak selalu tercantum dalam diagram pemantauan.

Pastikan instance memiliki overhead yang cukup untuk memperhitungkan workload Anda serta beberapa overhead tambahan.

Memulihkan instance yang telah dihapus. Semua data pada instance, termasuk cadangan, akan hilang secara permanen saat instance tersebut dihapus.

Untuk menyimpan data Anda, sebaiknya ekspor data ke Cloud Storage sebelum menghapus instance.

Peran Admin Cloud SQL mencakup izin untuk menghapus instance. Untuk mencegah penghapusan yang tidak disengaja, berikan peran ini hanya jika diperlukan.

Anda ingin mengganti nama instance Cloud SQL yang ada. Cloud SQL tidak mendukung penggantian nama instance yang sudah ada.

Namun, ada cara lain untuk mencapai tujuan tersebut, yaitu dengan membuat instance baru.

  • Anda dapat meng-clone instance yang ingin diganti namanya dan menetapkan nama baru untuk instance yang di-clone. Cara ini memungkinkan Anda membuat instance baru tanpa harus mengimpor data secara manual. Sama seperti saat membuat instance baru, instance yang di-clone akan memiliki alamat IP baru.
  • Anda dapat mengekspor data dari instance ke dalam bucket Cloud Storage, membuat instance baru dengan nama baru yang diinginkan, lalu mengimpor data ke dalam instance baru tersebut.

Dalam kedua kasus seperti itu, Anda dapat menghapus instance lama setelah operasi selesai. Sebaiknya gunakan rute clone karena tidak akan berdampak pada performa dan tidak mengharuskan Anda mengulang langkah setelan konfigurasi instance apa pun seperti flag, jenis mesin, ukuran penyimpanan, dan memori.

Terjadi error saat menghapus instance. Jika perlindungan penghapusan diaktifkan, konfirmasi rencana Anda untuk menghapus instance tersebut. Selanjutnya, nonaktifkan perlindungan penghapusan sebelum menghapus instance.

Replikasi

Masalah Pemecahan masalah
Replika baca tidak mulai direplikasi pada saat pembuatan. Mungkin ada error yang lebih spesifik di file log. Periksa log di Cloud Logging untuk menemukan error yang sebenarnya.
Tidak dapat membuat replika baca - error invalidFlagValue. Salah satu tanda dalam permintaan tidak valid. Ini bisa berupa tanda yang Anda berikan secara eksplisit atau tanda yang ditetapkan ke nilai default.

Pertama, pastikan nilai tanda max_connections lebih besar dari atau sama dengan nilai pada tanda utama.

Jika flag max_connections sudah ditetapkan dengan tepat, periksa log di Cloud Logging untuk menemukan error yang sebenarnya.

Tidak dapat membuat replika baca - error tidak diketahui. Mungkin ada error yang lebih spesifik di file log. Periksa log di Cloud Logging untuk menemukan error yang sebenarnya.

Jika error-nya adalah: set Service Networking service account as servicenetworking.serviceAgent role on consumer project, makan nonaktifkan dan aktifkan kembali Service Networking API. Tindakan ini akan membuat akun layanan yang diperlukan untuk melanjutkan prosesnya.

Disk penuh. Ukuran disk instance utama dapat penuh selama pembuatan replika. Edit instance utama untuk mengupgradenya ke ukuran disk yang lebih besar.
Instance replika menggunakan terlalu banyak memori. Replika menggunakan memori sementara untuk meng-cache operasi baca yang sering diminta, yang dapat menyebabkannya menggunakan lebih banyak memori daripada instance utama.

Mulai ulang instance replika untuk mengklaim kembali ruang memori sementara.

Replikasi dihentikan. Batas penyimpanan maksimum tercapai dan peningkatan penyimpanan otomatis tidak diaktifkan.

Edit instance untuk mengaktifkan automatic storage increase.

Jeda replikasi selalu tinggi. Beban tulis terlalu tinggi untuk ditangani replika. Kelambatan replikasi terjadi saat thread SQL pada replika tidak dapat mengikuti thread IO. Beberapa jenis kueri atau beban kerja dapat menyebabkan kelambatan replikasi tinggi yang bersifat sementara atau permanen untuk skema tertentu. Beberapa penyebab umum kelambatan replikasi adalah:
  • Kueri lambat pada replika. Temukan dan perbaiki.
  • Semua tabel harus memiliki kunci utama/unik. Setiap update pada tabel tersebut tanpa kunci utama/unik akan menyebabkan pemindaian tabel penuh pada replika tersebut.
  • Kueri seperti DELETE ... WHERE field < 50000000 menyebabkan kelambatan replikasi dengan replikasi berbasis baris karena sejumlah besar update tertumpuk di replika.

Beberapa kemungkinan solusinya mencakup:

Kelambatan replikasi tiba-tiba melonjak. Hal ini disebabkan oleh transaksi yang berjalan lama. Saat sebuah transaksi (satu pernyataan atau beberapa pernyataan) di-commit pada instance sumber,on waktu mulai transaksi dicatat dalam log biner. Saat menerima peristiwa binlog ini, replika akan membandingkan stempel waktu tersebut dengan stempel waktu saat ini untuk menghitung kelambatan replikasi. Oleh karena itu, transaksi yang berjalan lama pada sumber akan langsung mengakibatkan kelambatan replikasi yang besar pada replika. Jika jumlah perubahan baris dalam transaksi besar, replika juga akan menghabiskan waktu lama untuk menjalankannya. Selama waktu tersebut, kelambatan replikasi meningkat. Setelah replika menyelesaikan transaksi ini, periode untuk mengejar ketertinggalan akan bergantung pada beban kerja tulis pada sumber dan kecepatan pemrosesan replika.

Untuk menghindari transaksi yang panjang, beberapa solusi yang memungkinkan mencakup:

  • Memecah transaksi menjadi beberapa transaksi kecil
  • Memotong satu kueri tulis besar menjadi beberapa batch yang lebih kecil
  • Cobalah untuk memisahkan kueri SELECT yang panjang dari transaksi yang dicampur dengan DML
Mengubah tanda replikasi paralel akan menghasilkan error. Nilai yang salah ditetapkan untuk salah satu atau beberapa tanda ini.

Pada instance utama yang menampilkan pesan error, tetapkan tanda replikasi paralel:

  1. Ubah tanda binlog_transaction_dependency_tracking dan transaction_write_set_extraction:
    • binlog_transaction_dependency_tracking=COMMIT_ORDER
    • transaction_write_set_extraction=OFF
  2. Tambahkan tanda slave_pending_jobs_size_max:

    slave_pending_jobs_size_max=33554432

  3. Ubah tanda transaction_write_set_extraction:

    transaction_write_set_extraction=XXHASH64

  4. Ubah tanda binlog_transaction_dependency_tracking:

    binlog_transaction_dependency_tracking=WRITESET

Pembuatan replika gagal dengan waktu tunggu. Transaksi tanpa komitmen yang berjalan lama pada instance utama dapat menyebabkan pembuatan replika baca gagal.

Buat ulang replika setelah menghentikan semua kueri yang berjalan.