মুলতুবি লেনদেনের সাথে মাইএসকিউএল টেবিল মোছা হচ্ছে


10

মাইএসকিউএলে লন্ডিত লেনদেনের সাথে একটি ইনোডিবি টেবিল বা ডাটাবেস মুছার কোনও উপায় আছে (পছন্দমত ফাইল সিস্টেমের স্তরে)?

কি হলো:

আমি মাইএসকিউএল 5.5.28 ব্যবহার করি এবং LOAD DATA INFILE…একটি ইনোডিবি টেবিলটিতে একটি বিশাল ডেটা সেট (300 এম সারি) আমদানি করতে দৌড়ে এসেছি । আমি set autocommit = 0;আগে ব্যবহার করিনি। দুর্ভাগ্যক্রমে, mysqldআমদানির ঠিক মাঝখানে থামানো হয়েছিল।

আমি পুনরায় চালু করার সময় mysql, এটি এই জাতীয় বার্তাগুলির সাথে সিস্টেম লগ ভরাট লেনদেনটিকে আবার রোল করার চেষ্টা করে:

mysqld_safe [4433]: 121212 16:58:52 InnoDB: 1 টি সক্রিয় লেনদেন শেষ করার জন্য অপেক্ষা করছে

সমস্যাটি হ'ল রোল ব্যাকটি এখন আরও 25 ঘন্টা ধরে চলছে যা চলাকালীন mysqldকোনও সকেট সংযোগ গ্রহণ করছে না।

আমি কেবল /var/lib/mysql/*স্ক্র্যাচ থেকে মুছতে এবং শুরু করতে পারি না কারণ এই মেশিনে আরও কিছু InnoDB ডাটাবেস / টেবিল রয়েছে। তবে, সমস্যাযুক্ত টেবিলটি পৃথক ডাটাবেসের একমাত্র সারণী। আমি পরে সমস্ত ডেটা আমদানি করতে পারি বলে পুরো টেবিল বা পুরো ডাটাবেসটি মুছে ফেলা কোনও সমস্যা নয়।

উত্তর:


8

আপনি যা করতে পারেন তেমন কিছুই নেই কারণ ইবদাটা 1-এর অভ্যন্তরে ইউএনডিও টেবিলস্পেসের মাধ্যমে একটি রোলব্যাক করা হচ্ছে , যা প্রচুর পরিমাণে বাড়ানো উচিত ছিল।

আপনি যদি মাইএসকিএলডিটি প্রক্রিয়াটি মেরে ফেলে এবং মাইএসকিএল পুনরায় চালু করেন তবে ক্র্যাশ পুনরুদ্ধারের চক্রের অংশ হিসাবে এটি ছেড়ে গেছে।

অস্বীকৃতি: ডেটা লোকসানের জন্য দায়বদ্ধ নয়

আপনি যা করতে পারেন তার ফলাফল অন্য টেবিলগুলির জন্য ডেটা হারাতে পারে, তবে InnoDB- র সাধারণ ক্র্যাশ পুনরুদ্ধার চক্রটিকে আটকানোর জন্য আপনি কিছু করতে পারেন।

ইনোডাব_ফোর্স_রেভেরি নামে একটি স্টার্টআপ বিকল্প রয়েছে যা আপনাকে ইনোডিবি ক্র্যাশ পুনরুদ্ধারের বিভিন্ন পর্যায়ে বাইপাস করতে দেয়।

জোর করে ইনোডিবি পুনরুদ্ধার সম্পর্কিত মাইএসকিউএল ডকুমেন্টেশন অনুসারে , সেটিংস এবং এর প্রভাবগুলি এখানে রয়েছে:

1 (এসআরভি_এফওআরসি_আইজিএনআর_সিওআরপিআউট)

কোনও দুর্নীতিগ্রস্ত পৃষ্ঠা শনাক্ত করেও সার্ভারটি চলতে দিন। দুর্নীতিবাজ সূচক রেকর্ড এবং পৃষ্ঠাগুলির উপরে SEMP * FBM tbl_name লাফানোর চেষ্টা করুন, যা ডাম্পিং টেবিলগুলিতে সহায়তা করে।

2 (এসআরভি_এফওআরসি .ইনো_ব্যাকাক্রোন্ড)

মাস্টার থ্রেডটি চলমান থেকে আটকাবেন। শুদ্ধ অভিযানের সময় যদি কোনও ক্রাশ ঘটে থাকে তবে এই পুনরুদ্ধার মানটি এটি প্রতিরোধ করে।

3 (এসআরভি_এফওআরসি_নো_আরএক্সএক্সএইএনডিও)

ক্র্যাশ পুনরুদ্ধারের পরে লেনদেন রোলব্যাকগুলি চালাবেন না।

4 (এসআরভি_এফওআরসি_নো_আইবিইউএফ_এমআরজিই)

সন্নিবেশ বাফার মার্জ ক্রিয়াকলাপগুলি প্রতিরোধ করুন। যদি তারা ক্রাশের কারণ হয়ে থাকে তবে তাদের করবেন না। সারণী পরিসংখ্যান গণনা করবেন না।

5 (এসআরভি_এফওআরসি_নো_উইন্ডো_লগ_সকান)

ডাটাবেস শুরু করার সময় পূর্বাবস্থায় ফেরানো লগগুলির দিকে তাকান না: InnoDB এমনকি অসম্পূর্ণ লেনদেনকে প্রতিশ্রুতিবদ্ধ হিসাবে বিবেচনা করে।

((এসআরভি_এফওআরসি .এনও_এলওজি_ডিও)

পুনরুদ্ধারের ক্ষেত্রে পুনরায় লগ রোল-ফরোয়ার্ড করবেন না।

ইউএনডিও এবং রেডো লগগুলিতে লেনদেনমূলক পরিবর্তনগুলি সমাপ্তির সাথে আপনি এর ঝুঁকিটি চালান

  • তথ্য হারাতে বোঝা যাচ্ছে
  • ডেটা মুছে ফেলা মানে

আপনি যদি খারাপ পার্শ্ব প্রতিক্রিয়া প্রত্যাশা করেন তবে পুরো / var / lib / mysql টি ব্যাকআপ করুন এবং যদি আপনি ইবদাটা 1, আইব_লগফাইল 0, এবং আইবি_লগফাইল 1 অনুলিপি করতে চান এবং স্বাভাবিক পুনরুদ্ধারের পুনরায় চেষ্টা করুন।

যদি mysql সম্পূর্ণরূপে একটি মোডে থাকে

  • আপত্তিজনক টেবিল ব্যতীত সমস্ত ডেটা mysqldump ump
  • শাটডাউন মাইএসকিএল
  • / var / lib / mysql এ / var / lib / mysql / mysql বাদে সবকিছু মুছে ফেলুন
  • মাইএসকিএল শুরু করুন
  • mysqldump পুনরায় লোড করুন

কভ্যাট: নিশ্চিত হয়ে নিন যে আপনি সমস্ত কিছু ব্যাকআপ করেছেন!

আশা করি এটা কাজে লাগবে !!!


1

এই সপ্তাহে আমারও একই অবস্থা ছিল।

এবং পরীক্ষার সার্ভারে একটি পূর্ণ ব্যাকআপ পুনরুদ্ধার করার চারটি পুনরাবৃত্তি এবং বিশাল মুলতুবি লেনদেনের সাহায্যে টেবিলগুলি ফেলে, মুছতে বা মেরে ফেলার চেষ্টা করার পরে, আমরা অবশেষে শুক্রবার বিকেলে পৌঁছেছি এবং ঠিক চালিয়ে যাওয়ার সিদ্ধান্ত নিয়েছি। তিন দিনের বেশি সময় ধরে, লেনদেনটি উপেক্ষণীয় সার্ভার লোড দিয়ে শেষ হয়েছিল এবং ডাটাবেস ঠিক আছে। যা .frm ফাইল এবং মাইএসকিএল টেবিলগুলির ম্যানুয়াল অপারেশনগুলির চেয়ে অনেক ভাল ছিল যা চেষ্টা করে ব্যর্থ হয়েছিল।

আমার সমাধান: এটি মুছবেন না । আপনার যদি কয়েক দিনের জন্য অন্য ক্রিয়াকলাপ বন্ধ করে দিতে হয়, বা কোথাও কোনও ডিস্কের জায়গা খুঁজে পেতে হয়, বা আপনার স্লেভ সার্ভারটিকে বোঝা নিতে দেওয়া হয়, এমনকি মুলতুবি লেনদেনগুলি শেষ করার অনুমতি দিন।

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