মাইএসকিউএল ডিবি ব্যাক আপ করার জন্য সেরা অনুশীলন


23

আমি সম্প্রতি আবিষ্কার করেছি যে আমাদের প্রযোজনা ওয়েব সার্ভারগুলি যেগুলি মাইএসকিউএল বন্ধ রয়েছে তা নিয়মিত (বা মোটেও) ব্যাক আপ করা যাচ্ছে না। আমি এসকিউএল সার্ভার ডিবি'র ব্যাকআপ নিতে অভ্যস্ত কিন্তু মাইএসকিউএল ডিবি'র সাথে এক টন অভিজ্ঞতা নেই। 'মাইএসকিলডাম্প' বা অন্য কোনও ডিবি ব্যাকআপ সরঞ্জাম ব্যবহারের জন্য কোনও সেরা অনুশীলন?

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

ধন্যবাদ।

উত্তর:


29

মাইএসকিউএল সার্ভারের ব্যাকআপ নেওয়ার সেরা অভ্যাস:

মাইএসকিউএল প্রতিলিপি

মাইএসকিউএলে প্রতিলিপি সেটআপ করুন। আপনাকে মাস্টার এবং স্লেভ সার্ভার সেটআপ করতে হবে। ডিবিতে সমস্ত পাঠ্য-লেখাগুলি আপনার স্লেভ সার্ভারে যেতে পারে। প্রতিলিপি থাকার সুবিধা হ'ল আপনি মাস্টার সার্ভারে বাধা ছাড়াই আপনার স্লেভ সার্ভার থেকে ব্যাকআপ নিতে পারেন, আপনার অ্যাপ্লিকেশনটি কোনও ডাউনটাইম ছাড়াই মাস্টারে কাজ করতে থাকবে।

মাইএসকিউএল ডাম্প ব্যবহার করে

যদি আপনার ডেটা সেটটি ছোট হয় (আমি বুঝতে পারি "ছোট" এটি একটি আপেক্ষিক শব্দ .. এটির যোগ্যতা অর্জনের জন্য, << 10 গিগা বলি) তবে মাইএসকিএলডম্প সম্ভবত দুর্দান্ত কাজ করবে। এটি সহজ, এটি অনলাইন এবং এটি খুব নমনীয়। মাইএসকিএলড্প কেবল কয়েকটি জিনিস করতে পারে: সবকিছু ব্যাকআপ করুন বা কিছু নির্দিষ্ট ডাটাবেস বা টেবিল ব্যাকআপ করুন কেবল ডিডিএল দ্রুত পুনরুদ্ধারের জন্য ডাম্পটিকে অনুকূলিত করে ফলাফল এসকিউএল ফাইলটিকে অন্যান্য আরডিবিএমএস এবং আরও অনেক কিছুর সাথে আরও সুসংগত করে তোলে।

তবে সর্বাধিক গুরুত্বপূর্ণ বিকল্পগুলি আপনার ব্যাকআপের ধারাবাহিকতার সাথে সম্পর্কিত। আমার প্রিয় বিকল্পগুলি হ'ল: --সিংল-লেনদেন: এই বিকল্পগুলি একটি সামঞ্জস্যপূর্ণ ব্যাকআপ দেয়, যদি (এবং কেবলমাত্র) সারণীগুলি ইনোডিবি স্টোরেজ ইঞ্জিন ব্যবহার করছে। যদি আপনার কাছে কেবল অ-পঠনযোগ্য মাইআইএসএএম টেবিল থাকে তবে তাদের ব্যাক আপ করার সময় এই বিকল্পটি ব্যবহার করবেন না। - মাস্টার-ডেটা = 2: এই বিকল্পটি নিশ্চিত করবে যে আপনার ডাম্প সামঞ্জস্যপূর্ণ (লক-অল-টেবিলগুলি করে - যদি না আপনি বিকল্পটি যুক্ত করেন - সান-লেনদেন)। --Master-data বিকল্পটি ফলস্বরূপ ডাম্প ফাইলে বাইনারি লগ অবস্থান রেকর্ড করে (= 2 এই লাইনটিকে ডাম্প ফাইলে একটি মন্তব্য হিসাবে চিহ্নিত করে)

মাইএসকিल्डম্প সম্পর্কে চূড়ান্ত নোট: মনে রাখবেন যে পুনরুদ্ধার সময় ব্যাকআপ সময়ের চেয়ে উল্লেখযোগ্যভাবে দীর্ঘ হতে পারে। এটি বিভিন্ন কারণের উপর নির্ভর করবে, উদাহরণস্বরূপ, আপনার কতগুলি সূচক রয়েছে।

এলভিএম স্ন্যাপশট

যাদের বড় ডেটাসেট রয়েছে তাদের জন্য একটি শারীরিক ব্যাকআপ হ'ল উপায়। আপনি শীতল ব্যাকআপ নেওয়ার সময় (যেমন, মাইএসকিউএল পরিষেবাটি শাটডাউন, ডেটা ডিরেক্টরিটি অনুলিপি করুন, পরিষেবাটি পুনরায় চালু করুন), অনেক লোক ডাউনটাইম চায় না। আমার প্রিয় সমাধানটি হ'ল স্ন্যাপশট। এটি গরম হতে পারে (InnoDB এর জন্য) বা একটি সংক্ষিপ্ত লক প্রয়োজন (মাইআইএসএএম এর জন্য)। আপনার সমস্ত ডেটা অন্তর্ভুক্ত করতে ভুলবেন না (আইবি_লগ ফাইলগুলি অন্তর্ভুক্ত)। লেনজ এটির জন্য সহায়তা করার জন্য একটি দুর্দান্ত ইউটিলিটি সরবরাহ করে: http://www.lenzg.net/mylvmbackup/

মাইএসকিউএল এন্টারপ্রাইজ ব্যাকআপ ব্যবহার করা

মাইএসকিউএল এন্টারপ্রাইজ ব্যাকআপ ব্যবহারের সুবিধা:

  • InnoDB টেবিলগুলির "হট" ব্যাকআপগুলি কেবলমাত্র নির্দিষ্ট টেবিল বা টেবিল স্পেসগুলিকে ব্যাকআপ অবরুদ্ধ না করে পুরোপুরি অনলাইন হয় takes
  • পূর্বের ব্যাকআপের পরে পরিবর্তিত ডেটা কেবল ব্যাকআপ করুন
  • সংকুচিত ব্যাকআপ - 90% এবং আরও অনেকগুলি পর্যন্ত স্টোরেজ সংরক্ষণ করে ..

তথ্যসূত্র: http://www.mysql.com / প্রোডাক্টস / এন্টারপ্রাইজ / ব্যাকআপ / ফিচারস html


7

আমি ব্যাকআপের জন্য ব্যবহার করার জন্য একটি উত্সর্গীকৃত প্রতিরূপ স্থাপনের সুপারিশ করব । এটি আপনাকে প্রাথমিকটিকে প্রভাবিত না করে কোনও ব্যাকআপ কাজ সম্পাদন করতে দেবে। এটি আপনার আর্কিটেকচারে জটিলতা যুক্ত করার সাথে সাথে, সমস্ত কিছু কাজ করছে তা নিশ্চিত করার জন্য আপনি প্রতিরূপ ল্যাগটি পর্যবেক্ষণ করতে চান।

আসল প্রক্রিয়া হিসাবে, আপনার কাছে কোনও তৃতীয় পক্ষের সরঞ্জাম ছাড়াই কয়েকটি বিকল্প রয়েছে। স্ন্যাপশট ব্যবহার গ্রহণ করা যেতে পারে mysqldumpকমান্ড (যদি আপনি InnoDB ব্যবহার করছেন অভিমানী): mysqldump --all-databases --single-transaction > all_databases.sql। ডেটা আকারের উপর নির্ভর করে, মাইএসকিউএল বন্ধ করা এবং সরাসরি ডেটা ফাইলগুলি ব্যাকআপ করা ভাল fe যখন প্রতিলিপিটি পুনরায় চালু করা হবে তখন এটি প্রাথমিক পর্যায়ে প্রাপ্ত সময়কালে সমস্ত ইভেন্টগুলি পুনরায় খেলবে lay আপনি যদি মাইএসকিউএল এন্টারপ্রাইজ mysqlbackupব্যবহার করেন তবে ইউটিলিটি এটি করে।

প্রতিরূপে বাইনারি লগ সক্ষম করে বর্ধিত ব্যাকআপ নেওয়া যেতে পারে । স্পষ্টতই, এটি কেবল এমন ইভেন্টগুলি রেকর্ড করে যা ডেটা পরিবর্তন করে তাই আপনাকে উপরের স্ন্যাপশটের সাথে এটি একত্রিত করতে হবে।


3
+1 এর জন্য --single-transactionতবে যুক্ত করতে ভুলবেন না --events --routinesএবং এটি সর্বদা --triggersডিফল্টরূপে সক্ষম হওয়া সত্ত্বেও আমি সর্বদা এটিও ব্যবহার করি, যেহেতু এটি my.cnf এ অক্ষম করা যায়। আমি বলব যে আপনার কাছে বর্তমানে আপনার ডাটাবেসে এই ধরণের অবজেক্ট রয়েছে কিনা তা স্ট্যান্ডার্ড অনুশীলন হিসাবে ব্যবহার করা বেশ সুন্দর।
মাইকেল - sqlbot

নোট mysqldump - সমস্ত ডাটাবেসগুলি ত্রুটিগুলি ট্রিগার করতে পারে যখন আপনার কম সর্বাধিক উন্মুক্ত টেবিল সেটিং সংজ্ঞায়িত করা হয়। সুতরাং আপনার mysql.log এ নজর রাখুন। প্রতিলিপিটি সত্যই সেরা ব্যাকআপ উপায় হবে
রেমন্ড নিজল্যান্ড

আপনি কীভাবে তথ্যের historicalতিহাসিক অনুলিপি রাখবেন? (প্রায়শই, একজন ক্লায়েন্ট এক মাস বা তারও বেশি ব্যাকআপ ধরে রাখতে চান, এবং যখন কোনও অ্যাপ্লিকেশন বাগ ডেটা নষ্ট করে দেয়, বিকাশকারীরা বাগের আগে থেকেই ডিবি-র একটি অনুলিপি চান)
রনজোহন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.