আমি কীভাবে কোনও মাইএসকিএল ডাটাবেস ব্যাকআপ করব, তবে কম অগ্রাধিকারে?


15

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

Mysqldump কমান্ডটি ব্যবহার করা সম্ভব হবে , তবে কম অগ্রাধিকারে কমান্ডটি চালান।

কিভাবে আমি এটি করতে পারব?

আপডেট: মনে হচ্ছে যে মাইএসকিলডাম্পের সাথে কেবল দুর্দান্ত ব্যবহার করা কার্যকর হয় না যেহেতু মাইএসকিলডাম্প একটি নতুন প্রক্রিয়া তৈরি করেছে।


আপনি কি mysqlhotcopy তাকান?

@fsb কীভাবে মাইজকিহ্লটকপিটি ওপি চায় তা সমর্থন করে?
টমাস

উত্তর:


8

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

একটি দুর্দান্ত বোনাস হিসাবে, আপনার কাছে এখন কেবল পঠনযোগ্য গোলাম রয়েছে যা আপনি ধীর দীর্ঘ-চলমান প্রশ্নের জন্য ব্যবহার করতে পারেন।


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

2
আপনি যদি অপারেশনগুলিকে প্রভাবিত করতে না চান তবে সঠিকভাবে চুপচাপ ব্যাকআপ পাওয়ার এটি একমাত্র উপায়। যেহেতু ধীর গতির mysqldumpফলে লম্বা লক ধরে রাখা বা টেবিলগুলি সিঙ্কের বাইরে চলে যাবে।
ড্যান কার্লি

15

অ্যান্ডি, এখনই আমি অনুমান করছি যে সমাধানের জন্য আপনার কাছে প্রচুর সময় ছিল। আমি সম্প্রতি এর একটি সমাধান নিয়ে এসেছি যা টিশীটে আমার জন্য দুর্দান্ত কাজ করেছে , এবং আমি বুঝতে পেরেছি যে এটি ভাগ করব।

cstream হ'ল UNIX dd এর মতো একটি সাধারণ-উদ্দেশ্য স্ট্রিম হ্যান্ডলিং সরঞ্জাম, সাধারণত কমান্ডলাইন-নির্মিত পাইপগুলিতে ব্যবহৃত হয়। যে জিনিসটি আমাদের জন্য সিস্ট্রিমকে দরকারী করে তোলে তা হ'ল এটি আপনাকে সমস্ত ইনপুটটির জন্য সর্বাধিক ব্যান্ডউইদথ নির্দিষ্ট করতে দেয়। এর অর্থ আপনি আপনার মাইএসকিলডাম্প কমান্ডের ডিস্ক আইওকে এই জাতীয় কমান্ড দিয়ে সীমাবদ্ধ করতে পারেন:

mysqldump --single-transaction --quick -u <USER> -p<PASS> <Database> | cstream -t 1000000 > backup.sql

ধরে নিই যে আপনি সমস্ত ইনোডিবি সারণী ব্যবহার করে এমন একটি ডাটাবেস ব্যাক আপ করছেন, উপরের কমান্ডটি নিরাপদ (অন্যান্য প্রশ্নের উপর প্রভাব ফেলবে না) এবং ডিস্কটি প্রতি সেকেন্ডে কেবল একটি মেগাবাইটে সীমাবদ্ধ করার সময় আপনার মাইএসকিल्डম্পটি করবে will আপনার গ্রাহকের অভিজ্ঞতাকে প্রভাবিত না করে আপনার পরিবেশটিকে ব্যাকআপটি সম্পাদনের অনুমতি দেবে এমন যে কোনও মানের সাথে -t প্যারামিটারের সাথে ব্যান্ডউইথটি সামঞ্জস্য করুন।


শুধু পরীক্ষা করা হয়েছে এবং আমি একটি কবজ মত কাজ! ব্র্যান্ডন ভাগ করে নেওয়ার জন্য ধন্যবাদ!
সিকোট্রনিক

4

এফডাব্লুআইডাব্লু আপনার পিভি দিয়ে এটি করতে সক্ষম হওয়া উচিত ( http://linux.die.net/man/1/pv )

mysqldump --single- ਲੈਣ - Quick -u -p | পিভি --রেট-সীমা 1 মি> গন্তব্য (বা | এনসি বা | তারের সিএফজে ব্যাকআপ.bz2 -)

এ সম্পর্কে দুর্দান্ত বিষয় হ'ল অগ্রগতি পর্যবেক্ষণের বিভিন্ন বিকল্প এবং -আর বিকল্প যা আপনাকে ইতিমধ্যে চলমান প্রক্রিয়াতে বিকল্পগুলি পাস করার অনুমতি দেয়, যেমন; স্থানান্তর হার পরিবর্তন করতে --rate-সীমা।


1

যদি আপনি InnoDB ব্যবহার আপনি চেষ্টা করতে পারেন xtrabackup --throttle সঙ্গে বিকল্প

ভাল হিসাবে আপনি তাকান করতে পারেন ionice এটা দিয়ে এবং চালানোর mysqldump।

অথবা হতে পারে আপনি মাইএসকিএল-তে বাইনারি লগিং সক্ষম করতে এবং প্রতি সপ্তাহে / রাতে একবার সম্পূর্ণ ডাম্প চালাতে চান, বেন-লগগুলি প্রতি 1-2 ঘন্টা সময়ে নিরাপদ স্থানে অনুলিপি করার সময়। এবং .. কেবলমাত্র ব্যাকআপ-শুধুমাত্র উদ্দেশ্যে কেবল পঠনযোগ্য স্লেভও একটি বিকল্প an


0

আপনি যদি এটি লিনাক্সে চালাচ্ছেন বা অন্য কোনও * নিক্স রূপে আপনি নিম্নলিখিতটি দিয়ে এটি করতে পারেন:

সুন্দর -n ## মাইএসকিএলডম্প

এটি এটিকে একটি শিডিংয়ের কম অগ্রাধিকার দেবে। অগ্রাধিকারের রেঞ্জ নির্ধারণ -20 (সর্বোচ্চ অগ্রাধিকার) থেকে 19 (সর্বনিম্ন অগ্রাধিকার) -র জন্য আর্গুমেন্ট বাদ দিলে চমৎকারের জন্য ডিফল্ট 10 হয় ..


0

cron.d / mysql_dump:

17 22 * * * backup touch /home/backup/all_databases.sql && chmod 600 /home/backup \ 
/all_databases.sql && ionice -n 7 /usr/bin/mysqldump -u root -ppassword --opt --all- \
databases > /home/backup/all_databases.sql && nice -n 20 bzip2 -f \
/home/backupall_databases.sql

আইওনিস I / O অগ্রাধিকারের জন্য এবং সিপিইউ অগ্রাধিকারের জন্য দুর্দান্ত।

ভিএমস্ট্যাট 5 চালান, ডাব্লুএ বলে যে কলামটি পরীক্ষা করে দেখুন। উচ্চ মান মানে সিপিইউ I / O এর জন্য অপেক্ষা করছে। আয়নিস ব্যবহার করুন, যদি এটির কেবল সিপিইউ লোড হয় তবে দুর্দান্ত ব্যবহার করুন।

আপডেট করার প্রতিক্রিয়া:

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

আপনার কাছে দরকারী স্ক্রিপ্ট তৈরি করার জন্য এটিএম ডাম্প করার মতো পর্যাপ্ত পরিমাণে ডাটাবেস আমার কাছে নেই।

প্রতিলিপি, যেমন আপনার লিঙ্কটি পরামর্শ দেয়, যাওয়ার এক উপায় is এন্টোয়ার হোস্টে অনুলিপি করুন, থামান এবং ফেলে দিন।


0

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


0

আপনি সর্বদা শিখতে না পারার চেষ্টা করতে পারেন peak আপনি যে অগ্রাধিকার ব্যবহার করুন না কেন, ডাম্পটির জন্য এখনও আপনার সমস্ত টেবিলগুলিতে একটি লক লাগবে।


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