全部产品
Search
文档中心

ApsaraDB for MongoDB:Pemecahan Masalah

更新时间:Oct 22, 2025

Kesalahan tak terduga dapat mengganggu operasi kritis saat Anda mengelola instans ApsaraDB for MongoDB. Penyebabnya bisa berupa kesalahan konfigurasi sederhana seperti entri daftar putih atau string koneksi yang salah, hingga masalah kompleks spesifik untuk lingkungan terkelola, seperti keterbatasan sumber daya di zona, pembatasan tingkat API, atau kejadian failover high-availability. Panduan ini memetakan pesan kesalahan umum ke penyebabnya dan memberikan solusi praktis untuk membantu Anda menyelesaikan masalah dengan cepat, meminimalkan downtime, serta memastikan stabilitas database.

Pesan kesalahan

Penyebab dan solusi

Parameter AccountDescription yang ditentukan tidak valid.

Saat memulihkan data cadangan ke instans baru, pastikan nama instans memenuhi batas yang ditentukan.

Jumlah total shard berada di luar jangkauan.

Saat memulihkan data dari instans kluster sharded ke instans baru, pastikan instans baru memiliki jumlah shard yang sama dengan instans sumber.

Penurunan penyimpanan dbinstance tidak didukung.

ApsaraDB for MongoDB tidak mendukung pengurangan kapasitas penyimpanan instans. Untuk mengurangi kapasitas penyimpanan, buat instans baru sebagai pengganti instans sumber. Lihat Skenario dan metode perubahan konfigurasi lainnya.

Jaringan klasik tidak lagi didukung. Kami sarankan Anda menggunakan VPC.

Anda tidak dapat lagi memperpanjang, mengubah tipe instans, atau mengubah metode penagihan untuk instans ApsaraDB for MongoDB yang berada di jaringan klasik. Lihat [Pemberitahuan] Akhir Dukungan untuk instans ApsaraDB for MongoDB pada jaringan klasik.

Sumber daya tidak mencukupi untuk operasi yang diminta.

Kesalahan ini terjadi karena zona tempat instans berada memiliki sumber daya yang tidak cukup untuk peningkatan. Coba ubah instans ke spesifikasi yang berbeda atau ajukan tiket untuk menghubungi dukungan teknis.

Oplog database sumber tidak diaktifkan.

Kesalahan ini terjadi jika Anda gagal mengonfigurasi tugas migrasi data. Periksa arsitektur instans. Instans mandiri tidak memiliki oplog dan oleh karena itu tidak mendukung migrasi inkremental dengan Data Transmission Service (DTS). Konfigurasikan migrasi penuh sebagai gantinya.

Permintaan merujuk pada komponen yang salah. Hubungi layanan pelanggan.

Kesalahan ini dapat terjadi selama pembelian instans karena ketersediaan sumber daya bervariasi menurut zona. Coba ubah zona atau tipe instans, atau ajukan tiket untuk menghubungi dukungan teknis.

Permintaan ditolak karena pembatasan tingkat API.

Untuk mengelola dan mengontrol akses API, Alibaba Cloud membatasi frekuensi panggilan API. Lihat kuota Anda dan minta peningkatan kuota di Quota Center.

Hak baca tidak mencukupi untuk database.

Saat menggunakan DTS untuk migrasi data, akun database untuk database sumber dan tujuan harus memiliki izin yang diperlukan. Berikut cara memberikan izin:

Waktu pemulihan yang ditentukan tidak valid.

Saat memulihkan instans dengan memanggil API, pastikan waktu pemulihan valid. Waktu harus dalam format yyyy-MM-ddTHH:mm:ssZ dan ditentukan dalam UTC. Sebagai contoh, untuk mengonversi waktu Beijing (UTC+8) `2024-11-08 20:00:00` ke UTC, kurangi 8 jam. Hasilnya adalah `2024-11-08T12:00:00Z`.

server mengembalikan kesalahan pada langkah otentikasi SASL: BSON field 'saslContinue.mechanism' adalah bidang yang tidak dikenal.

Saat memulihkan instans lintas versi, otentikasi gagal jika mekanisme otentikasi berbeda. Mekanisme otentikasi default untuk MongoDB 4.0 adalah SCRAM-SHA-1. Default untuk MongoDB 5.0 dan yang lebih baru adalah SCRAM-SHA-256. Saat memulihkan instans lintas versi, gunakan versi sebelumnya dari alat mongorestore, seperti versi 4.0.

TypeError: db.xxx.find bukan fungsi.

Nama koleksi mungkin merupakan kata kunci yang dicadangkan. Gunakan db.getCollection("xxx").find untuk menjalankan kueri, atau ubah nama koleksi.

createUser gagal: Command gagal dengan error xx (Unauthorized): 'tidak berwenang pada admin untuk menjalankan command xxx.

Akun Alibaba Cloud memiliki izin terbatas dan tidak dapat diberikan izin tulis pada database sistem admin. Ini untuk mencegah jitter kinerja yang dapat disebabkan oleh penulisan data ke database admin. Untuk informasi lebih lanjut tentang cara membuat akun dengan izin yang diperlukan, lihat Izin akun root yang ditentukan selama pembuatan instans.

Jenis jaringan yang ditentukan tidak cocok.

Jika grup keamanan jaringan klasik sudah ditambahkan ke instans, Anda tidak dapat menambahkan grup keamanan VPC.

Versi minor instans tidak didukung oleh API ini.

Versi minor instans terlalu tua. Perbarui versi minor database.

Instans berada pada tahap Akhir Dukungan Penuh (EOFS).

Versi instans berada pada tahap Akhir Dukungan Penuh (EOFS) dan tidak dapat diperpanjang. Perbarui versi utama database.

Sumber daya tidak tersedia.

Kesalahan ini menunjukkan bahwa masalah sumber daya terjadi saat Anda membuat, meningkatkan, atau menurunkan instans. Kami sarankan Anda memperoleh ID Permintaan dan ajukan tiket untuk menghubungi dukungan teknis.

Kesalahan Koneksi dan Jaringan

Pesan kesalahan

Penyebab dan solusi

network error while attempting to run command 'isMaster' on host 'dds-xxxx.mongodb.rds.aliyuncs.com:3717' :exception: connect failed

  • Timed out after 3000ms while waiting for a server that matches ReadPreferenceServerSelector{readPreference=primary}. exception=(com.mongodb.MongoSocketReadException: Prematurely reached end of stream)

  • Socket recv() errno:54 Connection reset by peer x.x.x.x:27017

Jumlah koneksi ke instans ApsaraDB for MongoDB mungkin telah mencapai batas atas, dan tidak ada koneksi baru yang dapat dibuat.

Solusi:

  1. Periksa apakah koneksi instans telah habis. Untuk informasi lebih lanjut, lihat Bagaimana cara memeriksa jumlah koneksi ke instans saya?

  2. Optimalkan penggunaan koneksi. Untuk informasi lebih lanjut, lihat Apa yang harus saya lakukan jika jumlah koneksi ke instans saya mencapai batas atas?

MongoDB.Driver.MongoWaitQueueFullException: The wait queue for acquiring a connection to server xxx is full.

Antrian tunggu driver MongoDB penuh, yang mungkin disebabkan oleh jumlah koneksi yang ditentukan untuk kolam koneksi yang sedikit atau permintaan bersamaan yang tinggi. Oleh karena itu, tidak ada koneksi yang tersedia.

Solusi:

  1. Kami sarankan Anda pertama-tama memeriksa pengaturan kolam koneksi program yang melaporkan kesalahan ini. Misalnya, pastikan jumlah koneksi yang wajar ditentukan untuk kolam koneksi. Untuk informasi lebih lanjut, lihat Bagaimana cara membatasi jumlah koneksi dari klien saya?

  2. Jika masalah ini tetap ada setelah Anda menyesuaikan program, periksa apakah instans ApsaraDB for MongoDB telah kehabisan koneksi. Untuk informasi lebih lanjut, lihat topik berikut:

    1. Bagaimana cara memeriksa jumlah koneksi ke instans saya?

    2. Apa yang harus saya lakukan jika jumlah koneksi ke instans saya mencapai batas atas?

(TooManyLogicalSessions) Unable to add session into the cache because the number of active sessions is too high.

Saat sejumlah besar koneksi bersamaan dibuat, sesi yang tersedia mungkin habis.

Solusi:

  1. Troubleshoot masalah koneksi gagal yang disebabkan oleh koneksi yang habis. Untuk informasi lebih lanjut, lihat topik berikut:

    1. Bagaimana cara memeriksa jumlah koneksi ke instans saya?

    2. Apa yang harus saya lakukan jika jumlah koneksi ke instans saya mencapai batas atas?

  2. Jika tidak ada masalah dalam hal jumlah koneksi, periksa apakah item performa instans lainnya tidak dapat memenuhi persyaratan bisnis.

    1. Gunakan fitur pemantauan node untuk memeriksa penggunaan sumber daya umum (seperti penggunaan CPU dan memori) dan kemudian tentukan apakah spesifikasi instans memenuhi persyaratan bisnis.

    2. Jika spesifikasi instans terlalu kecil tetapi beban tinggi, Anda dapat mengubah konfigurasi instans selama jam non-puncak.

  • getaddrinfo failed.

  • No suitable servers found (`serverSelectionTryOnce` set).

Periksa apakah endpoint instans yang digunakan benar. Untuk informasi lebih lanjut tentang endpoint instans, lihat topik berikut:

  • Failed to connect to 10.*.*.8:3717 after 5000 milliseconds, giving up.Error: couldn't connect to server 10.*.*.8:3717 (10.*.*.8), connection attempt failed

  • pymongo.errors.ServerSelectionTimeoutError: dds-xxxx.mongodb.rds.aliyuncs.com:3717: [Errno 113] No route to host,dds-xxxx.mongodb.rds.aliyuncs.com:3717

  • InvalidInstanceId.NotFound: The instance not in current vpc.

Instans ECS gagal terhubung ke instans ApsaraDB for MongoDB melalui jaringan pribadi.

Solusi:

  1. Periksa pengaturan daftar putputih. Pastikan alamat IP pribadi instans ECS ditambahkan ke daftar putih alamat IP instans ApsaraDB for MongoDB.

  2. Pastikan konektivitas jaringan antara instans ECS dan instans ApsaraDB for MongoDB.

    Jika instans ECS dan instans ApsaraDB for MongoDB berada di VPC yang sama, kedua instans dapat langsung saling terhubung melalui jaringan pribadi. Untuk menghubungkan instans ECS ke instans ApsaraDB for MongoDB lintas VPC, Anda dapat menggunakan salah satu metode berikut:

org.springframework.data.mongodb.UncategorizedMongoDbException: Timeout while receiving message; nested exception is com.mongodb.MongoSocketReadTimeoutException: Timeout while receiving message

  • "errmsg": "not master", "code": 10107, "codeName": "NotMaster"

  • "errmsg": "not master", "code": 10107, "codeName": "NotWritablePrimary"

  • Time out after 30000ms while waiting for a server that matches writableServerSelector.

  • Command failed with error 10107 (NotWritablePrimary): 'not primary' on server xxx.

  • Explain's child command cannot run on this node. Are you explaining a write command on a secondary?

  • not master and slaveOk=false.

  • MongoNotPrimaryException: Command failed with error 10107 (NotMaster): 'not master' on server xxx.

  • reason: TopologyDescription { type: 'ReplicaSetNoPrimary',...}

Data tidak ditulis ke node utama dalam instans set replika.

Penyebab: Anda hanya dapat melakukan operasi tulis pada node utama. Jika sebelumnya Anda menggunakan endpoint node utama untuk koneksi, node yang terhubung menjadi node sekunder dan operasi tulis gagal setelah failover utama/sekunder.

Solusi:

  • Jika aplikasi Anda berjalan di lingkungan produksi, kami sarankan Anda menggunakan URI string koneksi untuk menghubungkan aplikasi Anda ke instans. Saat sebuah node gagal, operasi baca/tulis pada aplikasi Anda tidak terpengaruh oleh failover utama/sekunder. Untuk informasi lebih lanjut tentang endpoint instans, lihat topik berikut:

  • Secara manual ubah peran node. Ubah node yang endpoint-nya digunakan untuk koneksi ke node utama baru.

Kami sarankan Anda memastikan bahwa aplikasi Anda dapat secara otomatis terhubung kembali ke instans ApsaraDB for MongoDB setelah terputus dan menangani pengecualian untuk melindungi kelangsungan bisnis.

[Unauthorized] cloud instance error, disk locked, plz check and upgrade your disk quota,

Instans ApsaraDB for MongoDB terkunci karena ruang disk habis.

Solusi: Untuk informasi lebih lanjut, lihat Apa yang harus saya lakukan jika instans saya terkunci atau data tidak dapat ditulis ke instans karena ruang disk habis?

(AuthenticationFailed) Authentication failed.

  • !xxx@dds-xxx.mongodb.rds.aliyuncs.com: event not found

Kata sandi akun database yang diberikan mengandung karakter khusus. Karakter khusus termasuk ! @ # $ % ^ & * ( ) _ + =

Solusi: Untuk informasi lebih lanjut, lihat Bagaimana cara menyelesaikan masalah koneksi gagal karena karakter khusus dalam nama akun atau kata sandi dalam string koneksi?

error getting cluster ID: (CommandNotFound) replSetGetConfig is forbidden by cloud provider for security reason

ApsaraDB for MongoDB tidak mendukung perintah replSetGetConfig. Untuk informasi lebih lanjut, lihat Perintah apa yang didukung dan tidak didukung oleh ApsaraDB for MongoDB?

Kesalahan saat meningkatkan dari versi 4.2 ke 4.4

Pesan kesalahan

Penyebab dan solusi

CHECK_USER_COLLECTIONS_IN_ADMIN_FAILED

Penyebab: Database admin berisi koleksi non-sistem. Untuk alasan keamanan, akun root dan akun kustom tidak lagi memiliki izin tulis pada database `admin` di versi 4.4 dan yang lebih baru. Anda harus memindahkan koleksi kustom ini ke database lain.

Solusi:

  1. Jalankan perintah berikut untuk memindahkan koleksi old_collection ke koleksi new_collection di new_db. Nama koleksi lama dan baru bisa sama.

    db.getSiblingDB("admin").runCommand({renameCollection: "<admin.old_collection>", to: "<new_db.new_collection>"})
    Penting

    Jika koleksi besar, perintah mungkin membutuhkan waktu lama untuk dijalankan. Selama waktu ini, semua operasi tulis ke koleksi diblokir. Cadangkan jendela O&M yang cukup untuk migrasi.

  2. Setelah operasi rename selesai, jalankan perintah drop untuk menghapus koleksi asli. Anda kemudian dapat meningkatkan ke versi 4.4.

    db.getSiblingDB("admin").getCollection("<old_collection>").drop()

CHECK_USERS_AND_ROLES_FAILED

Penyebab: Database admin berisi akun istimewa kustom. Untuk alasan keamanan, akun root dan akun kustom tidak lagi memiliki izin tulis pada database admin di versi 4.4 dan yang lebih baru. Anda harus menghapus izin tulis database admin dari akun kustom.

Solusi: Akun dan peran yang memerlukan perubahan ditampilkan dalam pesan kesalahan di konsol: "user my_user memiliki peran istimewa tinggi readWrite". Jalankan perintah berikut untuk menghapus peran readWrite dari akun my_user pada database admin.

Penting

Sebelum menjalankan perintah, pastikan aplikasi Anda tidak menggunakan akun ini untuk menulis data ke database admin.

db.getSiblingDB("admin").runCommand({revokeRolesFromUser: "my_user", roles: [{role: "readWrite", db: "admin"}]})