ডাটাবেস ক্লাস্টারিং কি? যদি আপনি একই ডাটাবেসটিকে 2 টি আলাদা সার্ভারে থাকতে দেন তবে তারা কীভাবে সিঙ্ক্রোনাইজডের মধ্যে ডেটা রাখে। এবং এটি কীভাবে ডেটাবেস সার্ভারের দৃষ্টিকোণ থেকে লোড ব্যালেন্সিং থেকে আলাদা?
ডাটাবেস ক্লাস্টারিং কি? যদি আপনি একই ডাটাবেসটিকে 2 টি আলাদা সার্ভারে থাকতে দেন তবে তারা কীভাবে সিঙ্ক্রোনাইজডের মধ্যে ডেটা রাখে। এবং এটি কীভাবে ডেটাবেস সার্ভারের দৃষ্টিকোণ থেকে লোড ব্যালেন্সিং থেকে আলাদা?
উত্তর:
ডেটাবেস ক্লাস্টারিং একটি অস্পষ্ট শব্দটি কিছুটা, কিছু বিক্রেতারা দুটি বা ততোধিক সার্ভার একই স্টোরেজ ভাগ করে এমন একটি ক্লাস্টার হিসাবে বিবেচনা করে, আবার কেউ কেউ একটি ক্লাস্টারটিকে প্রতিলিপিযুক্ত সার্ভারের সেট বলে।
প্রতিলিপি পদ্ধতিটিকে সংজ্ঞায়িত করে যার মাধ্যমে সার্ভারের একটি সেট ভৌগলিকভাবে ছড়িয়ে দিতে সক্ষম হয়ে স্টোরেজটি ভাগ না করে সিঙ্ক্রোনাইজ থাকে, এটি সম্পর্কে দুটি প্রধান উপায় রয়েছে:
মাস্টার-মাস্টার (বা মাল্টি-মাস্টার) প্রতিলিপি: যে কোনও সার্ভার ডেটাবেস আপডেট করতে পারে। এটি সাধারণত ডেটাবেসের মধ্যে একটি আলাদা মডিউল দ্বারা যত্ন নেওয়া হয় (বা কিছু ক্ষেত্রে তাদের উপরে চলমান একটি সম্পূর্ণ ভিন্ন সফ্টওয়্যার)।
খারাপ দিকটি হ'ল এটি করা খুব কঠিন এবং এই প্রতিরূপের মোডে কিছু সিস্টেম এসিডি বৈশিষ্ট্যগুলি হারাবে।
ওপারসাইড হ'ল এটি নমনীয় এবং ডাটাবেস আপডেট হওয়ার পরেও আপনি কোনও সার্ভারের ব্যর্থতা সমর্থন করতে পারেন।
মাস্টার-ক্রীতদাসের প্রতিলিপি: কেবলমাত্র অনুমোদিত তথ্যগুলির একক অনুলিপি রয়েছে, যা স্লেভ সার্ভারগুলিতে চাপানো হয়।
খারাপ দিকটি হ'ল এটি কম দোষ সহনশীল, যদি মাস্টার মারা যায় তবে দাসদের মধ্যে আর কোনও পরিবর্তন নেই are
ওপারসাইড হ'ল মাল্টি-মাস্টারের চেয়ে করা আরও সহজ এবং এটি সাধারণত এসিডি বৈশিষ্ট্য সংরক্ষণ করে।
লোড ব্যালেন্সিং একটি ভিন্ন ধারণা, এতে লোডগুলি যতটা সম্ভব সমানভাবে বিতরণ করা হয় সেই সার্ভারগুলিতে প্রেরিত ক্যোয়ারীগুলি বিতরণ করে। এটি সাধারণত অ্যাপ্লিকেশন স্তরে (বা সংযোগ পুলের সাহায্যে) করা হয়। প্রতিলিপি এবং লোড ব্যালেন্সিংয়ের মধ্যে একমাত্র সরাসরি সম্পর্ক হ'ল ভারসাম্যটি লোড করতে সক্ষম হওয়ার জন্য আপনার কিছু প্রতিরূপ প্রয়োজন, অন্যথায় আপনার একক সার্ভার থাকে।
এসকিউএল সার্ভারের দৃষ্টিকোণ থেকে:
ক্লাস্টারিং আপনাকে একটি সক্রিয় - প্যাসিভ কনফিগারেশন দেবে। একটি 2 নোড ক্লাস্টারের অর্থ, এর মধ্যে একটি সক্রিয় (পরিবেশন করা) এবং অন্যটি প্যাসিভ হবে (সক্রিয় নোড ব্যর্থ হলে দায়িত্ব নেওয়ার অপেক্ষায়)। এটি হার্ডওয়ার দৃষ্টিকোণ থেকে একটি উচ্চ প্রাপ্যতা।
আপনার একটি সক্রিয়-অ্যাক্টিভ ক্লাস্টার থাকতে পারে তবে প্রতিটি নোডে এসকিউএল সার্ভারের একাধিক ইনস্ট্যান্স চলমান হবে। (উদাহরণস্বরূপ নোড এ এর উদাহরণ 1 নোড বি তে উদাহরণ 2 এ ব্যর্থ হয়েছে, এবং উদাহরণ 1 নোড বি নোড এ 2 উদাহরণস্বরূপ ব্যর্থ হয়েছে)।
লোড ব্যালেন্সিং (কমপক্ষে এসকিউএল সার্ভারের দৃষ্টিকোণ থেকে) বিদ্যমান নেই (অন্তত ওয়েব সার্ভারের লোড ভারসাম্যের একই অর্থে)। আপনি যেভাবে ভার ভারসাম্য রাখতে পারবেন না। তবে আপনি নিজের অ্যাপ্লিকেশনটি সার্ভার 1-তে কিছু ডাটাবেসে চালিত করতে এবং সার্ভার 2-তে কিছু ডাটাবেসে চালনা করতে পারেন etc.
ক্লাস্টারিং কোনও ধরণের শেয়ার্ড স্টোরেজ ব্যবহার করে (উদাহরণস্বরূপ, একটি ড্রাইভ খাঁচা বা একটি SAN), এবং এটিতে দুটি ডাটাবেস সম্মুখ-প্রান্ত স্থাপন করে। সামনের দিকের সার্ভারগুলি একটি আইপি ঠিকানা এবং ক্লাস্টার নেটওয়ার্কের নাম ভাগ করে যা ক্লায়েন্টরা সংযোগ করতে ব্যবহার করে এবং তারা নিজেদের মধ্যে সিদ্ধান্ত নেয় যে বর্তমানে ক্লায়েন্টের অনুরোধগুলি সরবরাহ করার দায়িত্বে কে আছেন।
যদি আপনি কোনও নির্দিষ্ট ডাটাবেস সার্ভার সম্পর্কে জিজ্ঞাসা করেন তবে এটি আপনার প্রশ্নে যুক্ত করুন এবং আমরা তাদের প্রয়োগের বিশদটি যুক্ত করতে পারি, তবে এর মূল অংশে, এটিই ক্লাস্টারিং।
ডাটাবেস ক্লাস্টারিং আসলে আপনার সিস্টেমে ত্রুটি সহনশীলতার একটি অতিরিক্ত কার্যকারিতা যুক্ত দুটি বা সম্ভবত আরও নোডের মধ্যে সিনক্রোনাস রেপ্লিকেশনের একটি মোড এবং এটিও একটি ভাগ করা কিছুই নয় architect কিছুই ভাগ করে নেই এর অর্থ হ'ল পৃথক নোডগুলি আসলে কোনও শারীরিক সংস্থান যেমন ডিস্ক বা মেমরি ভাগ করে না।
যতক্ষণ না তথ্য সিঙ্ক্রোনাইজড রাখা সম্পর্কিত, সেখানে একটি ম্যানেজমেন্ট সার্ভার রয়েছে যার সাথে এটি অর্জনের জন্য এসকিউএল নোডের সাথে সমস্ত ডেটা নোড সংযুক্ত থাকে (মাইএসকিউএল সম্পর্কে বিশেষত কথা বলা)।
এখন পার্থক্য সম্পর্কে: লোড ব্যালেন্সিং কেবলমাত্র একটি ফলাফল যা ক্লাস্টারিংয়ের মাধ্যমে অর্জন করা যেতে পারে, অন্যগুলির মধ্যে উচ্চ প্রাপ্যতা, স্কেলাবিলিটি এবং দোষ সহনশীলতা অন্তর্ভুক্ত।