আপনি এই মর্মস্পর্শী সন্ধান করতে যাচ্ছেন তবে আপনার কেবল একটি প্রধান বিকল্প প্রয়োজন: --opt
--Opt কি ?
এই বিকল্পটি ডিফল্টরূপে সক্ষম করা হয়েছে - - অ্যাড- ড্রপ-টেবিল - অ্যাড-লকস - ক্রিয়েট-বিকল্পগুলি - ডিসাইবল- কী - এক্সটেন্ডেড-সন্নিবেশ - লক -টেবিলগুলি - কুইক - এর সংমিশ্রনের জন্য শর্টহ্যান্ড is সেট অক্ষরসেট । এটি একটি দ্রুত ডাম্প অপারেশন দেয় এবং একটি ডাম্প ফাইল তৈরি করে যা একটি মাইএসকিউএল সার্ভারে দ্রুত পুনরায় লোড করা যায়।
যেহেতু - -অ্যাপ্ট বিকল্পটি ডিফল্টরূপে সক্ষম হয় , আপনি কেবলমাত্র এর কনভার্সটি নির্দিষ্ট করেন, বেশ কয়েকটি ডিফল্ট সেটিংস বন্ধ করার জন্য --স্কিপ-অপ্ট। --Opt দ্বারা প্রভাবিত বিকল্পগুলির সাবসেটটি নির্বাচিতভাবে সক্ষম বা নিষ্ক্রিয়করণ সম্পর্কিত তথ্যের জন্য mysqldump অপশন গ্রুপগুলির আলোচনা দেখুন।
যেহেতু --opt ইতিমধ্যে সক্ষম হয়েছে, আপনাকে --opt নির্দিষ্ট করার দরকার নেই । তবুও, আপনার কিছু প্রয়োজনীয় বিকল্পের প্রয়োজন হতে পারে যা অন্তর্ভুক্ত নেই।
আপনার ডাটাবেসে এই কোয়েরিটি চালান
SELECT engine,COUNT(1) TableCount
FROM information_schema.tables
WHERE engine IN ('InnoDB','MyISAM')
AND table_schema NOT IN ('information_schema','mysql','performance_schema')
GROUP BY engine;
আপনার যদি সমস্ত InnoDB টেবিল থাকে তবে আপনাকে --single- লেনদেন নির্দিষ্ট করতে হবে । এটি স্বয়ংক্রিয়ভাবে - তালা-সারণীগুলি নিষ্ক্রিয় করবে এবং আপনাকে একই পয়েন্ট-ইন-সময়ে সমস্ত টেবিল ডাম্প করার অনুমতি দেবে এবং একই সাথে নতুন লেখাগুলি আসতে দেবে।
আপনার যদি এক বা একাধিক মাইআইএসএএম টেবিল থাকে তবে আপনাকে লক -অল-টেবিলগুলি নির্দিষ্ট করতে হবে । এটি স্বয়ংক্রিয়ভাবে - লক -টেবিলগুলি নিষ্ক্রিয় করবে - একসেল-লেনদেন নিষ্ক্রিয় করবে , সমস্ত ডাটাবেস জুড়ে সমস্ত টেবিল লক করবে এবং তারপরে ডাম্প তৈরি করবে। InnoDB টেবিলগুলিতে রচনাগুলি এখনও ঘটতে পারে তবে লকগুলি প্রকাশ না হওয়া পর্যন্ত এগুলি সারি সারি থাকবে। যে কোনও ডিবি সংযোগ যে কোনও মাইআইএসএএম টেবিলগুলিতে লেখার চেষ্টা করছে তা সমস্ত লক প্রকাশ না হওয়া পর্যন্ত স্থগিত হয়ে যাবে।
এই কোয়েরিটি চালান: SELECT COUNT(1) Number_Of_Stored_Procedures FROM mysql.proc;
যদি Number_Of_Stored_Procedures
শূন্যের চেয়ে বড় হয়, --routines ব্যবহার করুন ।
এই কোয়েরিটি চালান: SELECT COUNT(1) Number_Of_Triggers FROM information_schema.triggers;
যদি Number_Of_Triggers
শূন্য থেকে বড়, ব্যবহার --triggers ।
কায়েট : দয়া করে সমস্ত ডেটাবেস ডাম্প করার জন্য - অর্ডার বাই প্রাইমারী ব্যবহার করবেন না কারণ এটি পুনরায় লোডের পরিবর্তে বিটিআরই সূচকগুলি তৈরি করতে পারে। - বর্ডার বাই প্রাইমারি কেবলমাত্র কোনও পৃথক টেবিলটি ডাম্প করার সময় ব্যবহার করা উচিত যা আপনি জানেন যে একটি পূর্ণসংখ্যার প্রাথমিক কী রয়েছে এবং আপনার অ্যাপ্লিকেশন থেকে প্রচুর পরিসীমা স্ক্যান থাকবে।
আপনার যদি আরও সৃজনশীল ধরণের মাইএসকিলডাম্প ব্যাকআপের প্রয়োজন হয় তবে আমার পুরানো পোস্টটি দেখুন কীভাবে আমি একটি বৃহত ডাটাবেসের একটি মাইএসকিल्डম্প পছন্দ করতে পারি? ।
দয়া করে mysqldump জন্য সমস্ত বিকল্প পড়া ।
আপডেট 2014-12-29 09:44 EST
আমি আমার মাইএসকিলডাম্প কমান্ডটি আপডেট করেছি (দয়া করে আমার সম্পাদনাটি দেখুন)। যদিও আমার একটি শেষ প্রশ্ন আছে। আপনি কি মনে করেন যে নিম্নলিখিত আর্গুমেন্টগুলিও পাশাপাশি ব্যবহার করা ভাল? - অ্যাড-ড্রপ-ডাটাবেস \ - অ্যাড-ড্রপ-টেবিল \ - সম্পূর্ণ-সন্নিবেশ \ - বিলম্বিত সন্নিবেশ \ --tz-utc
আপনার মন্তব্য এবং আপনার সর্বশেষ সম্পাদনাটি দেখে, আসুন এই বিকল্পগুলির প্রতিটিটি দেখুন এবং সেগুলির কোনও প্রয়োজন কিনা তা দেখুন
- --opt : আমি ইতিমধ্যে বলেছি এটি নির্দিষ্ট করার দরকার নেই কারণ এটি ডিফল্টরূপে সক্ষম করা হয়েছে।
- - বিলম্বিত-সন্নিবেশ : আমি দৃ In়ভাবে একটি সমস্ত InnoDB ডাটাবেস দিয়ে এ থেকে দূরে থাকি। আসলে, আমি দৃama়ভাবে এই পিরিওড থেকে দূরে থাকি !!! । যেহেতু 1) ইনসার্ট বিলম্বিত ডেটা হারাতে পারে এটি সম্ভব, 2) এটি মাইএসকিউএল প্রতিলিপি দাসদের জন্য ইনসার্টে রূপান্তরিত হয়, 3) মাইএসকিউএল 5.6 এ ট্রিগারগুলির সাথে এটি ব্যবহার সম্পর্কে একটি খোলা বাগ রিপোর্ট রয়েছে এবং এটি একটি বাগ হিসাবে বিবেচিত হয় না , 4 ) এটি মাইএসকিউএল 5.6 এ অবহিত করা হয়েছে , এবং 5) মরগান টকার (সুপরিচিত মাইএসকিউএল গুরু) এর অবনতি পূর্বেই দেখেছিল 2012 , আপনি এই বিকল্পটি কখনওই ভুলে যাওয়া উচিত। কখনও করবেন না, কখনও (অনন্ত) এটি ব্যবহার করবেন না !!!
- - অসম্পূর্ণ সন্নিবেশ : এটি
INSERT INTO tblname (colnam_1,colnam_2,...colnam_n) VALUES ...
পরিবর্তে ব্যবহার করবে INSERT INTO tblname VALUES ...
। টেবিলের সংজ্ঞাতে অনেকগুলি কলাম এবং টেবিলের অনেকগুলি সারি থাকলে এটি মাইএসকিএলড্পটি ফুটিয়ে তুলতে পারে। এটি ব্যবহার করবেন না।
- --add- ড্রপ-টেবিল : যেহেতু --opt এটি আপনার জন্য সক্ষম করে, আপনার এটি নির্দিষ্ট করার দরকার নেই।
- - অ্যাড-ড্রপ-ডাটাবেস : আপনি - অ্যাড-ড্রপ-ডাটাবেস বাদ দিলে এটি কেবল
DROP TABLE IF EXISTS
(যা অ্যাড-ড্রপ-টেবিল যোগ করেছে ) দ্রুত এগিয়ে যায়। এটি ব্যবহার না করা DROP TABLE IF EXISTS
প্রতিটি টেবিলের জন্য সহজভাবে ঘটতে দেয় । সুতরাং, --add-ড্রপ-ডাটাবেস ব্যবহার করা ব্যক্তিগত পছন্দের বিষয়।
- --tz-utc : আপনি যদি একই সার্ভার থেকে ডেটা পুনরুদ্ধার করার পরিকল্পনা করেন তবে আপনি ব্যাকআপ নিয়ে যান, আপনার --tz-utc দরকার নেই । আপনি যদি কোনও আলাদা সময় অঞ্চলে অন্য ডেটা সেন্টারে ডেটা পুনরুদ্ধার করেন এবং ...
- আপনি যদি একই টাইমজোন থেকে ব্যাকআপ রাখতে চান তবে আপনার --tz-utc দরকার নেই ।
- আপনি যদি কোনও নতুন ডেটা সেন্টারের সময় অঞ্চলটি ডেটা ব্যবহার করতে চান তবে আপনার প্রয়োজন --tz-utc ।
- উদাহরণ: আপনি নিউ ইয়র্কে একটি ডাটাবেস ব্যাকআপ বলুন। এটা EST। সিয়াটলে আপনার যদি অন্য কোনও ডেটা সেন্টার থাকে তবে তা পিএসটি হবে। আপনি যদি সিয়াটলে নিউ ইয়র্ক ব্যাকআপ পুনরুদ্ধার করতে চান এবং আপনি ডাটাবেসে টাইমস্ট্যাম্পগুলি এখনও নিউ ইয়র্কের প্রতিনিধিত্ব করতে চান তবে আপনি --tz-utc ব্যবহার করতে চান না ।
- --default-অক্ষর সেট
আপনার সর্বশেষ সম্পাদনাটি সামঞ্জস্য করা, এটি আপনার বিশেষত প্রয়োজন
mysqldump\
--host=localhost\
--port=3306\
--databases ****\
--user=****\
--password=****\
--single-transaction\
--routines\
--triggers\
--events\
--add-drop-database\
> dump/test.sql
আবার, আমি বলছি দয়া করে মাইএসকিএলডাম্পের জন্য সমস্ত বিকল্প পড়ুন ।