মোটামুটি বড় ডাটাবেসগুলির জন্য মাইএসকিউএল ব্যাকআপ নেওয়ার সর্বোত্তম উপায় (মাইএসএএম / ইনোডিবি)


8

বর্তমানে আমাদের কাছে একটি মাইফাই মাইএসকিউএল ডাটাবেস রয়েছে যা বেশ কয়েকটি হাই ট্র্যাফিক জ্যাঙ্গো ভিত্তিক ওয়েবসাইট এবং সেইসাথে শালীন আকারের কিছু ই-কমার্স ওয়েবসাইট চালায়। ফলস্বরূপ আমাদের দুটি InnoDB এবং মাইআইএসএএম টেবিল ব্যবহার করে মোটামুটি পরিমাণে বৃহত ডাটাবেস রয়েছে।

দুর্ভাগ্যক্রমে আমরা ট্র্যাফিকের পরিমাণের কারণে সম্প্রতি একটি প্রাচীরের উপর আঘাত করেছি তাই আমি পড়ার / ব্যাকআপগুলি হ্রাস করতে সহায়তার জন্য আরেকটি মাস্টার সার্ভার সেটআপ করেছি।

এখন এই মুহুর্তে আমি কয়েকটি যুক্তি সহ কেবল মাইএসকিএলডাম্প ব্যবহার করি এবং এটি ঠিক আছে প্রমাণিত .. এখনও অবধি। স্পষ্টতই মাইএসকিএলডাম্প একটি ধীর দ্রুত পদ্ধতির তবে আমি বিশ্বাস করি আমরা এর ব্যবহারকে ছাড়িয়ে এসেছি। আমার এখন একটি ভাল বিকল্প দরকার এবং মাটকিটস এমকে-প্যারালাল-ডাম্প ইউটিলিটি বা এলভিএম স্ন্যাপশট সমাধানটি ব্যবহার করার চেষ্টা করছি।

সংক্ষিপ্ত সংস্করণ:

  • আমার বেশ বড় মাইএসকিউএল ডাটাবেস আছে যা আমাকে ব্যাকআপ করতে হবে
  • মাইএসকিल्डম্প ব্যবহারের বর্তমান পদ্ধতিটি অদক্ষ এবং ধীর (সমস্যা সৃষ্টি করে)
  • এমকে-প্যারালালাল ডাম্প বা এলভিএম স্ন্যাপশটের মতো কিছু অনুসন্ধান করা

যে কোনও প্রস্তাবনা বা ধারণাগুলি প্রশংসা করবে - যেহেতু আমি কীভাবে আমরা বরং এটি সঠিকভাবে / সর্বাধিক দক্ষ করেছি :) কীভাবে করব তা আমাকে আবার করতে হবে।

উত্তর:


5

আমি মাইএসকিউএল প্রতিলিপি এবং রাতের টারবাল দিয়ে ভাল সাফল্য পেয়েছি। ছোট ডিবির জন্য, মাইএসকিএল ডাটাবেস এবং স্কিমা আমি স্ক্রিপ্টগুলির সংমিশ্রণটি মাইএসকিহ্লটকপি এবং মাইএসকিএলডম্প ব্যবহার করার জন্য ব্যবহার করি।

InnoDB হট ব্যাকআপ একটি দুর্দান্ত বাণিজ্যিক পণ্য তবে আমি নিশ্চিত না যে এটি একই ডাটাবেসে মিশ্র টেবিলগুলি কীভাবে পরিচালনা করে। এক্সট্রাব্যাকআপের জন্য পিকিউডির প্রস্তাবনাটির তুলনায় এটি ভাল হতে পারে।

অন্যরা এলভিএম স্ন্যাপশট পছন্দ করে এবং আমি অবশ্যই বলি এটি অবশ্যই বিবেচনার জন্য। শেষ পর্যন্ত, সমাধানগুলির সংমিশ্রণটি সম্ভবত সেরা হবে।

এটি একটি পুরানো বিষয় এটিও উল্লেখযোগ্য। মধ্যে হাই পারফরমেন্স মাইএসকিউএল বই, মাইএসকিউএল ম্যানুয়াল এবং পূর্ববর্তী ServerFault questions-- এই একটি সাধারণ ভিত্তিতে ক্লান্ত হয়েছে। দেখা:


+1 টি; মাইসামের সাহায্যে আপনি কখনই জানতে পারবেন না যে আপনার যদি যুক্তিযুক্তভাবে সুসংগত ব্যাকআপ থাকে [lvm / mysqldump / lave থেকে নেওয়া] না হয়। সম্ভবত যদি আপনি কেবল ব্যবসায়ের সময় অ্যাপ্লিকেশন পরিবর্তন করেন - আপনি এটি নিরাপদে রাতে ডাম্প করতে পারেন, অন্যথায় - আপনি কখনই নিশ্চিত নন এবং কোনও পদ্ধতিই সহায়তা করবে না।
pQd

আমি মনে করি আপনি মিক্সিং সলিউশন সম্পর্কে ঠিক বলেছেন। পিকিউ'র জবাব অনুসারে উল্লিখিত হিসাবে আমি সম্ভবত এলভিএম স্ন্যাপশট নেব এবং xtrabackup ইউটিলিটিটি অনুসন্ধান করব (বলছে এটি মিশ্র টেবিলগুলি পরিচালনা করতে পারে)। আমি ইনোডিবি-র হট ব্যাকআপটি দেখেছি তবে আমি ওপেন সোর্স প্রকল্পগুলির জন্য সর্বদা একজন। রেফারেন্সের জন্য ধন্যবাদ, আমি 2 টির মধ্যে নজর দিয়েছি তবে উত্তরগুলি বেশ জেনেরিক / আমার যে সমস্যাগুলি রয়েছে সেগুলি সমাধান করে না / তারা আরও "সাধারণ" এবং "জাগতিক" ডাটাবেসগুলি উল্লেখ করছে।
উইঙ্কিওয়ালি

4

xtrabackup - অন্তত অন্তর্গত জন্য।


আকর্ষণীয় তবে আমি আমার ইনোডিবি / মাইআইএসএএম টেবিলগুলির মিশ্রণের বিষয়ে চিন্তা না করার আরও মনোমুগ্ধকর সমাধান চাই।
উইঙ্কিওয়ালি

xtrabackup স্ক্রিপ্ট সহ আসে যা আপনাকে মাইস্যামস ব্যাকআপ নিতেও সহায়তা করতে পারে তবে ওয়ার্নারের পোস্টের অধীনে আমার মন্তব্যটি দেখুন
pQd

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

3

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


0

ইসি 2 ইবিএসে, আমি এখনই এক্সএফএস_ফ্রিজে ব্যবহার করছি। আমি সম্ভবত এক পর্যায়ে xtrabackup এ স্যুইচিংয়ের দিকে তাকিয়ে আছি, কিন্তু যখন আমি এটি প্রথম পরীক্ষার রান দিয়েছিলাম তখন খুব সিপিইউ ক্ষুধার্ত ছিল।


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

আমার সবচেয়ে বড় দ্বিধা ছিল যে এটি প্রায় 30 মিনিটের জন্য সিপিইউ চিবিয়েছে (প্রায় 35 গিগাবাইট ডেটার একটি ডিবি ব্যাক আপ করছে), কেবলমাত্র সামান্য কার্যকরীভাবে ডিবি সার্ভারকে রেন্ডারিং করে - অবশ্যই এমন কোনও কিছু নয় যা আমি সম্ভবত কোনও প্রোডাকশন মাস্টারে চালিত হব । আমি ইতিমধ্যে এর উদ্দেশ্যে আমার বাকী কয়েকটি মাইআইএসএএম টেবিলগুলি আংশিকভাবে ইনোডিবিতে রূপান্তর করেছি। আমি মনে করি যতক্ষণ না এটি দাসের পিছনে পিছনে পড়ার কারণ না হয় ততক্ষণ কোনও দাসের উপরে চালানো ঠিক হবে।
ব্যবহারকারীর 33336

0

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


0

যদি আপনি কেবলমাত্র উত্তরাধিকারগত কারণে আপনার মাইএসএএম টেবিলগুলি রাখছেন (আপনি সেগুলি পরিবর্তন করতে বিরক্ত করেন নি) তবে সহজেই এটি ঠিক করতে আমি যা ব্যবহার করি তা এখানে:

    mysql -u root --password=<password> --database=db_name -B -N -e "SHOW TABLES" | awk '!/not_this_db/ && !/or_this_one/ && /^[a-z]/ {print "ALTER TABLE", $1, "ENGINE=INNODB;"}' | mysql -u root --password=<password> --database=db_name

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

তারপরে কোনও টেবিল লক না করে বা খুব বেশি ডিস্ক আইও (এসএসএস আরএসএ কী সেটআপ করার পরে) ব্যবহার না করে পুরো ডাটাবেসটি সরাসরি অন্য সার্ভারে অনুলিপি করতে xtrabackup ব্যবহার করুন:

innobackupex --throttle=500 --compress --stream=xbstream /doesntneedtoexist | ssh user@otherhost "xbstream -x -C /root/backup/"

এবং তারপরে আপনি প্রয়োগ লগ পদক্ষেপটি সম্পূর্ণ পৃথক করে এবং প্রোডাকশন সার্ভারে ডিস্কের স্থান, আইও, এবং সিপিইউ সংরক্ষণ করতে পারেন।

এক্সট্রাব্যাকআপ ব্যবহারের জন্য পারকোনার হাওটিওর

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