অনুকূল মাইএসকিলডাম্প সেটিংস কি? [বন্ধ]


14

কিছু অনুসন্ধানের পরে আমি নিম্নলিখিত সেটিংস দিয়ে শেষ করেছি:

    mysqldump\
    --host=localhost\
    --port=3306\
    --databases ****\
    --user=****\
    --password=****\
    --default-character-set=utf8\
    --add-drop-database\
    --add-drop-table\
    --add-locks\
    --complete-insert\
    --extended-insert\
    --lock-all-tables\
    --create-options\
    --disable-keys\
    --quick\
    --order-by-primary\
    --set-charset\
    --tz-utc\
    > dump/test.sql

এখন পর্যন্ত খুব ভাল তবে আমার প্যারামিটারগুলির সাথে সাথে মৃত্যুদন্ড কার্যকর করার বিষয়ে কিছু প্রশ্ন রয়েছে।

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

আমার দ্বিতীয় কনসার্টের বিষয়ে, আমি জানতে চাই যে কমান্ডটি ভুল হয়ে যায় তখন কীভাবে জানানো যায় এবং যদি একটি ব্যতিক্রম ছুঁড়ে দেয়।

কোন ধারনা?

সম্পাদনা

রোল্যান্ডোমাইএসকিউএলডিবিএর প্রতিক্রিয়া অবলম্বনে এটি আমার আপডেট হওয়া মাইএসকিल्डમ્પ কমান্ড।

mysqldump\
--host=localhost\
--port=3306\
--databases ****\
--user=****\
--password=****\
--default-character-set=utf8\
--opt\
--single-transaction\
--routines\
--triggers\
--events\
--add-drop-database\
--add-drop-table\
--complete-insert\
--delayed-insert\
--tz-utc\
> dump/test.sql

প্রতিটি যুক্তি এবং এর সুবিধাগুলি পড়ুন এবং আপনার পছন্দসইটি বেছে নিন। ব্যর্থতার ক্ষেত্রে ট্রিগার করতে স্ক্রিপ্টিংটিও জানুন।
মান্নোজ

কুল। তবে এটি আমার প্রশ্নের উত্তর দেয় না। উদাহরণস্বরূপ, আপনি কোনটি সর্বদা ব্যবহার করেন?
ব্যবহারকারী 706838

আমার অজ্ঞতা ক্ষমা করুন, এই প্রশ্নটি কোনও বই বা কোনও ওয়েবসাইটের প্রস্তাব দেওয়ার বিষয়ে নয়। সুতরাং আমি মনে করি এটি মতামত ভিত্তিক প্রশ্নের হওয়া উচিত নয়। এটি বলা হয়েছে যে কিছু উত্তর অবশ্যই দক্ষতার উপর নির্ভর করে আরও ভাল মানের হবে এবং পরীক্ষাগুলির ব্যাক আপ রয়েছে। আমার মতে, প্রশ্নটি একটি সুস্পষ্ট সংজ্ঞাযুক্ত উদ্দেশ্য সহ পুরোপুরি বর্ণিত হয়েছে is
ব্যবহারকারী 10089632

উত্তর:


30

আপনি এই মর্মস্পর্শী সন্ধান করতে যাচ্ছেন তবে আপনার কেবল একটি প্রধান বিকল্প প্রয়োজন: --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

আপনার মন্তব্য এবং আপনার সর্বশেষ সম্পাদনাটি দেখে, আসুন এই বিকল্পগুলির প্রতিটিটি দেখুন এবং সেগুলির কোনও প্রয়োজন কিনা তা দেখুন

আপনার সর্বশেষ সম্পাদনাটি সামঞ্জস্য করা, এটি আপনার বিশেষত প্রয়োজন

mysqldump\
--host=localhost\
--port=3306\
--databases ****\
--user=****\
--password=****\
--single-transaction\
--routines\
--triggers\
--events\
--add-drop-database\
> dump/test.sql

আবার, আমি বলছি দয়া করে মাইএসকিএলডাম্পের জন্য সমস্ত বিকল্প পড়ুন


- অ্যাড-ড্রপ-ডাটাবেস সম্পর্কে: এটিও নিশ্চিত করে না যে আপনার ডাটাবেসে অন্য কোনও এলোমেলো টেবিলগুলি নেই যা আপনার ডাম্পে নেই? যদি কেউ আপনার ডাটাবেসে ম্যানুয়ালি একটি এলোমেলো টেস্ট টেবিল তৈরি করে থাকে তবে এই বিকল্পটি ছাড়াই ডাম্প থেকে পুনরায় লোড করার পরে এটি উপস্থিত থাকবে। সুতরাং, আপনি এটি চান কিনা তা নির্ভর করে। রাইট?
jschultz410

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