Saya mencoba melakukan mysqldump di server Windows dan saya mendapatkan pesan kesalahan berikut :
mysqldump: Got error: 23: Out of resources when opening file '.\db\sometable.MYD' (Errcode: 24) when using LOCK TABLES
Inilah perintah yang saya jalankan:
mysqldump -u user -p"pass" --lock-tables --default-character-set=latin1 -e --quick databasename > "query.sql"
Memulai ulang layanan mysql tidak membantu.
Saya selalu mendapatkan pesan untuk tabel yang sama.
Saya sudah mencoba mengurangi variabel table_cache dan max_connections dari 64 menjadi 32 dan 30 menjadi 10 masing-masing tetapi saya masih mendapatkan kesalahan hanya kali ini untuk tabel yang berbeda (dan mulai sekarang pesan kesalahan selalu menyebutkan tabel kedua).
Skrip yang sama dijalankan pada selusin server Windows lainnya yang memiliki database yang sama tanpa masalah.
Semua database memiliki 85 tabel.
Jawaban:
Menurut sini - "kode kesalahan OS 24: Terlalu banyak membuka file" yang sejalan dengan kesalahan yang lebih umum 23 "Kehabisan sumber daya".
Jadi sepertinya Anda kehabisan file menangani. Ini biasanya pengaturan / masalah di akhir server, baik di MySQL, atau di OS itu sendiri.
Mungkin periksa / sesuaikan
--open-files-limit
pengaturan di MySQL itu sendiri dan lihat apakah itu membantu.Juga, mungkin mencoba menjalankan dump, sementara tidak ada orang lain yang menggunakan DB, dengan
--single-transaction
pengaturan alih-alih--Lock-File
, karena beberapa orang menyarankan ini akan bekerja satu tabel pada satu waktu alih-alih membuka semuanya sekaligus (oleh karena itu menggunakan lebih sedikit file menangani).Selain itu, Anda mungkin harus menemukan akar penyebab mengapa server khusus ini kehabisan sumber daya. Yang mungkin akan melibatkan pemecahan masalah dengan menonaktifkan layanan / proses sebanyak mungkin dan melihat apakah dump melewati. Kemudian cari tahu dari sana siapa pelakunya yang memakan terlalu banyak sumber daya dan mungkin tidak membebaskan mereka dengan benar.
sumber
--lock-all-tables
juga berfungsi, dan tidak memiliki masalah inkonsistensi--single-transaction
saat bekerja pada tabel non-InnoDB.--single-transaction
kekuatan--lock-tables=off
. Jangan gunakan ini pada tabel non-transaksional.Apakah Anda berada dalam posisi untuk mencobanya
--single-transaction
alih - alih--lock-tables
misalnya tabelnya adalah InnoDB dan Anda tidak menggunakan tabel Cluster dan bahwa ALTER TABLE, DROP TABLE, RENAME TABLE, TRUNCATE TABLE tidak akan terjadi selama dump? Konfirmasikan yang terbaik, tidak apa-apa dengan org dukungan MySQL Anda jika ada.Saya hanya mencoba ini di unix tetapi pada dasarnya jika saya mencoba dengan DB dengan 2000 tabel gagal dengan kesalahan yang mirip dengan Anda misalnya saya telah menggunakan semua pegangan file terbuka saya.
sumber
Anda mungkin mendapatkan kesalahan ini:
... bersama dengan kesalahan lain ketika Anda meningkatkan ke MySQL 5.5 dan Anda menjalankan cadangan Anda di Plesk atau menjalankan OS lainnya
mysqldump
.Memperbaiki:
my.cnf
Menambahkan:
Mulai ulang MySQL
Jika Anda menerima:
Ini adalah hasil peningkatan ke 5.5. Menjalankan:
Diuji dan bekerja pada CentOS 6.7 dan Plesk 12.
sumber
Saya memiliki masalah yang sama dengan Philipe. Ketika saya mulai dump, saya melihat kesalahan seperti ini:
Saya menggunakan perintah sederhana:
Jadi, saya menambahkan perintah lain ke mysqldump saya:
dan dump siap. Jadi, semua permintaan mysqldump saya terlihat seperti ini:
sumber