আমার / var / lib / mysql ডিরেক্টরিতে ibdata1 ফাইলটি কী?


32

আমার ওয়েবমিন কন্ট্রোল প্যানেলে লগ ইন করে, আমি লক্ষ্য করেছি যে আমার ডিস্কের সমস্ত জায়গাই কার্যত পূর্ণ। আমি আমার সিস্টেমে দশটি বৃহত্তম ফাইল / ডিরেক্টরি অনুসন্ধান করেছি এবং দেখতে পেলাম যে আইবডাটা 1 নামে একটি ফাইল প্রায় 94 গিগাবাইট স্থান গ্রহণ করছে। এটি আমার / var / lib / mysql ডিরেক্টরিতে থাকে।

ইবদাটা কি করে? আমি কি এটি সরিয়ে নিরাপদ? আমার অনুমান যে এটি কোনও ধরণের ডাম্প, তবে এটি কেবল একটি বন্য অনুমান।

উত্তর:


38

ফাইলটি ibdata1ইনোডিবি অবকাঠামোর জন্য সিস্টেম টেবিলস্পেস।

এটি ইনোডিবি-র জন্য প্রয়োজনীয় তথ্যগুলির জন্য বেশ কয়েকটি ক্লাস রয়েছে

  • সারণী ডেটা পৃষ্ঠা
  • সারণী সূচক পৃষ্ঠা Pages
  • তথ্য অভিধান
  • এমভিসিসি নিয়ন্ত্রণ ডেটা
    • স্পেসটি পূর্বাবস্থায় ফেরান
    • রোলব্যাক সেগমেন্টস
  • ডাবল রাইট বাফার (ওএস ক্যাচিং এড়াতে পটভূমিতে লিখিত পৃষ্ঠাগুলি)
  • বাফারটি সন্নিবেশ করুন (মাধ্যমিক সূচিতে পরিবর্তনগুলি)

InnoDB ইউনিভার্সে (ডান দিকে) আইবডাতা 1 এর অবস্থানটি নোট করুন

InnoDB আর্কিটেকচার

আপনি ইনোডাব_ফিল_পিটার_সারণযোগ্যibdata1 সক্ষম করে ডেটা এবং সূচক পৃষ্ঠাগুলি পৃথক করতে পারেন । এটি কোনও নতুন তৈরি InnoDB টেবিলকে কোনও বহিরাগত ফাইলে ডেটা এবং সূচী পৃষ্ঠাগুলি সঞ্চয় করতে বাধ্য করবে ।.ibd

উদাহরণ

  • ডেটাডির হ'ল / ভার / লিব / মাইএসকিএল
  • CREATE TABLE mydb.mytable (...) ENGINE=InnoDB;, তৈরি করে /var/lib/mysql/mydb/mytable.frm
    • ইনোডব_ফায়াল_পার_সামগ্রী সক্ষম, ডেটা / সূচী পৃষ্ঠাগুলি সঞ্চিত /var/lib/mysql/mydb/mytable.ibd
    • ইনোডব_ফায়াল_পার_সারণযোগ্য অক্ষম, ডেটা / সূচী পৃষ্ঠাগুলি আইবডাতা 1 তে সঞ্চিত

InnoDB টেবিলটি যেখানে সঞ্চিত আছে তা বিবেচনাধীন নয়, InnoDB এর কার্যকারিতার জন্য টেবিল মেটাডেটা অনুসন্ধান করা এবং ACID সম্মতি এবং লেনদেনের বিচ্ছিন্নতা সমর্থন করার জন্য এমভিসিসি তথ্য সংরক্ষণ এবং পুনরুদ্ধার করা দরকার ।

এখানে টেবিল ডেটা এবং সূচিপত্রগুলি আইবডাতা 1 থেকে পৃথক করার বিষয়ে আমার অতীতের নিবন্ধগুলি রয়েছে

পরবর্তী কি করতে হবে

আপনি আইবডাটা 1 সব কিছু সঞ্চিত করে চালিয়ে যেতে পারেন, তবে এটি এলভিএম স্ন্যাপশটগুলি রিয়েল ড্রডজারি (আমার ব্যক্তিগত মতামত) করে তোলে।

আপনাকে আমার স্ট্যাকওভারফ্লো পোস্টটি ব্যবহার করতে হবে এবং স্থায়ীভাবে সেই ফাইলটি সঙ্কুচিত করতে হবে।

দয়া করে এই কোয়েরিটি চালান:

SELECT 
    ((POWER(1024,3)*94 - InnoDBDiskDataAndIndexes))/POWER(1024,3) SpaceToReclaim
FROM
(SELECT SUM(data_length+index_length) InnoDBDiskDataAndIndexes
FROM information_schema.tables WHERE engine='InnoDB') A;

এটি জানাবে ইনোডিবি ক্লিনআপ প্রয়োগের পরে কতটা নষ্ট স্থান পুনরুদ্ধার করা যায়।


আপনার ইনপুট জন্য ধন্যবাদ। আমার ডিস্ক কোটা পুরোপুরি পূরণ হয়েছে - আপনার পোস্টগুলির যে কোনও পরামর্শের আগে আমি কাজ করার আগে, আমার কি খালি জায়গা প্রয়োজন? আমি লক্ষ করেছি যে এসও তে আপনার মূল পোস্টে এসকিউএল ডাম্প করার বিষয়ে উল্লেখ করা হয়েছে তবে এটি সম্ভবত কোথাও একটি GB 90 গিগাবাইট ফাইল তৈরি করবে।
জেমস

মাইএসকিএলডম্প কেবল সূচিগুলি নয়, ডেটা পৃষ্ঠাগুলির যৌক্তিক উপস্থাপনা করবে। ডেটা ডাম্প করার জন্য আপনার অন্য একটি ডিস্ক মাউন্ট, সম্ভবত একটি দূরবর্তী সার্ভারের প্রয়োজন হবে।
RolandoMySQLDBA

9
এটি আমার হিসাবে 91.25350952148438 ফেরত দেয় SpaceToReclaim। এটি কি মেগাবাইটে? শতাংশ? বাইট?
আইজ্যাক

আমি জানি এটি অনেক পুরানো। তবে যে কোনও সমস্যাটি নিয়ে এখানে আসার জন্য 94, আপনার ibdata1জিবিতে আপনার ফাইলের আকার যাই হোক না কেন তার সাথে নম্বরটি প্রতিস্থাপন করতে SpaceToReclaimহবে এবং এটি আপনাকে জিবিতে আকার দেবে।
অনুপসব্রাহাম

8

এই ফাইলটি ibdata1নয় ibdatalএবং এতে আপনার সমস্ত ইনোডিবি ডাটাবেস রয়েছে। আপনি যদি এটি মুছে ফেলেন তবে আপনি আপনার সমস্ত ডেটা হারাবেন।

এটির সাথে কীভাবে ব্যবহার করতে হয় সে সম্পর্কে কিছু ধারণার জন্য, মাইএসকিউএল-এ আইবডটা 1 ফাইল সঙ্কুচিত / শুদ্ধ করার পদ্ধতিটি দেখুন


2

আপনি যদি মাইএসকিউএল ইঞ্জিন হিসাবে ইনোডাবটি ডিফল্টরূপে ব্যবহার করেন তবে আপনার সমস্ত ডাটাবেস আইবডেটা 1-এ সংরক্ষণ করবে। এছাড়াও লগ ফাইল আইব_লগফাইল0 এবং আইবি_লগফিল 1 রয়েছে। এই ফাইলগুলি মুছবেন না।


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