মাইএসকিলডাম্পের জন্য সংস্থান নেই


21

আমি একটি উইন্ডোজ সার্ভারে একটি মাইএসকিल्डম্প করার চেষ্টা করছি এবং আমি নিম্নলিখিত ত্রুটি বার্তাটি পেয়েছি :

mysqldump: Got error: 23: Out of resources when opening file '.\db\sometable.MYD' (Errcode: 24) when using LOCK TABLES

আমি যে কমান্ডটি চালাচ্ছি তা এখানে:

mysqldump -u user -p"pass" --lock-tables --default-character-set=latin1 -e --quick databasename > "query.sql"

মাইএসকিএল পরিষেবাটি পুনরায় চালু করা কোনও উপকারে আসেনি।

আমি সর্বদা একই টেবিলের জন্য বার্তাটি পাই।

আমি যথাক্রমে টেবিল_ক্যাচ এবং সর্বোচ্চ_সংযোগগুলি ভেরিয়েবলগুলি যথাক্রমে and৪ থেকে 32 এবং 30 থেকে 10 থেকে হ্রাস করার চেষ্টা করেছি তবে আমি এখনও এই সময়টিতে অন্য একটি টেবিলের জন্য ত্রুটি পেয়েছি (এবং এখন থেকে ত্রুটি বার্তায় সর্বদা দ্বিতীয় সারণির উল্লেখ করা হচ্ছে)।

একই স্ক্রিপ্টটি এক ডজন অন্যান্য উইন্ডোজ সার্ভারগুলিতে সমস্যা ছাড়াই একই ডাটাবেসযুক্ত চলছে ।

সমস্ত ডাটাবেসের 85 টি টেবিল রয়েছে।


আপনার কোন অপারেটিং সিস্টেমটি মাইএসকিউএল চলছে?
ডেভি

উইন্ডোজ সর্বত্র।
ফিলিপ ক্যারিয়ার

ডিবিতে কয়টি টেবিল? একধরনের ফাইল বর্ণনাকারী সীমা মনে হয়।
ডেভি

ডিবিতে 85 টি টেবিল।
ফিলিপ ক্যারিয়ার

তথ্য বর্ণনায় যুক্ত হয়েছে।
ফিলিপ ক্যারিয়ার

উত্তর:


21

এখানে মতে - "ওএস ত্রুটি কোড 24: অনেকগুলি ওপেন ফাইল" যা আরও সাধারণ ত্রুটির সাথে লাইন করে 23 "সংস্থানসমূহের বাইরে"।

সুতরাং দেখে মনে হচ্ছে আপনি ফাইল হ্যান্ডলগুলি শেষ করে নিচ্ছেন। এটি সাধারণত মাইএসকিউএলে বা ওএসে হয় সার্ভার-এন্ড সেটিং / সমস্যা।

সম্ভবত মাইএসকিউএল এ --open-files-limitসেটিংটি চেক / সামঞ্জস্য করুন এবং দেখুন এটি সহায়তা করে কিনা।

এছাড়াও, সম্ভবত ডাম্প চালানোর চেষ্টা করুন, পরিবর্তে --single-transactionসেটিং সহ অন্য কেউ ডিবি ব্যবহার করছেন না --Lock-File, কারণ বেশিরভাগ লোকের পরামর্শ অনুযায়ী এটি একবারে সবগুলি খোলার পরিবর্তে একবারে একটি টেবিলে কাজ করবে (তাই ফাইলের হ্যান্ডলগুলি কম ব্যবহার করে)।

এর বাইরে আপনাকে সম্ভবত একটি নির্দিষ্ট কারণ অনুসন্ধান করতে হবে যে এই নির্দিষ্ট সার্ভারটির কেন সংস্থান চলছে। যা সম্ভবত যতগুলি পরিষেবা / প্রক্রিয়া যতটা সম্ভব অক্ষম করে সমস্যা সমাধানের সাথে জড়িত থাকবে এবং দেখুন যে ডাম্পটি যাচ্ছে। তারপরে সেখান থেকে খুঁজে বের করুন যে অপরাধী কে হ'ল তিনি প্রচুর সংস্থান খাচ্ছেন এবং সম্ভবত সেগুলি সঠিকভাবে মুক্ত করছেন না।


2
- লক-টেবিলগুলির পরিবর্তে --সিংল-লেনদেন কাজ করে। অনেক ধন্যবাদ.
ফিলিপ ক্যারিয়ার

আশ্চর্যের সাথে আমি InnoDB ব্যবহার করছি না তবে এই পরামিতিটি ছাড়া এটি কাজ করে না। আমি ভেবেছিলাম - সাসল-লেনদেনটি কেবল নির্দোষ ডিবি-র সাথেই প্রাসঙ্গিক।
ফিলিপ ক্যারিয়ার

খুশী হলাম। :) আনন্দিত এটি সাহায্য করেছে।
techie007

4
--lock-all-tablesএছাড়াও কাজ করে এবং --single-transactionনন-ইনোডিবি টেবিলগুলিতে কাজ করার ক্ষেত্রে অসঙ্গতিজনিত সমস্যা নেই ।
ফ্রেইহাইট

শুধু স্পষ্ট করার জন্য: --single-transactionবাহিনী --lock-tables=off। অ-লেনদেনের টেবিলগুলিতে এটি ব্যবহার করবেন না।
বি

6

আপনি কি তার --single-transactionপরিবর্তে এটি ব্যবহার করার মতো অবস্থানে রয়েছেন --lock-tablesযেমন টেবিলগুলি ইনোডিবি এবং আপনি ক্লাস্টার সারণী ব্যবহার করছেন না এবং এটি যে টেবিল, ড্রপ টেবিল, পুনরায় নামকরণ করুন, ট্র্যাঙ্কেট টেবিলটি ডাম্পের সময় ঘটবে না? সেরাটি নিশ্চিত করুন এটি আপনার মাইএসকিউএল সমর্থন সংস্থার সাথে ঠিক আছে যদি আপনার কাছে থাকে।

আমি এটি কেবল ইউনিক্সে চেষ্টা করেছি তবে মূলত যদি আমি 2000 টেবিলের সাথে একটি ডিবি দিয়ে চেষ্টা করি তবে এটি আপনার অনুরূপ ত্রুটির সাথে ব্যর্থ হয় যেমন আমি আমার সমস্ত খোলা ফাইল হ্যান্ডল ব্যবহার করেছি।


+1 টি। আপনার সমাধানটি যেমন টেকিআই 7007 তেমন কাজ করেছে তবে তিনি প্রথমে উত্তর দিয়েছেন তাই আমি তার উত্তরটি মেনে নিই। রেকর্ডগুলির জন্য, আমি নির্দোষ ডিবি ব্যবহার করছি না।
ফিলিপ ক্যারিয়ার

2

আপনি এই ত্রুটি পেতে পারেন:

মাইএসকিউএল: এরকোড: ২৪ লক টেবিলগুলি ব্যবহার করার সময়

... অন্য ত্রুটিগুলির সাথে আপনি যখন মাইএসকিউএল 5.5-এ আপগ্রেড করেন এবং আপনি প্লেস্ক বা অন্য কোনও ওএস কার্যকর করতে আপনার ব্যাকআপগুলি চালাচ্ছেন mysqldump

ঠিক করতে:

  1. সম্পাদন করা my.cnf
  2. যোগ করুন

    open_files_limit=2048
    
  3. মাইএসকিউএল পুনরায় চালু করুন

আপনি যদি গ্রহণ করছেন:

Mysql.proc থেকে লোড করা যায় না। টেবিলটি সম্ভবত কলুষিত হয়েছে (1548)

এটি 5.5 এ আপগ্রেডের ফলাফল। এক্সিকিউট:

mysql_upgrade --force

CentOS 6.7 এবং Plesk 12 এ পরীক্ষিত এবং কাজ করেছেন।


0

ফিলিপের মতো আমারও একই সমস্যা ছিল। আমি যখন ডাম্প শুরু করি তখন আমি এর মতো একটি ত্রুটি দেখেছি:

mysqldump: Got error: 23: Out of resources when opening file './c1baznarz/timecard.MYD' (Errcode: 24) when using LOCK TABLES

আমি সাধারণ কমান্ড ব্যবহার করেছি:

mysqldump -uroot -p c1baznarz > c1baznarz.sql

সুতরাং, আমি আমার মাইএসকিल्ड্প্পে আরও একটি কমান্ড যুক্ত করছি:

--single-transaction

এবং ডাম্প প্রস্তুত। সুতরাং, আমার সমস্ত মাইএসকিলডাম ক্যোয়ারী এর মতো দেখাচ্ছে:

mysqldump -uroot -p --lock-tables --single-transaction c1baznarz > c1baznarz.sql
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.