ন্যূনতম ডাউনটাইম সহ কীভাবে মাইএসকিউএল প্রতিলিপি সেটআপ করবেন


12

মূলত আমাদের কাছে একটি বড় মাইএসকিউএল ডাটাবেস রয়েছে এবং আমরা একটি ক্রীতদাসের প্রতিরূপ (মাস্টার স্লেভ সেটআপ) করতে চাইছি। আপনারা কীভাবে ডেটাবেজে MINIMAL ডাউনটাইম দিয়ে এটি করবেন তা সম্পর্কে কোনও ধাপে ধাপে গাইড রয়েছে? ডাটাবেসটির ব্যাক আপ নেওয়া এবং স্লেভ সার্ভারে ব্যাকআপ স্থানান্তরকরণ (এমনকি একটি ব্যক্তিগত নেটওয়ার্কের মাধ্যমে) 40 মিনিট বা তার বেশি সময় লাগে। বেশ দীর্ঘ ডাউনটাইম।

উত্তর:


15

আমি ধরে নিই যে আপনি স্টোর ইঞ্জিন হিসাবে InnoDB ব্যবহার করেন। যদি তা হয় তবে আপনাকে বিন-লগিং চালু করতে হবে । যদি এটি এখন না হয় তবে আপনাকে মাই সিএনএফ পরিবর্তন করার পরে মাইএসকিউএল পুনরায় চালু করতে হবে। এটি একমাত্র ডাউনটাইম, এর পরে আপনি ডাটাবেসটিকে অবরুদ্ধ না করে বিনলগ অবস্থানের সাথে ডাটাবেসের ডাম্প নিতে পারেন:

mysqldump --skip-lock-tables --single-transaction --flush-logs --hex-blob --master-data=2 -A

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


কিছু টেবিল যদি ইনডোডাব ব্যবহার না করে তবে কি হবে? এবং যদি আমি -A এর পরিবর্তে ডেটাবেসগুলির একটি উপসেট ডাম্প করতে - ডেটাবেস ব্যবহার করি তবে উপরের ব্যাকআপটি কি এখনও বৈধ হবে?
ম্যাথিউ

যদি কিছু টেবিলগুলি ইনডোডব ব্যবহার না করে তবে ব্যাকআপটি অসঙ্গত হতে পারে। এখানে দেখুন: স্ট্যাকওভারফ্লো . com / a / 7461466 / 104398 ; ব্যাকআপে সেগুলি বাদ দেওয়া ডেটাবেস থাকবে না। আপনি যদি এই জাতীয় ব্যাকআপের ভিত্তিতে প্রতিলিপি সেট আপ করেন এবং যা প্রতিলিপি করা হয়েছে তা ফিল্টার না করেন - বাদ দেওয়া ডেটাবেসগুলিতে কিছু অপারেশন হওয়ার সাথে সাথে আপনার অনুলিপিটি ভেঙে যাবে।
pQd

ঠিক আছে, আমি আমার বাকী মাইসাম টেবিলগুলিকে ইনোডাব-এ রূপান্তর করেছি এবং নিশ্চিত করেছি যে আমি চাই যে কেবলমাত্র ডাটাবেসগুলিই নকল / ব্যাক-আপ করে।
ম্যাথিউ

3

একটি অনুলিপি শুরু করতে আপনার দাসে আপনার ডাটাবেসের একটি ধারাবাহিক অনুলিপি প্রয়োজন

আপনার টেবিলগুলি মাইসাম বা ইনোডাব ব্যাকযুক্ত? ইস্যু সন্ধান করতে

show table status

এবং 'ইঞ্জিন' কলামটি দেখুন

যদি সমস্ত টেবিলগুলি মাইএসকিএলডাম্প ব্যবহার করে শূন্য ডাউনটাইম সেটআপ করতে পারে তার চেয়ে কম ইনডোডব হয় - সাসল-লেনদেন এবং এটি দাসে আমদানি করে

যদি টেবিলগুলি মাইসাম হয় তবে ডাউনটাইম থাকতে হবে কারণ সেগুলি অনুলিপি করার সময় আপনাকে লেখার জন্য টেবিলগুলি লক করতে হবে। mysqlhotcopy এটি আপনাকে সাহায্য করার জন্য সরঞ্জাম।

বিকল্পভাবে, আপনি যদি LVM (লজিকাল ভলিউম ম্যানেজার) ব্যবহার করেন তবে আপনি ডাটাবেসটি বন্ধ করতে পারেন, কয়েক সেকেন্ডের মধ্যে একটি এলভিএম স্ন্যাপশট নিতে পারেন এবং আবার ডিবি শুরু করতে পারেন। তারপরে আপনি স্ন্যাপশট থেকে একটি ধারাবাহিক অনুলিপি তৈরি করতে পারেন।


1

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

আপনি কি ডিস্ক স্ন্যাপশট করতে পারেন? আপনি হটব্যাকআপ করতে পারলে এটি ডাউনটাইমকে যথেষ্ট হ্রাস করবে।

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