mysqldump ত্রুটি 2013


18

আমার একটি ডাটাবেস ইনস্টল আছে, আমি মাইএসকিএল-এ ব্যাকআপ নিতে চাই। সমস্যাটি mysqldump'মিয়া_মেল' সারণি রফতানিতে ব্যর্থ

# mysqldump -u root -p maia > maia.sql
mysqldump: Error 2013: Lost connection to MySQL server during query when dumping table `maia_mail` at row: 15

এটি 30 সেকেন্ডেরও কম সময় চালায় এবং উপরের মত ত্রুটি পেয়ে যায়।

মাই_মেল টেবিলটি 1.0 গিগাবাইটের সাথে ডিবিটির মোট আকার 1.3 গিগাবাইট

ইন my.cnfআমি এই সেট আছে:

[mysqld]
max_allowed_packet      = 1300M
[mysqldump]
max_allowed_packet      = 1300M

কিভাবে ডেটাবেস ডাম্প করার জন্য দয়া করে পরামর্শ বা কিছু গাইডেন্স দিন?


170 গিগাবাইট ফ্রি স্পেস। আমি মেশিন ডিবিতে ডাম্প চালু থাকি বা রিমোট থাকি তাও একই
গারফিংক করুন

ইমেলের অনুলিপিগুলি তাই মূলত
বর্ণের ডেটাগুলি

1300 এম সাম্প্রতিক পরিবর্তন ছিল, যখন সমস্যাটি এটি ডিফল্ট 16 এম তেও সেট করা হয়েছিল। 1300 এম পরিবর্তন করার পরে সার্ভারটি পুনরায় চালু করা হয়েছিল।
গারফিংক 20 '17

আমি 16 এম ডিফল্টে ফিরে এসেছি। সারি 15 এ একই ত্রুটি 2013 এ ফলাফল ডাম্প
গারফিংক

উত্তর:


13

আমি সহজেই InnoDB সেটিংস পরিবর্তন করার পরামর্শ দিতে পারলাম যা কেবল কাজের জন্য মাইএসকিএলডাম পাওয়ার জন্য লিটল ভারী হাতে থাকতে পারে। আমি প্রস্তাবটি সম্পর্কে যা করছি তা আপনি পছন্দ করতে পারেন না তবে আমি বিশ্বাস করি এটি আপনার সেরা (কেবল) বিকল্প। এখানে এটা যায়:

পরামর্শ # 1: বর্ধিত সন্নিবেশগুলি অক্ষম করুন

মাইএসকিএলডাম্পের জন্য ডিফল্ট সেটিংটিতে একক ইনসার্টে কয়েক হাজার বা কয়েক হাজার সারি একসাথে ক্লাম্পিং অন্তর্ভুক্ত থাকবে। এটি একটি বর্ধিত INSERT হিসাবে পরিচিত। এটি কেবলমাত্র সর্বাধিক_মুক্ত_প্যাকেট ছাড়িয়ে কিছুটা ছাপিয়ে যাচ্ছে

আমি আবার একটি পোস্টের উত্তর দিয়েছি Sep 01, 2011( মাইএসকিউএল সার্ভার বড় আকারের ডাম্পগুলির আমদানিতে বাধা সৃষ্টি করে চলে গেছে ) যেখানে আমি বড় মাইএসকিএলডাম্প আমদানির জন্য একই কাজ করার বিষয়ে আলোচনা করেছি। আমি বিশ্বাস করি বর্ধিত INSERT অক্ষম করাও একটি সমস্যাযুক্ত মাইএসকিলডাম্প তৈরি করতে সহায়তা করবে।

mysqldump -u root --skip-extended-insert -p maia > maia.sql

খারাপ সংবাদ: এটি প্রতিটি সারির জন্য একটি INSERT কমান্ড তৈরি করতে পারে। এটি অবশ্যই মাইএসক্ল্ড্প্প সম্পাদন করতে সময় নেয় increase ফলস্বরূপ, এটি পুনরায় লোড করতে সময় নেওয়ার সময় বৃদ্ধি পাবে (সম্ভবত 10-100 এর একটি ফ্যাক্টর দ্বারা।

এর skip-extended-insertআগেও আলোচনা করেছি

পরামর্শ # 2: বাইনারি ডেটা হেক্স হিসাবে ফেলে দিন (বিকল্প)

মাইসকিल्डম্পের বাইনারি ডেটা আরও বাইট পোর্টেবল করতে, এই জাতীয় ডেটা হেক্সাডেসিমালে ফেলে দিন

mysqldump -u root --skip-extended-insert --hex-blob -p maia > maia.sql

খারাপ সংবাদ: এটি মাইএসকিএলডাম্পকে আরও কিছুটা ফোটবে

একবার চেষ্টা করে দেখো !!!

পার্শ্ব দ্রষ্টব্য: সর্বাধিক আকার_সামগ্রী_প্যাকেট 1 জি


5

12 জিবি ডাটাবেস ডাম্প করার চেষ্টা করার সময় আমিও একই ত্রুটি পেয়েছিলাম। এটি কার্যকর করতে আমি নিম্নলিখিত পরিবর্তনগুলি করেছি।

  1. ম্যাক্স_নিয়েল_প্যাক্টটি 1024 এম তে কনফিগার করা হয়েছে
  2. নেট_ড্রেডটাইমআউটআউটটি 7200 এ কনফিগার করা হয়েছে
  3. নেট_ওরাইট_টাইমআউট 7200 এ কনফিগার করা হয়েছে

দ্রষ্টব্য: আমি জানি সময়ের মূল্যগুলি খুব বেশি হয় (7200 সেকেন্ড অর্থাৎ 20 ঘন্টা) h তবে আমি কেবলমাত্র কোনও সুযোগকেই অস্বীকার করার জন্য তাই এটি করেছি। আমি একটি অনুকূল সময়সীমার মান সন্ধানের প্রক্রিয়ায় আছি।


2
অন্যান্য ব্যবহারকারীর জন্য: এগুলি সার্ভারে সেট করা হচ্ছে, মাইএসকিএলড্প কনফিগারেশন ফাইলে নয়। এছাড়াও, 7200 সেকেন্ড 2 ঘন্টা, না 20.
মার্ক

গ্লোবাল নেট_আড_টাইমআউট = 120 সেট করুন; গ্লোবাল নেট_ওয়াইট_টাইমআউট = 900 সেট করুন; আমার জন্য কাজ করেছেন
কাসি

2

কেবলমাত্র আপনার my.ini (উইন্ডোজ) বা my.cnf (লিনাক্স) কনফিগারেশন ফাইলের মধ্যে নিম্নলিখিতগুলি অন্তর্ভুক্ত করুন।

[mysqld]
max_allowed_packet=1024M 

[mysqldump]
max_allowed_packet=1024M 
net_read_timeout=3600 
net_write_timeout=3600

2
বিভাগগুলি অন্য উপায়ে হওয়া উচিত।
অরেঞ্জডোগ

1

আপনার ডাম্প নেওয়ার মতো পর্যাপ্ত স্মৃতি রয়েছে তা নিশ্চিত করুন। ডাম্প নেওয়ার সময় মেমরি পরীক্ষা করে দেখুন, উদাহরণস্বরূপ এই জাতীয় আদেশ ব্যবহার করুন:

free -mt

ডাম্প নেওয়ার সময় যদি আপনি স্মৃতিচারণ করেন তবে আপনি পাবেন

mysqldump: ত্রুটি 2013: হারিয়ে যাওয়া সংযোগ


1

আমি পেয়েছি:

--max-allowed-packet=1G --net-buffer-length=32704

... নেট রিড / রাইট টাইমআউট পরিবর্তন, টিসিপি রক্ষণাবেক্ষণ ইত্যাদি সত্ত্বেও এটি যেখানে আগে (নির্ভরযোগ্যভাবে) হয়নি সেখানে কাজ করে makes

max_allowed_packetসেটিংস একা এটি কাজ করা হয়নি, তাই যদি প্রয়োজন বোধ করা নাও হতে পারে net_buffer_lengthব্যবহৃত হয়। - র‌্যাল্ফ-বল্টন

সংশোধন করা max-allowed-packetএবং net-buffer-lengthবর্ধিত সন্নিবেশগুলি অক্ষম করার চেয়ে অনেক ভাল বলে মনে হচ্ছে। - ক্রিস্টোফার

আরও দেখুন কী সর্বোচ্চ_নীত_প্যাকেটটি যথেষ্ট বড়, এবং কেন এটি পরিবর্তন করার দরকার?

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