ইনোডোব_ফায়াল_পার_ট্যাবলটি কি পরামর্শ দেওয়া হয়?


19

আমাদের একটি অ্যাপ্লিকেশন রয়েছে যেখানে কেবলমাত্র একটি টেবিলটি মিলিয়ন লাইনে বৃদ্ধি পাবে তবে বাকীগুলি এক মিলিয়নের নিচে চলে যাবে। তাহলে কী পরামর্শ দেওয়া উচিত যা আমরা ইনডোডবি_ফাইলে_ টেবিলের সাথে যেতে পারি বা কেবল একটি হিসাবে ছেড়ে চলে যেতে পারি? আইবিডি? আমি কিছু নিবন্ধ পড়েছি বলেছি যে সেখানে সঞ্চালনের জন্য যোগদানের সময় আপনার আরও ডিস্ক অ্যাক্সেসের প্রয়োজন হবে কারণ এটির সাথে যাবেন না? প্রজন্মের উদ্দেশ্যে রিপোর্ট করার জন্য আমরা এই টেবিলটি এবং অন্যদের মধ্যে যোগদান করব।

উত্তর:


24

আপনাকে অবশ্যই ইনোডবি_ফিল_পিটার_সমাজের সাথে যেতে হবে এবং ইনোডিবি'র বর্তমান অবকাঠামো দিয়ে কীভাবে পরিষ্কার করা দরকার আপনার কিছু করা দরকার।

আমি অনেক ডিবি হোস্টিং ক্লায়েন্টকে মাইএসকিউএল সেটআপ করতে দেখেছি এবং ইনোডিবি-কে তার ডিফল্ট অবস্থায় রেখেছি। এর ফলে সিস্টেম টেবিলস্পেস (আইবিডাটা 1 হিসাবে বেশি পরিচিত) বন্য আকার ধারণ করে।

এমনকি আপনি ইনোডাব_ফাইলে_পিটার_সেবায় স্যুইচ করলেও .bd ফাইলটি ইবদাটা 1 থেকে বের করতে হবে এবং ইবদাটা কখনই সঙ্কুচিত হবে না। উদাহরণস্বরূপ, যদি আপনার কাছে mydb.mytable নামক একটি টেবিল থাকে যা আইবডাটা 1-এর ভিতরে থাকে 2 জিবি গ্রহণ করে, এটি বের করার জন্য আপনাকে নিম্নলিখিতটি পেতে হবে:

পদক্ষেপ 01) এটিকে /etc/my.cnf এ যুক্ত করুন

[mysqld]
innodb_file_per_table

পদক্ষেপ 02) service mysql restart

পদক্ষেপ 03) ALTER TABLE mydb.mytable ENGINE=InnoDB;

এটি ফাইলটি /var/lib/mysql/mydb/mytable.ibd তৈরি করবে

দুর্ভাগ্যক্রমে, 2 জিবি স্থানটি পরিবর্তনের আগে টেবিলের দখলে ছিল আর পুনরায় দাবি করা যায় না। ইনোডিবি'র অবকাঠামো কীভাবে এবং কীভাবে পরিষ্কার করা যায় সে সম্পর্কে আমি অতীতের পোস্টগুলি লিখেছিলাম:

আপনি যখন এই বড় পরিবর্তনটি করেন, তবে ইনডোডবি_পেন_ফায়ালগুলি (ডিফল্ট 300) বৃদ্ধি করতে ভুলবেন না । অন্যথায়, ডিস্ক অ্যাক্সেস খুব সীমাবদ্ধ।

যোগদানের বিষয়ে, নিশ্চিত হয়ে নিন যে আপনার কাছে সঠিক সূচী রয়েছে যা যোগদানের মানদণ্ডকে সমর্থন করে।

আপডেট 2012-04-02 11:30 ইডিটি

ইনোডোবি_ফাইলে_ টেবিলটি একটি নতুন ইনস্টলশনে আইবডাটা 1 খুব ধীরে ধীরে বৃদ্ধি পেতে পারে কারণ সমস্ত ডিডিএল ইবদাতার বাহ্যরে সম্পন্ন হয়। আমি এর আগে যেমন উল্লেখ করেছি আপনি কোনও InnoDB টেবিল সঙ্কুচিত করতে পারেন:

ALTER TABLE mydb.mytable ENGINE=InnoDB;

আপডেট 2012-04-02 16:50 ইডিটি

ব্যাকআপগুলির ক্ষেত্রে, .ibd ফাইলগুলির অনুলিপিগুলি তৈরি করতে অত্যন্ত সতর্কতা অবলম্বন করুন। কেন?

প্রতিটি .ibd ফাইলের অভ্যন্তরে টেবিলস্পেস_আইডি হিসাবে পরিচিত বিশেষ মান। আইবডাতা 1-এ টেবিলস্পেস_আইডি মানগুলির একটি তালিকা রয়েছে। আপনি যদি কখনও টেবিল রক্ষণাবেক্ষণ করেন যা টেবিলটি বাদ এবং পুনরায় তৈরি করা দরকার, টেবিলস্পেস_আইডি আলাদা হয়ে যাবে। এই জাতীয় একটি আইডিবিডি ফাইলের অনুলিপি তৈরি করা কেবলমাত্র ডাটাবেসে ব্যবহারের জন্য আবার সংযুক্ত করা যেতে পারে যদি আপনি আইবিডাটা 1 এর একটি অনুলিপিও করেন। এটি অন্য সমস্ত InnoDB টেবিলগুলির টেবিল স্পেস_আইডিকে বিপন্ন করে। এর আলোকে, আপনি মাইএসকিএলডাম্প ব্যাকআপগুলি পরিচালনা করা ভাল pre কারণ মাইএসকিএলডাম্পগুলি ডেটার লজিকাল কপি। অন্য কথায়, ব্যাকআপটি ইবদাটা 1 এর পয়েন্ট-ইন-টাইম থেকে স্বতন্ত্র এবং আপনি অপারেবিলিটি সমস্যা ছাড়াই পুনরায় লোড করতে পারেন free


এটি একটি নতুন সার্ভার হতে চলেছে so সুতরাং আমার এখন কী করা উচিত? আপনি কেন ইনডোডবি_ফাইলে_পড়ু_ টেবিলের সাথে যেতে ভাল বলছেন? ওভারটাইম এই টেবিলটি বাড়ছে যে কোনও ধরণের সীমাবদ্ধতার ত্রুটিটি দেখতে হবে?
newbie14

7

@ রোল্যান্ডোমাইএসকিউএলডিবিএর সাথে সম্মত হন, এমন কোনও কিছুর জন্য তিনি উল্লেখ করেন না: ব্যাকআপ।

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


প্রিয় সকল হ্যাঁ আমিও ব্যাকআপ চালানোর পরিকল্পনা করি। আমার যদি ব্যাকআপ নিতে মাস্টার দরকার তবে কেবল মাস্টার থেকে স্লেভ এ কী পার্থক্য? এটা কি দুজনেই একে অপরের ব্যাকআপ নেবে? সেটিংসে কী পরিবর্তন করা দরকার?
newbie14

4

আমার একটি অ্যাপ্লিকেশন রয়েছে যেখানে আমার ঠিক এই পরিস্থিতি রয়েছে: কিছু বড় টেবিল এবং কিছু ছোট ছোট ones

ibdata1বড়গুলি তাদের নিজস্ব ফাইলগুলিতে রাখার সময় আমি ছোটদের ছেড়ে যাওয়ার সিদ্ধান্ত নিয়েছি ।

আমি এটি innodb_file_per_tableডিফল্টরূপে স্যুইচ করেই করি এবং কেবলমাত্র কোনও টেবিলটি সরিয়ে রাখার জন্য এটি অস্থায়ীভাবে বন্ধ ibdata1করে দেয় ALTER TABLE


@ জিগিগি কীভাবে ছোট্ট আইবডটা 1 এ রেখে যাবে এবং বড় ফাইলগুলি তাদের নিজস্ব ফাইলগুলিতে এটি কী তা নয় যে আপনি যদি এই ইনডোড_ফিল_পিটার_সামগ্রীটি সেট করেন তবে সমস্ত কি তাদের নিজস্ব ফাইলে থাকবে?
newbie14

কেবল ALTER TABLEতাদের পরে । সুতরাং আমার কৌশলটি হ'ল innodb_file_per_tableনিয়মিতভাবে স্যুইচ করা ibdata1এবং কোনও ছোট টেবিলটি এর মধ্যে সরাতে এবং পরে এটিকে আবার স্যুইচ করার জন্য আনুষ্ঠানিকভাবে এটিকে স্যুইচ অফ করা।
glglgl

সর্বদা ইন্ডিওডবি_ফাইলে_পরে থাকতে হবে কি ঠিক এখানে সমস্যা নেই?
newbie14

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