ইংরেজিফরাসিস্প্যানিশ

Ad


অনওয়ার্কস ফেভিকন

pt-archiverp - ক্লাউডে অনলাইন

উবুন্টু অনলাইন, ফেডোরা অনলাইন, উইন্ডোজ অনলাইন এমুলেটর বা MAC OS অনলাইন এমুলেটরের মাধ্যমে OnWorks ফ্রি হোস্টিং প্রদানকারীতে pt-archiverp চালান

এটি হল pt-archiverp কমান্ড যা আমাদের একাধিক বিনামূল্যের অনলাইন ওয়ার্কস্টেশন যেমন উবুন্টু অনলাইন, ফেডোরা অনলাইন, উইন্ডোজ অনলাইন এমুলেটর বা MAC OS অনলাইন এমুলেটর ব্যবহার করে OnWorks ফ্রি হোস্টিং প্রদানকারীতে চালানো যেতে পারে।

কার্যক্রম:

NAME এর


pt-আর্কিভার - একটি MySQL টেবিল থেকে অন্য টেবিলে বা ফাইলে সারি আর্কাইভ করুন।

সাইনোপিসিস


ব্যবহার: pt-আর্কিভার [বিকল্প] -- উৎস ডিএসএন -- কোথায় কোথায়

pt- archiver একটি MySQL টেবিল থেকে রেকর্ড নিবল করে। --source এবং --dest আর্গুমেন্ট DSN ব্যবহার করে
বাক্য গঠন; যদি COPY হ্যাঁ হয়, --sours থেকে কী-এর মানকে --dest ডিফল্ট করে।

উদাহরণ:

oltp_server থেকে olap_server এবং একটি ফাইলে সমস্ত সারি আর্কাইভ করুন:

pt- archiver --source h=oltp_server,D=test,t=tbl --dest h=olap_server \
--file '/var/log/archive/%Y-%m-%d-%D.%t' \
--যেখানে "1=1" --সীমা 1000 --প্রতিটি কমিট

চাইল্ড টেবিল থেকে এতিম সারি শুদ্ধ (মুছুন) করুন:

pt- archiver --source h=host,D=db,t=child --purge \
--যেখানে 'অস্তিত্ব নেই (নির্বাচন করুন * পিতামাতার থেকে WHERE col=child.col)'

ঝুঁকি


পারকোনা টুলকিট পরিপক্ক, বাস্তব জগতে প্রমাণিত, এবং ভালভাবে পরীক্ষিত, তবে সমস্ত ডাটাবেস
সরঞ্জামগুলি সিস্টেম এবং ডাটাবেস সার্ভারের জন্য ঝুঁকি তৈরি করতে পারে। এই টুল ব্যবহার করার আগে,
অনুগ্রহ:

· টুলের ডকুমেন্টেশন পড়ুন

· টুলটির পরিচিত "বাগস" পর্যালোচনা করুন

· একটি নন-প্রোডাকশন সার্ভারে টুলটি পরীক্ষা করুন

আপনার প্রোডাকশন সার্ভারের ব্যাকআপ নিন এবং ব্যাকআপগুলি যাচাই করুন৷

বর্ণনাঃ


পিটি-আর্কিভার হল একটি টুল যা আমি বর্ণনা অনুযায়ী টেবিল সংরক্ষণাগারে ব্যবহার করি
<http://tinyurl.com/mysql-archiving> লক্ষ্য একটি কম প্রভাব, ফরওয়ার্ড শুধুমাত্র কাজ
OLTP ক্যোয়ারীগুলিকে বেশি প্রভাবিত না করে টেবিলের বাইরে পুরানো ডেটা ছিঁড়ে ফেলুন। আপনি সন্নিবেশ করতে পারেন
অন্য টেবিলে ডেটা, যা একই সার্ভারে থাকা দরকার নেই। আপনি এটি একটি লিখতে পারেন
লোড ডেটা ইনফাইলের জন্য উপযুক্ত বিন্যাসে ফাইল। অথবা আপনি কোনটিই করতে পারবেন না, এই ক্ষেত্রে এটি
শুধু একটি বর্ধিত মুছে ফেলা.

pt-archiver একটি প্লাগইন মেকানিজমের মাধ্যমে এক্সটেনসিবল। আপনি যোগ করতে আপনার নিজের কোড ইনজেক্ট করতে পারেন
অ্যাডভান্সড আর্কাইভিং লজিক যা নির্ভরশীল ডেটা আর্কাইভ করার জন্য উপযোগী হতে পারে, প্রয়োগ করা
জটিল ব্যবসার নিয়ম, বা সংরক্ষণাগার প্রক্রিয়া চলাকালীন একটি ডেটা গুদাম তৈরি করা।

কিছু বিকল্পের জন্য আপনাকে সাবধানে মান নির্বাচন করতে হবে। সবচেয়ে গুরুত্বপূর্ণ হল "--সীমা",
"--পুনরায় চেষ্টা", এবং "--txn-সাইজ"।

কৌশলটি হল প্রথম সারি(গুলি) খুঁজে বের করা, তারপর আরও কিছু খোঁজার জন্য কিছু সূচী স্ক্যান করুন
দক্ষতার সাথে সারি। প্রতিটি পরবর্তী প্রশ্ন সমগ্র টেবিল স্ক্যান করা উচিত নয়; এটা খোঁজা উচিত
ইনডেক্সে, তারপর স্ক্যান করুন যতক্ষণ না এটি আরও সংরক্ষণযোগ্য সারি খুঁজে পায়। সঙ্গে সূচক উল্লেখ
"--উৎস" আর্গুমেন্টের 'i' অংশটি এর জন্য গুরুত্বপূর্ণ হতে পারে; "-ড্রাই-রান" ব্যবহার করুন
জেনারেট করা প্রশ্নগুলি পরীক্ষা করুন এবং সেগুলি দক্ষ কিনা তা দেখতে তাদের ব্যাখ্যা করতে ভুলবেন না
(অধিকাংশ সময় আপনি সম্ভবত প্রাথমিক কী স্ক্যান করতে চান, যা ডিফল্ট)। এমন কি
আরও ভাল, চালানোর আগে এবং পরে হ্যান্ডলার স্ট্যাটাস কাউন্টারগুলির পার্থক্য পরীক্ষা করুন
query, এবং নিশ্চিত করুন যে এটি প্রতিটি ক্যোয়ারী পুরো টেবিল স্ক্যান করছে না।

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

পারকোনা এক্সট্রাডিবি গুচ্ছ


pt-আর্কিভার Percona XtraDB ক্লাস্টার (PXC) 5.5.28-23.7 এবং নতুন এর সাথে কাজ করে, কিন্তু আছে
একটি ক্লাস্টারে সংরক্ষণাগার করার আগে আপনার তিনটি সীমাবদ্ধতা বিবেচনা করা উচিত:

প্রতিশ্রুতিতে ত্রুটি
pt-archiver লেনদেন করার সময় ত্রুটি পরীক্ষা করে না। PXC এর প্রতিশ্রুতি দিতে পারে
ব্যর্থ হয়, কিন্তু যখন এটি ঘটে তখন টুলটি এখনও লেনদেনের জন্য পরীক্ষা করে না বা পুনরায় চেষ্টা করে না।
যদি এটি ঘটে, টুলটি মারা যাবে।

MyISAM টেবিল
MyISAM টেবিল সংরক্ষণাগার কাজ করে, কিন্তু PXC-তে MyISAM সমর্থন এখনও পরীক্ষামূলক
এই মুক্তির সময়। PXC, MyISAM টেবিল, এবং এর সাথে বেশ কিছু পরিচিত বাগ রয়েছে
"AUTO_INCREMENT" কলাম। অতএব, আপনি নিশ্চিত করতে হবে যে সংরক্ষণাগার সরাসরি হবে না
অথবা পরোক্ষভাবে একটি MyISAM টেবিলের জন্য ডিফল্ট "AUTO_INCREMENT" মান ব্যবহার করে।
উদাহরণস্বরূপ, এটি "--dest" এর সাথে ঘটে যদি "--কলাম" ব্যবহার করা হয় এবং
"AUTO_INCREMENT" কলাম অন্তর্ভুক্ত নয়৷ টুল এই জন্য চেক না!

নন-ক্লাস্টার বিকল্প
কিছু বিকল্প কাজ করতে পারে বা নাও করতে পারে। উদাহরণস্বরূপ, যদি একটি ক্লাস্টার নোডও না হয়
slave, তারপর "--check-slave-lag" কাজ করে না। এবং যেহেতু PXC টেবিল সাধারণত
InnoDB, কিন্তু InnoDB "INSERT DELAYED" সমর্থন করে না, তারপর "--delayed-insert" করে না
কাজ অন্যান্য বিকল্পগুলিও কাজ নাও করতে পারে, তবে টুলটি সেগুলি পরীক্ষা করে না, তাই
আপনার আসল ক্লাস্টারে সংরক্ষণাগার করার আগে আপনার একটি পরীক্ষা ক্লাস্টারে সংরক্ষণাগার পরীক্ষা করা উচিত।

আউটপুট


আপনি যদি "--প্রগতি" নির্দিষ্ট করেন, তাহলে আউটপুট একটি শিরোনাম সারি, এবং ব্যবধানে স্ট্যাটাস আউটপুট।
স্ট্যাটাস আউটপুটের প্রতিটি সারি বর্তমান তারিখ এবং সময় তালিকাভুক্ত করে, কত সেকেন্ড pt-
আর্কাইভার চলছে, এবং কত সারি এটি সংরক্ষণাগারভুক্ত করেছে।

আপনি যদি "--পরিসংখ্যান" উল্লেখ করেন, "pt-archiver" আউটপুট সময় এবং অন্যান্য তথ্য সাহায্য করার জন্য
আপনি সনাক্ত করেন যে আপনার সংরক্ষণাগার প্রক্রিয়ার কোন অংশটি সবচেয়ে বেশি সময় নেয়।

ত্রুটি পরিচালনা


pt-আর্কিভার সংকেত ধরতে এবং সুন্দরভাবে প্রস্থান করার চেষ্টা করে; উদাহরণস্বরূপ, যদি আপনি এটি পাঠান
SIGTERM (UNIX-ish সিস্টেমে Ctrl-C), এটি সিগন্যাল ধরবে, একটি বার্তা প্রিন্ট করবে
সংকেত, এবং মোটামুটি স্বাভাবিকভাবে প্রস্থান করুন। এটি "--বিশ্লেষণ" বা "--অপ্টিমাইজ" চালাবে না,
কারণ এগুলো শেষ হতে অনেক সময় লাগতে পারে। এটি অন্যান্য সমস্ত কোড স্বাভাবিকভাবে চালাবে,
কলিং সহ after_finish() যেকোনো প্লাগইনে ("বর্ধিত" দেখুন)।

অন্য কথায়, একটি সংকেত, ধরা পড়লে, মূল আর্কাইভিং লুপ থেকে বেরিয়ে আসবে এবং এড়িয়ে যাবে
অপ্টিমাইজ/বিশ্লেষণ।

বিকল্প


"--dest", "--file", বা "--purge"-এর মধ্যে অন্তত একটি নির্দিষ্ট করুন।

"--উপেক্ষা" এবং "--প্রতিস্থাপন" পারস্পরিক একচেটিয়া।

"--txn-সাইজ" এবং "--কমিট-প্রত্যেক" পারস্পরিক একচেটিয়া।

"--নিম্ন-অগ্রাধিকার-সন্নিবেশ" এবং "--বিলম্বিত-সন্নিবেশ" পারস্পরিক একচেটিয়া।

"--শেয়ার-লক" এবং "--এর জন্য-আপডেট" পারস্পরিক একচেটিয়া।

"--বিশ্লেষণ" এবং "--অপ্টিমাইজ" পারস্পরিক একচেটিয়া।

"--নো-অ্যাসেন্ড" এবং "--নো-ডিলিট" পারস্পরিকভাবে একচেটিয়া।

DSN মান "--dest" ডিফল্টে "--উৎস" থেকে মানগুলি যদি কপি হ্যাঁ হয়।

-- বিশ্লেষণ করুন
প্রকার: স্ট্রিং

"--উৎস" এবং/অথবা "--ডেস্ট"-এ পরে বিশ্লেষণ সারণী চালান।

শেষ করার পর ANALYZE TABLE চালায়। যুক্তি একটি নির্বিচারে স্ট্রিং. যদি এটা
's' অক্ষর রয়েছে, উৎস বিশ্লেষণ করা হবে। যদি এটি 'd' ধারণ করে, তাহলে
গন্তব্য বিশ্লেষণ করা হবে। আপনি উভয় বা উভয় নির্দিষ্ট করতে পারেন. উদাহরণস্বরূপ, দ
নিম্নলিখিত উভয় বিশ্লেষণ করবে:

--বিশ্লেষণ=ds

দেখাhttp://dev.mysql.com/doc/en/analyze-table.html> বিশ্লেষণ সারণিতে বিস্তারিত জানার জন্য।

--আরোহন-প্রথম
সূচকের শুধুমাত্র প্রথম কলামে উঠুন।

আপনি যদি আরোহী সূচক অপ্টিমাইজেশান ব্যবহার করতে চান ("--না-অ্যাসেন্ড" দেখুন), কিন্তু করবেন না
একটি বৃহৎ মাল্টি-কলাম ইনডেক্স আরোহণের ওভারহেড বহন করতে চান, আপনি এটি ব্যবহার করতে পারেন
pt-আর্কিভারকে সূচকের বাম কলামে উঠতে বলার বিকল্প। এটা পারে
একটি উল্লেখযোগ্য কর্মক্ষমতা বুস্ট প্রদান সূচক সব উপরে না, যখন
পুরো সূচকের উপরে উঠার খরচ এড়ানো।

এটি কীভাবে প্লাগইনগুলির সাথে ইন্টারঅ্যাক্ট করে তার আলোচনার জন্য "এক্সটেনডিং" দেখুন৷

--আস্ক-পাস
MySQL এর সাথে সংযোগ করার সময় একটি পাসওয়ার্ডের জন্য অনুরোধ করুন।

--বাফার
আউটপুট "--ফাইল" এ বাফার করুন এবং কমিট এ ফ্লাশ করুন।

"--ফাইল"-এ অটোফ্লাশিং অক্ষম করে এবং লেনদেন করার সময় শুধুমাত্র ডিস্কে "--ফাইল" ফ্লাশ করে
কমিট এর অর্থ সাধারণত ফাইলটি অপারেটিং সিস্টেম দ্বারা ব্লক-ফ্লাশ করা হয়, তাই
কমিটের মধ্যে ডিস্কে কিছু অন্তর্নিহিত ফ্লাশও থাকতে পারে। ডিফল্ট হল
প্রতি সারির পরে ডিস্কে "--file" ফ্লাশ করুন।

বিপদ হল যে ক্র্যাশের ফলে ডেটা হারিয়ে যেতে পারে।

"--বাফার" ব্যবহার করে আমি যে কর্মক্ষমতা বৃদ্ধি দেখেছি তা প্রায় 5 থেকে 15 শতাংশ।
আপনার মাইলেজ পরিবর্তিত হতে পারে.

--বাল্ক-মুছুন
একটি একক বিবৃতি দিয়ে প্রতিটি খণ্ড মুছুন ("--প্রতিটি-প্রতিটি" বোঝায়)।

একটি একক "DELETE" বিবৃতি দিয়ে বাল্কে প্রতিটি খণ্ড সারি মুছুন৷ বিবৃতি
খণ্ডের প্রথম এবং শেষ সারির মধ্যে প্রতিটি সারি মুছে দেয়, অন্তর্ভুক্ত। এর মানে
"--প্রতিটি-প্রতিটি", যেহেতু একে একে সারি "ঢোকান" করা একটি খারাপ ধারণা হবে এবং
বাল্ক "DELETE" এর আগে সেগুলি কমিট করুন।

স্বাভাবিক পদ্ধতি হল প্রতিটি সারি তার প্রাথমিক কী দ্বারা মুছে ফেলা। বাল্ক মুছে ফেলা একটি হতে পারে
অনেক দ্রুত। তারা এছাড়াও হতে পারে না be দ্রুত যদি আপনার একটি জটিল "WHERE" ধারা থাকে।

এই বিকল্পটি সারির অংশ না হওয়া পর্যন্ত সমস্ত "মুছে ফেলুন" প্রক্রিয়াকরণ সম্পূর্ণভাবে স্থগিত করে
সমাপ্ত আপনার যদি উত্সে একটি প্লাগইন থাকে তবে এর "আগে_মুছে ফেলা" পদ্ধতিটি হবে না
ডাকা পরিবর্তে, এর "before_bulk_delete" পদ্ধতি পরে বলা হয়।

সতর্কতামূলক: যদি আপনার উৎসে একটি প্লাগইন থাকে যা কখনও কখনও সত্য থেকে ফিরে আসে না
"is_archivable()", আপনি এই বিকল্পটি ব্যবহার করা উচিত যদি আপনি বুঝতে পারেন এটি কী করে। যদি
প্লাগইনটি "pt-আর্কিভার" কে একটি সারি সংরক্ষণাগার না করার নির্দেশ দেয়, এটি এখনও মুছে ফেলা হবে
বাল্ক মুছে ফেলুন!

--[না]বাল্ক-মোছা-সীমা
ডিফল্ট: হ্যাঁ

"--বাল্ক-ডিলিট" বিবৃতিতে "--সীমা" যোগ করুন।

এটি একটি উন্নত বিকল্প এবং আপনি এটি অক্ষম করবেন না যদি না আপনি জানেন যে আপনি কী
করছেন এবং কেন! ডিফল্টরূপে, "--বাল্ক-ডিলিট" বাল্কের সাথে একটি "--সীমা" ধারা যুক্ত করে
SQL বিবৃতি মুছুন। কিছু ক্ষেত্রে, এই ধারাটি নির্দিষ্ট করে বাদ দেওয়া যেতে পারে
"-না-বাল্ক-মোছা-সীমা"। "--সীমা" এখনও নির্দিষ্ট করা আবশ্যক।

--বাল্ক-ঢোকান
LOAD DATA INFILE সহ প্রতিটি খণ্ড সন্নিবেশ করুন (উচিত "--বাল্ক-ডিলিট" "--কমিট-প্রত্যেক")।

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

আপনার ডেটার নিরাপত্তা রক্ষা করতে, এই বিকল্পটি বাল্ক ডিলিট ব্যবহার করতে বাধ্য করে৷ এটা
প্রতিটি সারি মুছে ফেলা অনিরাপদ হবে কারণ এটি পাওয়া যায়, সারিগুলি ঢোকানোর আগে
প্রথম গন্তব্য। জোরপূর্বক বাল্ক মুছে ফেলার গ্যারান্টি দেয় যে মুছে ফেলা পর্যন্ত অপেক্ষা করে
সন্নিবেশ সফল।

"--লো-অগ্রাধিকার-সন্নিবেশ", "--প্রতিস্থাপন", এবং "-- উপেক্ষা" বিকল্পগুলি এটির সাথে কাজ করে
বিকল্প, কিন্তু "--delayed-insert" করে না।

যদি "লোড ডেটা স্থানীয় ইনফাইল" "ব্যবহৃত কমান্ডটি নয়" এর লাইনগুলিতে একটি ত্রুটি ছুড়ে দেয়
এই MySQL সংস্করণের সাথে অনুমোদিত", "L" DSN বিকল্পের জন্য ডকুমেন্টেশন পড়ুন।

-- অক্ষর সেট
সংক্ষিপ্ত রূপ: -ক; প্রকার: স্ট্রিং

ডিফল্ট অক্ষর সেট। মানটি utf8 হলে, STDOUT-এ পার্লের বিনমোডকে utf8-এ সেট করে,
DBD::mysql-এ mysql_enable_utf8 বিকল্পটি পাস করে এবং SET NAMES UTF8 এর পরে চালায়
MySQL এর সাথে সংযোগ করা হচ্ছে। অন্য কোনো মান UTF8 স্তর ছাড়াই STDOUT-এ বিনমোড সেট করে,
এবং MySQL এর সাথে সংযোগ করার পরে SET NAMES চালায়।

মনে রাখবেন যে শুধুমাত্র MySQL দ্বারা পরিচিত অক্ষরগুলি স্বীকৃত; সুতরাং উদাহরণস্বরূপ, "UTF8" হবে
কাজ, কিন্তু "UTF-8" হবে না।

এছাড়াও দেখুন "--[no]চেক-বর্ণসেট"।

--[না]চেক-অক্ষর সেট
ডিফল্ট: হ্যাঁ

নিশ্চিত করুন যে সংযোগ এবং টেবিলের অক্ষর সেট একই। এই চেক নিষ্ক্রিয় হতে পারে
পাঠ্যকে ভুলভাবে এক অক্ষর সেট থেকে অন্য অক্ষরে রূপান্তরিত করার কারণ (সাধারণত থেকে
utf8 থেকে ল্যাটিন1) যা ডেটা হারাতে বা মজিবকে হতে পারে। এই চেক নিষ্ক্রিয় করা হতে পারে
যখন অক্ষর সেট রূপান্তর উদ্দেশ্য হয় তখন দরকারী বা প্রয়োজনীয়।

--[না]চেক-কলাম
ডিফল্ট: হ্যাঁ

নিশ্চিত করুন যে "--উৎস" এবং "--ডেস্ট" একই কলাম আছে।

ডিফল্টরূপে সক্রিয়; উৎস এবং গন্তব্য টেবিল চেক করতে pt-আর্কিভার কারণ করে
একই কলাম আছে। এটি কলামের অর্ডার, ডাটা টাইপ ইত্যাদি চেক করে না
চেক করে যে উৎসের সমস্ত কলাম গন্তব্যে বিদ্যমান এবং তদ্বিপরীত। যদি
কোন পার্থক্য আছে, pt-archiver একটি ত্রুটি সহ প্রস্থান করবে।

এই চেকটি নিষ্ক্রিয় করতে, --no-check-columns উল্লেখ করুন।

--চেক-ব্যবধান
প্রকার: সময়; ডিফল্ট: 1s

যদি "--চেক-স্লেভ-ল্যাগ" দেওয়া হয়, তাহলে এটি নির্ধারণ করে যে টুলটি কতক্ষণ বিরতি দেয়
সময় এটি আবিষ্কার করে যে একটি দাস পিছিয়ে আছে।
এই চেক প্রতি 100 সারি সঞ্চালিত হয়.

--চেক-স্লেভ-ল্যাগ
প্রকার: স্ট্রিং; পুনরাবৃত্তিযোগ্য: হ্যাঁ

নির্দিষ্ট DSN এর স্লেভ ল্যাগ "--max-lag" এর চেয়ে কম না হওয়া পর্যন্ত সংরক্ষণাগারে বিরতি দিন। এই
একাধিক স্লেভ চেক করার জন্য বিকল্পটি একাধিকবার নির্দিষ্ট করা যেতে পারে।

--কলাম
সংক্ষিপ্ত রূপ: -c; প্রকার: অ্যারে

আর্কাইভ করার জন্য কলামের কমা দ্বারা পৃথক করা তালিকা।

আনতে, ফাইলে লিখতে এবং সন্নিবেশ করার জন্য কলামগুলির একটি কমা দ্বারা পৃথক করা তালিকা নির্দিষ্ট করুন
গন্তব্য টেবিল। নির্দিষ্ট করা থাকলে, pt-আর্কিভার অন্যান্য কলামগুলিকে উপেক্ষা করে যদি না এটি থাকে
একটি সূচী আরোহী বা সারি মুছে ফেলার জন্য তাদের "SELECT" বিবৃতিতে যোগ করতে হবে।
এটি এই অতিরিক্ত কলামগুলি আনয়ন করে এবং অভ্যন্তরীণভাবে ব্যবহার করে, কিন্তু সেগুলিকে তে লেখে না৷
ফাইল বা গন্তব্য টেবিলে। এটা না তাদের প্লাগইনগুলিতে প্রেরণ করুন।

এছাড়াও "--প্রাথমিক-কী-শুধু" দেখুন।

--প্রতিটি
আনা এবং সংরক্ষণাগারভুক্ত সারির প্রতিটি সেট কমিট করুন ("--txn-size" নিষ্ক্রিয় করে)।

প্রতিটি সারির সেট আর্কাইভ করার পরে লেনদেন করে এবং "--file" ফ্লাশ করে,
সারিগুলির পরবর্তী সেট আনার আগে এবং ঘুমানোর আগে যদি "--sleep" নির্দিষ্ট করা থাকে।
"--txn-সাইজ" নিষ্ক্রিয় করে; লেনদেনের আকার নিয়ন্ত্রণ করতে "--সীমা" ব্যবহার করুন
"-প্রতিটি প্রতিশ্রুতি"।

এই বিকল্পটি "--সীমা" এবং "--txn-সাইজ"কে একই মান করতে শর্টকাট হিসাবে দরকারী,
তবে আরও গুরুত্বপূর্ণভাবে এটি আরও অনুসন্ধান করার সময় লেনদেন খোলা রাখা এড়িয়ে যায়
সারি উদাহরণস্বরূপ, আপনি একটি খুব শুরু থেকে পুরানো সারি সংরক্ষণাগার করা হয় কল্পনা
"--সীমা" 1000 এবং "--txn-সাইজ" 1000 সহ বড় টেবিল। খোঁজার কিছু সময় পর
এবং একবারে 1000টি সারি আর্কাইভ করে, pt-আর্কাইভার শেষ 999টি সারি এবং আর্কাইভ খুঁজে পায়
তাদের, তারপর আরও সারি খুঁজতে পরবর্তী SELECT কার্যকর করে। এই বাকি স্ক্যান
টেবিল, কিন্তু আর কোনো সারি খুঁজে পায় না। এটি একটি খুব দীর্ঘ জন্য একটি খোলা লেনদেন অনুষ্ঠিত হয়েছে
সময়, শুধুমাত্র নির্ধারণ করার জন্য এটি যাইহোক সমাপ্ত. আপনি এড়াতে "--commit-each" ব্যবহার করতে পারেন
এই.

--config
প্রকার: অ্যারে

কনফিগার ফাইলের এই কমা দ্বারা পৃথক করা তালিকা পড়ুন; নির্দিষ্ট করা হলে, এটি অবশ্যই প্রথম হতে হবে
কমান্ড লাইনে বিকল্প।

--তথ্যশালা
সংক্ষিপ্ত রূপ: -D; প্রকার: স্ট্রিং

এই ডাটাবেসের সাথে সংযোগ করুন।

--বিলম্বিত-ঢোকান
INSERT বিবৃতিতে বিলম্বিত সংশোধক যোগ করুন।

INSERT বা REPLACE স্টেটমেন্টে বিলম্বিত সংশোধক যোগ করে। দেখা
<http://dev.mysql.com/doc/en/insert.html> বিস্তারিত জানার জন্য।

-- গন্তব্য
প্রকার: ডিএসএন

DSN আর্কাইভ করার জন্য টেবিল নির্দিষ্ট করে।

এই আইটেমটি একটি সারণী নির্দিষ্ট করে যেটিতে pt-আর্কিভার থেকে সংরক্ষণাগারভুক্ত সারি সন্নিবেশ করাবে
"--উৎস". এটি "--উৎস" হিসাবে একই key=val যুক্তি বিন্যাস ব্যবহার করে। অধিকাংশ অনুপস্থিত
মানগুলি "--উৎস" হিসাবে একই মানগুলিতে ডিফল্ট হয়, তাই আপনাকে বিকল্পগুলি পুনরাবৃত্তি করতে হবে না
যেগুলো "--source" এবং "--dest"-এ একই রকম। কোনটি দেখতে "--help" বিকল্পটি ব্যবহার করুন৷
মান "--উৎস" থেকে অনুলিপি করা হয়।

সতর্কতামূলক: একটি ডিফল্ট অপশন ফাইল (F) DSN অপশন ব্যবহার করা যা এর জন্য একটি সকেট নির্ধারণ করে
"--source" pt-archiverকে সেই সকেট ব্যবহার করে "--dest" এর সাথে সংযোগ করতে দেয় যদি না অন্য
"--dest" এর জন্য সকেট নির্দিষ্ট করা আছে। এর মানে হল pt-archiver ভুলভাবে সংযোগ করতে পারে
"--উৎস" এ যখন এটি "--ডেস্ট" এর সাথে সংযোগ করে। উদাহরণ স্বরূপ:

-- উৎস F=host1.cnf,D=db,t=tbl --dest h=host2

যখন pt-archiver "--dest", host2 এর সাথে সংযোগ করে, তখন এটি "--source" এর মাধ্যমে সংযোগ করবে।
host1, host1.cnf এ সংজ্ঞায়িত সকেট।

--শুষ্ক রান
প্রশ্নগুলি প্রিন্ট করুন এবং কিছু না করে প্রস্থান করুন।

ফাইলের নাম এবং এসকিউএল স্টেটমেন্ট প্রিন্ট করার পরে pt-আর্কিভার প্রস্থান করে।

--ফাইল
প্রকার: স্ট্রিং

ফাইল সংরক্ষণাগার, সঙ্গে তারিখ বিন্যাস()- বিন্যাসের মতো।

সংরক্ষণাগারভুক্ত সারি লিখতে ফাইলের নাম। MySQL এর একটি উপসেট তারিখ বিন্যাস() বিন্যাস
কোড ফাইলের নামে অনুমোদিত, নিম্নরূপ:

মাসের %d দিন, সংখ্যাসূচক (01..31)
%ঘন্টা (00..23)
%i মিনিট, সংখ্যাসূচক (00..59)
%m মাস, সংখ্যাসূচক (01..12)
%s সেকেন্ড (00..59)
%Y বছর, সাংখ্যিক, চার অঙ্ক

আপনি নিম্নলিখিত অতিরিক্ত বিন্যাস কোডগুলিও ব্যবহার করতে পারেন:

%D ডাটাবেসের নাম
%t টেবিলের নাম

উদাহরণ:

--file '/var/log/archive/%Y-%m-%d-%D.%t'

ফাইলের বিষয়বস্তু একই বিন্যাসে রয়েছে যা SELECT INTO OUTFILE দ্বারা ব্যবহৃত হয়, যেমন নথিভুক্ত করা হয়েছে
মাইএসকিউএল ম্যানুয়ালটিতে: সারিগুলি নতুন লাইন দ্বারা সমাপ্ত, কলামগুলি ট্যাব দ্বারা সমাপ্ত, শূন্য
অক্ষরগুলিকে \N দ্বারা উপস্থাপিত করা হয়, এবং বিশেষ অক্ষরগুলিকে \ দ্বারা পালানো হয়। এই দেয়
আপনি LOAD DATA INFILE এর ডিফল্ট সেটিংস সহ একটি ফাইল পুনরায় লোড করুন৷

আপনি যদি ফাইলের শীর্ষে একটি কলাম হেডার চান, "--হেডার" দেখুন। ফাইলটি স্বয়ংক্রিয়-
ডিফল্ট দ্বারা flushed; "--বাফার" দেখুন।

--আপডেটের জন্য
সিলেক্ট স্টেটমেন্টে ফর আপডেট মডিফায়ার যোগ করে।

বিস্তারিত জানার জন্য, দেখুনhttp://dev.mysql.com/doc/en/innodb-locking-reads.html>.

-- শিরোনাম
"--file" এর উপরে কলাম হেডার প্রিন্ট করুন।

"--file" দ্বারা প্রদত্ত ফাইলের প্রথম লাইন হিসাবে কলামের নাম লেখে। ফাইল হলে
বিদ্যমান, শিরোনাম লেখে না; এটি LOAD DATA INFILE in দিয়ে ফাইলটিকে লোডযোগ্য রাখে
ক্ষেত্রে আপনি এটি আরো আউটপুট যোগ করুন.

--help
সাহায্য দেখান এবং প্রস্থান করুন।

--উচ্চ-অগ্রাধিকার-নির্বাচন
SELECT স্টেটমেন্টে HIGH_PRIORITY সংশোধক যোগ করে।

দেখাhttp://dev.mysql.com/doc/en/select.html> বিস্তারিত জানার জন্য।

--হোস্ট
সংক্ষিপ্ত রূপ: -h; প্রকার: স্ট্রিং

হোস্টের সাথে সংযোগ করুন।

-- উপেক্ষা করুন
INSERT স্টেটমেন্টের জন্য IGNORE ব্যবহার করুন।

INSERT-কে "--dest"-এ INSERT ignore করে।

--সীমা
প্রকার: int; ডিফল্ট: 1

বিবৃতি প্রতি আনয়ন এবং সংরক্ষণাগারের সারির সংখ্যা।

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

--স্থানীয়
বিনলগে অপ্টিমাইজ বা বিশ্লেষণ লিখবেন না।

NO_WRITE_TO_BINLOG সংশোধকটিকে বিশ্লেষণ এবং অপ্টিমাইজ করার জন্য যোগ করে। "--বিশ্লেষণ" দেখুন
বিস্তারিত জানার জন্য.

--কম-অগ্রাধিকার-মুছুন
DELETE বিবৃতিতে LOW_PRIORITY সংশোধক যোগ করে।

দেখাhttp://dev.mysql.com/doc/en/delete.html> বিস্তারিত জানার জন্য।

--কম-অগ্রাধিকার-ঢোকান
INSERT বা REPLACE স্টেটমেন্টে LOW_PRIORITY সংশোধক যোগ করে।

দেখাhttp://dev.mysql.com/doc/en/insert.html> বিস্তারিত জানার জন্য।

--max-flow-ctl
প্রকার: float

কিছুটা --max-lag এর মতো কিন্তু PXC ক্লাস্টারের জন্য। গড় সময় ক্লাস্টার ব্যয় পরীক্ষা করুন
ফ্লো কন্ট্রোলের জন্য বিরতি দেওয়া এবং যদি এটি নির্দেশিত শতাংশের উপরে যায় তাহলে টুল পজ করুন
বিকল্পে। ডিফল্ট কোনো ফ্লো কন্ট্রোল চেকিং নয়। এই বিকল্পটি PXC-এর জন্য উপলব্ধ
সংস্করণ 5.6 বা উচ্চতর।

--ম্যাক্স-ল্যাগ
প্রকার: সময়; ডিফল্ট: 1s

যদি "--চেক-স্লেভ-ল্যাগ" দ্বারা প্রদত্ত স্লেভ পিছিয়ে যায় তবে সংরক্ষণাগারে বিরতি দিন।

এই বিকল্পটি pt-archiverকে স্লেভের দিকে তাকানোর কারণ করে যখন এটি আনতে চলেছে
আরেকটি সারি। যদি ক্রীতদাসের ব্যবধান বিকল্পের মূল্যের চেয়ে বেশি হয়, বা যদি স্লেভ
চলছে না (তাই এর ল্যাগ শূন্য), pt-টেবিল-চেকসাম "--চেক-ইন্টারভাল" এর জন্য ঘুমায়
সেকেন্ড এবং তারপর আবার ল্যাগ তাকায়. ক্রীতদাস ধরা না হওয়া পর্যন্ত এটি পুনরাবৃত্তি হয়,
তারপর সারি আনয়ন এবং সংরক্ষণাগার এগিয়ে যান।

এই বিকল্পটি "--sleep" বা "--sleep-coef" এর প্রয়োজনীয়তা দূর করতে পারে।

--না-আরোহণ
আরোহী সূচক অপ্টিমাইজেশান ব্যবহার করবেন না.

ডিফল্ট অ্যাসেন্ডিং-ইনডেক্স অপ্টিমাইজেশনের কারণে "pt-আর্কিভার" বারবার অপ্টিমাইজ করে
"নির্বাচন করুন" ক্যোয়ারী যাতে তারা সূচীতে খোঁজ করে যেখানে পূর্বের ক্যোয়ারী শেষ হয়েছে, তারপর স্ক্যান করে
প্রতিবার টেবিলের শুরু থেকে স্ক্যান করার পরিবর্তে এটি বরাবর। এই
ডিফল্টরূপে সক্রিয় কারণ এটি সাধারণত বারবার অ্যাক্সেসের জন্য একটি ভাল কৌশল।

বড়, একাধিক-কলামের সূচী WHERE ক্লজটিকে যথেষ্ট জটিল হতে পারে
এই আসলে কম দক্ষ হতে পারে. উদাহরণস্বরূপ একটি চার-কলামের প্রাথমিক কী বিবেচনা করুন
অন ​​(a, b, c, d)। WHERE ক্লজটি যেখানে শেষ প্রশ্নটি শেষ হয়েছে সেখানে শুরু করতে হবে:

কোথায় (a >?)
বা (a = ? এবং b > ?)
বা (a = ? এবং b = ? এবং c > ?)
বা (a = ? এবং b = ? এবং c = ? এবং d >= ?)

স্থানধারকদের মান সহ জনসংখ্যা মেমরি এবং CPU ব্যবহার করে, নেটওয়ার্ক ট্রাফিক যোগ করে এবং
ওভারহেড পার্সিং, এবং MySQL অপ্টিমাইজ করার জন্য ক্যোয়ারীটিকে কঠিন করে তুলতে পারে। একটি চার কলাম
কী একটি বড় বিষয় নয়, কিন্তু একটি দশ-কলামের কী যেখানে প্রতিটি কলাম "NULL" হতে পারে
হও।

আপনি যদি জানেন যে আপনি কেবল সারিগুলি সরিয়ে দিচ্ছেন তবে সূচীতে আরোহণের প্রয়োজন নাও হতে পারে
খণ্ডে টেবিলের শুরু থেকে, কিন্তু কোনো গর্ত ছেড়ে না, তাই থেকে শুরু
টেবিলের শুরুটা আসলে সবচেয়ে কার্যকরী জিনিস।

আরও দেখুন "--আরোহন-প্রথম"। এটি কীভাবে ইন্টারঅ্যাক্ট করে তার আলোচনার জন্য "বর্ধিতকরণ" দেখুন৷
প্লাগইন সহ।

--না-মুছুন
আর্কাইভ করা সারি মুছে ফেলবেন না।

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

যদি উৎস DSN-এ একটি প্লাগইন থাকে, তবে এর "before_delete" পদ্ধতিটিকে যাইহোক বলা হয়,
যদিও "pt-archiver" মুছে ফেলবে না। আরও জানতে "এক্সটেন্ডিং" দেখুন
প্লাগ-ইন।

--অপ্টিমাইজ করুন
প্রকার: স্ট্রিং

"--উৎস" এবং/অথবা "--ডেস্ট"-এ পরে অপ্টিমাইজ টেবিল চালান।

শেষ করার পরে অপ্টিমাইজ টেবিল চালায়। বিকল্প সিনট্যাক্সের জন্য "--বিশ্লেষণ" দেখুন এবং
<http://dev.mysql.com/doc/en/optimize-table.html> অপ্টিমাইজ টেবিলের বিস্তারিত জানার জন্য।

--পাসওয়ার্ড
সংক্ষিপ্ত রূপ: -p; প্রকার: স্ট্রিং

সংযোগ করার সময় ব্যবহার করার জন্য পাসওয়ার্ড। যদি পাসওয়ার্ডে কমা থাকে তবে সেগুলিকে এস্কেপ করতে হবে৷
ব্যাকস্ল্যাশ সহ: "পরীক্ষা\,ple"

--পিড
প্রকার: স্ট্রিং

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

--প্লাগ লাগানো
প্রকার: স্ট্রিং

একটি জেনেরিক প্লাগইন হিসাবে ব্যবহার করার জন্য পার্ল মডিউল নাম।

একটি সাধারণ-উদ্দেশ্য প্লাগইনের পার্ল মডিউল নাম উল্লেখ করুন। এটি বর্তমানে শুধুমাত্র ব্যবহার করা হয়
পরিসংখ্যানের জন্য ("--পরিসংখ্যান" দেখুন) এবং অবশ্যই "নতুন()" এবং একটি "পরিসংখ্যান()" পদ্ধতি থাকতে হবে।

"নতুন( src =" $src, dst => $dst, opts => $o )> পদ্ধতিটি উৎস পায় এবং
গন্তব্য ডিএসএন, এবং তাদের ডাটাবেস সংযোগ, ঠিক সংযোগ-নির্দিষ্টের মতো
প্লাগইন করে। কমান্ড-লাইন অ্যাক্সেস করার জন্য এটি একটি OptionParser অবজেক্ট ($o) পায়
বিকল্পগুলি (উদাহরণ: "$o-"get('purge');>)।

"পরিসংখ্যান(\% পরিসংখ্যান, $টাইম)" পদ্ধতি দ্বারা সংগৃহীত পরিসংখ্যানের একটি হ্যাশরেফ পাওয়া যায়
সংরক্ষণাগার কাজ, এবং সময় পুরো কাজ শুরু.

--বন্দর
সংক্ষিপ্ত রূপ: -P; প্রকার: int

সংযোগের জন্য ব্যবহার করার জন্য পোর্ট নম্বর।

--প্রাথমিক-কী-শুধুমাত্র
শুধুমাত্র প্রাথমিক কী কলাম।

প্রাথমিক কী কলামগুলির সাথে "--কলাম" নির্দিষ্ট করার জন্য একটি শর্টকাট। এই হল একটি
দক্ষতা যদি আপনি শুধু সারি শুদ্ধ করতে চান; এটি সম্পূর্ণ সারি আনয়ন এড়ায়, যখন
"DELETE" স্টেটমেন্টের জন্য শুধুমাত্র প্রাথমিক কী কলামের প্রয়োজন। এছাড়াও দেখুন "--purge"।

--প্রগতি
প্রকার: int

প্রতিটি X সারিতে অগ্রগতির তথ্য মুদ্রণ করুন।

বর্তমান সময়, অতিবাহিত সময় এবং প্রতিটি X সারি সংরক্ষণাগারভুক্ত সারি প্রিন্ট করে।

--শুদ্ধ করা
সংরক্ষণাগার পরিবর্তে শুদ্ধ করুন; "--file" এবং "--dest" বাদ দেওয়ার অনুমতি দেয়।

একটি "--ফাইল" বা "--ডেস্ট" আর্গুমেন্ট ছাড়া সংরক্ষণাগার করার অনুমতি দেয়, যা কার্যকরভাবে একটি পরিস্কার
যেহেতু সারিগুলি মুছে ফেলা হয়েছে।

আপনি যদি কেবল সারিগুলি পরিষ্কার করতে চান তবে টেবিলের প্রাথমিক কী কলামগুলি নির্দিষ্ট করার কথা বিবেচনা করুন৷
"--প্রাথমিক-কী-শুধু" সহ। এটি এর জন্য সার্ভার থেকে সমস্ত কলাম আনতে বাধা দেবে৷
কোন কারণ নেই.

--দ্রুত-মুছে ফেলুন
বিবৃতি মুছে ফেলতে দ্রুত সংশোধক যোগ করে।

দেখাhttp://dev.mysql.com/doc/en/delete.html> বিস্তারিত জানার জন্য। হিসাবে বলা হয়েছে
ডকুমেন্টেশন, কিছু ক্ষেত্রে অপটিমাইজের পরে ডিলিট কুইক ব্যবহার করা আরও দ্রুত হতে পারে
টেবিল আপনি এটির জন্য "--অপ্টিমাইজ" ব্যবহার করতে পারেন।

-- শান্ত
সংক্ষিপ্ত রূপ: -q

কোনো আউটপুট প্রিন্ট করবেন না, যেমন "--পরিসংখ্যান" এর জন্য।

"--পরিসংখ্যান" এর আউটপুট সহ স্বাভাবিক আউটপুটকে দমন করে, কিন্তু দমন করে না
"---why-quit" থেকে আউটপুট।

--প্রতিস্থাপন
"--dest"-এ INSERT-কে REPLACE হিসেবে লেখার কারণ।

--পুনরায় চেষ্টা করুন
প্রকার: int; ডিফল্ট: 1

টাইমআউট বা অচলাবস্থা প্রতি পুনরায় চেষ্টার সংখ্যা।

একটি InnoDB লক থাকা অবস্থায় pt-আর্কিভারের কতবার পুনরায় চেষ্টা করা উচিত তা নির্দিষ্ট করে৷
সময়সীমা বা অচলাবস্থা অপেক্ষা করুন। পুনঃপ্রচারগুলি শেষ হয়ে গেলে, pt-আর্কিভার একটি দিয়ে প্রস্থান করবে
ত্রুটি।

আপনি যখন একটি মিশ্রণের মধ্যে সংরক্ষণাগার করছেন তখন আপনি কী ঘটতে চান তা সাবধানে বিবেচনা করুন
লেনদেন এবং অ-লেনদেন স্টোরেজ ইঞ্জিন। INSERT to "--dest" এবং
"--উৎস" থেকে DELETE আলাদা সংযোগে রয়েছে, তাই তারা আসলে করে না
একই সার্ভারে থাকলেও একই লেনদেনে অংশগ্রহণ করুন। যাইহোক, পিটি-
আর্কিভার কোডে সহজ বিতরণ করা লেনদেন প্রয়োগ করে, তাই কমিট এবং রোলব্যাক করে
দুটি সংযোগ জুড়ে কাঙ্ক্ষিত হিসাবে ঘটতে হবে।

এই সময়ে আমি লেনদেন স্টোরেজের সাথে ত্রুটিগুলি পরিচালনা করার জন্য কোন কোড লিখিনি
InnoDB ছাড়া অন্য ইঞ্জিন। আপনার যদি এটির প্রয়োজন হয় তবে সেই বৈশিষ্ট্যটি অনুরোধ করুন।

--রান-টাইম
প্রকার: সময়

প্রস্থান করার আগে দৌড়ানোর সময়।

ঐচ্ছিক প্রত্যয় s=সেকেন্ড, m=মিনিট, h=hours, d=days; কোনো প্রত্যয় না থাকলে, s ব্যবহার করা হয়।

--[না]নিরাপদ-স্বয়ংক্রিয়-বৃদ্ধি
ডিফল্ট: হ্যাঁ

সর্বোচ্চ AUTO_INCREMENT সহ সারি সংরক্ষণাগার করবেন না৷

একটি অতিরিক্ত WHERE ক্লজ যোগ করে যাতে pt-আর্কিভারকে যখন নতুন সারি অপসারণ করা থেকে আটকায়
একটি একক-কলাম AUTO_INCREMENT কী এটি পুনরায় ব্যবহারের বিরুদ্ধে রক্ষা করে
AUTO_INCREMENT মান যদি সার্ভার পুনরায় চালু হয়, এবং ডিফল্টরূপে সক্রিয় থাকে।

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

-- সেন্টিনেল
প্রকার: স্ট্রিং; ডিফল্ট: /tmp/pt-আর্কিভার-সেন্টিনেল

এই ফাইলটি বিদ্যমান থাকলে প্রস্থান করুন।

"--সেন্টিনেল" দ্বারা নির্দিষ্ট করা ফাইলের উপস্থিতি pt-আর্কিভার বন্ধ করে দেবে
সংরক্ষণাগার এবং প্রস্থান. ডিফল্ট হল /tmp/pt-archiver-sentinel। আপনি এটি খুঁজে পেতে পারেন
প্রয়োজনে ক্রোন কাজগুলিকে করুণভাবে বন্ধ করতে সুবিধাজনক। এছাড়াও "--স্টপ" দেখুন।

--সেট-ভার্স
প্রকার: অ্যারে

"variable=value" জোড়ার এই কমা দ্বারা পৃথক করা তালিকায় MySQL ভেরিয়েবল সেট করুন।

ডিফল্টরূপে, টুল সেট করে:

অপেক্ষা_সময় শেষ = 10000

কমান্ড লাইনে নির্দিষ্ট করা ভেরিয়েবল এই ডিফল্টগুলিকে ওভাররাইড করে। উদাহরণ স্বরূপ,
"--set-vars wait_timeout=500" নির্দিষ্ট করা 10000-এর ডিফল্ট মানকে ওভাররাইড করে।

টুলটি একটি সতর্কতা প্রিন্ট করে এবং একটি ভেরিয়েবল সেট করা না গেলে চলতে থাকে।

--শেয়ার-লক
সিলেক্ট স্টেটমেন্টে লক ইন শেয়ার মোড মডিফায়ার যোগ করে।

দেখাhttp://dev.mysql.com/doc/en/innodb-locking-reads.html>.

-- এড়িয়ে যান-বিদেশী-কী-চেক
SET FOREIGN_KEY_CHECKS=0 সহ বিদেশী কী চেক অক্ষম করে৷

--ঘুম
প্রকার: int

আনার মধ্যে ঘুমের সময়।

SELECT স্টেটমেন্টের মধ্যে কতক্ষণ ঘুমাতে হবে তা নির্দিষ্ট করে। ডিফল্ট এ ঘুম না
সব লেনদেন প্রতিশ্রুতিবদ্ধ নয়, এবং "--ফাইল" ফাইলটি আগে ফ্লাশ করা হয়নি
ঘুমন্ত এটি নিয়ন্ত্রণ করতে "-txn-size" দেখুন।

যদি "--commit-each" নির্দিষ্ট করা থাকে, ঘুমানোর আগে কমিট করা এবং ফ্লাশ করা হয়।

-- স্লিপ-কোফ
প্রকার: float

শেষ SELECT সময়ের একাধিক হিসাবে "--sleep" গণনা করুন।

যদি এই বিকল্পটি নির্দিষ্ট করা থাকে, pt-archiver শেষের ক্যোয়ারী সময়ের জন্য ঘুমাবে
SELECT নির্দিষ্ট সহগ দ্বারা গুণিত।

সিলেক্টগুলিকে থ্রোটল করার জন্য এটি একটি সামান্য বেশি পরিশীলিত উপায়: একটি ভিন্ন রকমের ঘুম
প্রতিটি SELECT-এর মধ্যে কত সময় লাগে তার উপর নির্ভর করে SELECTগুলি কতক্ষণ সময় নিচ্ছে।

--সকেট
ছোট ফর্ম; প্রকার: স্ট্রিং

সংযোগের জন্য ব্যবহার করার জন্য সকেট ফাইল।

--সূত্র
প্রকার: ডিএসএন

DSN থেকে (প্রয়োজনীয়) সংরক্ষণাগারের টেবিল নির্দিষ্ট করে। এই যুক্তি একটি DSN. দেখা
সিনট্যাক্সের জন্য "DSN বিকল্প"। বেশিরভাগ বিকল্প নিয়ন্ত্রণ করে কিভাবে pt-archiver MySQL-এর সাথে সংযোগ করে,
কিন্তু এই টুলের সিনট্যাক্সে কিছু বর্ধিত ডিএসএন বিকল্প রয়েছে। D, t, এবং i
বিকল্পগুলি সংরক্ষণাগার করার জন্য একটি টেবিল নির্বাচন করুন:

-- উৎস h=my_server,D=my_database,t=my_tbl

একটি বিকল্পটি USE-এর সাথে সংযোগের ডিফল্ট হিসাবে সেট করার জন্য ডাটাবেসকে নির্দিষ্ট করে। যদি
b বিকল্পটি সত্য, এটি SQL_LOG_BIN এর সাথে বাইনারি লগিং নিষ্ক্রিয় করে। এম বিকল্প
প্লাগযোগ্য ক্রিয়াগুলি নির্দিষ্ট করে, যা একটি বহিরাগত পার্ল মডিউল প্রদান করতে পারে। একমাত্র
প্রয়োজনীয় অংশ হল টেবিল; অন্যান্য অংশ বিভিন্ন জায়গা থেকে পড়া হতে পারে
পরিবেশ (যেমন বিকল্প ফাইল)।

'i' অংশ বিশেষ উল্লেখের দাবি রাখে। এটি পিটি-আর্কিভারকে বলে যে এটি কোন সূচকটি করা উচিত
সংরক্ষণাগারে স্ক্যান করুন। এটি একটি ফোর্স ইনডেক্স বা সিলেক্ট-এ INDEX ইঙ্গিত ব্যবহার করুন
সংরক্ষণযোগ্য সারি আনার জন্য ব্যবহৃত বিবৃতি। আপনি যদি কিছু নির্দিষ্ট না করেন, pt-archiver
একটি ভাল সূচক স্বয়ংক্রিয়ভাবে আবিষ্কার করবে, একটি "প্রাথমিক কী" যদি একটি বিদ্যমান থাকে। আমার মধ্যে
অভিজ্ঞতা এটি সাধারণত ভাল কাজ করে, তাই বেশিরভাগ সময় আপনি সম্ভবত বাদ দিতে পারেন
'আমি' অংশ।

সূচীটি টেবিলে বারবার অ্যাক্সেস অপ্টিমাইজ করতে ব্যবহৃত হয়; pt-আর্কিভার মনে রাখে
শেষ সারি এটি প্রতিটি SELECT স্টেটমেন্ট থেকে পুনরুদ্ধার করে, এবং এটি একটি WHERE নির্মাণের জন্য ব্যবহার করে
ধারা, নির্দিষ্ট সূচকে কলাম ব্যবহার করে, যেটি MySQL কে শুরু করতে অনুমতি দেবে
পরবর্তী নির্বাচন করুন যেখানে শেষটি শেষ হয়েছে, সম্ভাব্যভাবে থেকে স্ক্যান করার পরিবর্তে
প্রতিটি ধারাবাহিক SELECT দিয়ে টেবিলের শুরু। আপনি যদি বাহ্যিক ব্যবহার করেন
প্লাগইন, তারা কিভাবে আরোহণের সাথে ইন্টারঅ্যাক্ট করে তার আলোচনার জন্য দয়া করে "এক্সটেনডিং" দেখুন৷
সূচি।

'a' এবং 'b' বিকল্পগুলি আপনাকে বাইনারিগুলির মধ্য দিয়ে বিবৃতিগুলি কীভাবে প্রবাহিত হয় তা নিয়ন্ত্রণ করতে দেয়
লগ আপনি যদি 'b' বিকল্পটি নির্দিষ্ট করেন, তাহলে নির্দিষ্ট করাটিতে বাইনারি লগিং নিষ্ক্রিয় করা হবে
সংযোগ আপনি যদি 'a' বিকল্পটি নির্দিষ্ট করেন, সংযোগটি নির্দিষ্ট "ব্যবহার" করবে
ডাটাবেস, যা আপনি বাইনারি লগ ইভেন্টগুলি চালানো থেকে স্লেভদের প্রতিরোধ করতে ব্যবহার করতে পারেন
"--replicate-ignore-db" বিকল্প সহ। এই দুটি বিকল্প ভিন্ন হিসাবে ব্যবহার করা যেতে পারে
একই লক্ষ্য অর্জনের পদ্ধতি: মাস্টার থেকে ডেটা আর্কাইভ করুন, তবে এটিতে রেখে দিন
দাস উদাহরণস্বরূপ, আপনি মাস্টারের উপর একটি শুদ্ধ কাজ চালাতে পারেন এবং এটি থেকে প্রতিরোধ করতে পারেন
আপনার পছন্দের পদ্ধতি ব্যবহার করে ক্রীতদাসের উপর ঘটছে।

সতর্কতামূলক: একটি ডিফল্ট অপশন ফাইল (F) DSN অপশন ব্যবহার করা যা এর জন্য একটি সকেট নির্ধারণ করে
"--source" pt-archiverকে সেই সকেট ব্যবহার করে "--dest" এর সাথে সংযোগ করতে দেয় যদি না অন্য
"--dest" এর জন্য সকেট নির্দিষ্ট করা আছে। এর মানে হল pt-archiver ভুলভাবে সংযোগ করতে পারে
"--উৎস"-এ যখন এটি "--ডেস্ট"-এর সাথে সংযোগ করার জন্য বোঝানো হয়। উদাহরণ স্বরূপ:

-- উৎস F=host1.cnf,D=db,t=tbl --dest h=host2

যখন pt-archiver "--dest", host2 এর সাথে সংযোগ করে, তখন এটি "--source" এর মাধ্যমে সংযোগ করবে।
host1, host1.cnf এ সংজ্ঞায়িত সকেট।

-- পরিসংখ্যান
সময় পরিসংখ্যান সংগ্রহ এবং মুদ্রণ.

পিটি-আর্কিভারকে এটি কী করে সে সম্পর্কে সময়ের পরিসংখ্যান সংগ্রহ করে। এই পরিসংখ্যান
"--প্লাগইন" দ্বারা নির্দিষ্ট প্লাগইনে উপলব্ধ

আপনি "--শান্ত" উল্লেখ না করলে, "pt-আর্কিভার" পরিসংখ্যান প্রিন্ট করে যখন এটি প্রস্থান করে। দ্য
পরিসংখ্যান এই মত দেখায়:

Started at 2008-07-18T07:18:53, ended at 2008-07-18T07:18:53
উত্স: D=db, t=টেবিল
4 নির্বাচন করুন
সন্নিবেশ 4
মুছুন 4
কর্ম গণনা সময় Pct
কমিট 10 0.1079 88.27
5 0.0047 3.87 নির্বাচন করুন
4 0.0028 2.29 মুছে ফেলা হচ্ছে
সন্নিবেশ করা হচ্ছে 4 0.0028 2.28
অন্যান্য 0 0.0040 3.29

প্রথম দুটি (বা তিনটি) লাইন সময় এবং উত্স এবং গন্তব্য সারণী দেখায়। দ্য
পরের তিনটি লাইন দেখায় কতগুলি সারি আনা হয়েছে, সন্নিবেশ করা হয়েছে এবং মুছে ফেলা হয়েছে।

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

যদি "--কেন-প্রস্থান" দেওয়া হয়, তবে এর আচরণ কিছুটা পরিবর্তিত হয়। এই বিকল্প এটি ঘটায়
আর কোনো সারি না থাকার কারণেও প্রস্থান করার কারণ প্রিন্ট করুন।

এই বিকল্পটির জন্য আদর্শ Time::HiRes মডিউল প্রয়োজন, যা মূল পার্লের অংশ
যুক্তিসঙ্গতভাবে নতুন পার্ল রিলিজ।

-- থামো
সেন্টিনেল ফাইল তৈরি করে দৃষ্টান্ত চালানো বন্ধ করুন।

pt-আর্কিভারকে "--sentinel" দ্বারা নির্দিষ্ট করা সেন্টিনেল ফাইল তৈরি করে এবং প্রস্থান করে।
এটি দেখতে থাকা সমস্ত চলমান দৃষ্টান্ত বন্ধ করার প্রভাব থাকা উচিত
একই সেন্টিনেল ফাইল।

--txn-সাইজ
প্রকার: int; ডিফল্ট: 1

প্রতি লেনদেন সারি সংখ্যা.

প্রতিটি লেনদেনের আকার, সারির সংখ্যা উল্লেখ করে। জিরো লেনদেন নিষ্ক্রিয় করে
সব মিলিয়ে পিটি-আর্কিভার এই অনেক সারি প্রক্রিয়া করার পরে, এটি উভয়ই কমিট করে
"--source" এবং "--dest" দেওয়া থাকলে, এবং "--file" দ্বারা প্রদত্ত ফাইলটি ফ্লাশ করে।

এই পরামিতি কর্মক্ষমতা জন্য গুরুত্বপূর্ণ. আপনি যদি একটি লাইভ সার্ভার থেকে আর্কাইভ করছেন,
যেটি উদাহরণস্বরূপ ভারী OLTP কাজ করছে, আপনাকে এর মধ্যে একটি ভাল ভারসাম্য বেছে নিতে হবে
লেনদেনের আকার এবং কমিট ওভারহেড। বড় লেনদেনের সম্ভাবনা তৈরি করে
আরো লক বিবাদ এবং অচলাবস্থা, কিন্তু ছোট লেনদেন আরো ঘন ঘন ঘটায়
ওভারহেড কমিট, যা তাৎপর্যপূর্ণ হতে পারে। একটি ধারণা দিতে, একটি ছোট পরীক্ষা সেট আমি
পিটি-আর্কিভার লেখার সময় কাজ করে, 500 এর মান আর্কাইভ করতে প্রায় 2 সময় নেয়
আমার ডেস্কটপ মেশিনে অন্যথায় শান্ত মাইএসকিউএল উদাহরণে প্রতি 1000 সারিতে সেকেন্ড,
ডিস্কে এবং অন্য টেবিলে আর্কাইভ করা হচ্ছে। শূন্য মান সহ লেনদেন নিষ্ক্রিয় করা,
যা অটোকমিট চালু করে, প্রতি হাজার সারি প্রতি 38 সেকেন্ডে কর্মক্ষমতা কমিয়ে দেয়।

আপনি যদি একটি লেনদেনমূলক স্টোরেজ ইঞ্জিন থেকে আর্কাইভ না করে থাকেন, তাহলে আপনি চাইতে পারেন
লেনদেন নিষ্ক্রিয় করুন যাতে pt-archiver প্রতিশ্রুতি দেওয়ার চেষ্টা না করে।

-- ব্যবহারকারী
সংক্ষিপ্ত রূপ: -u; প্রকার: স্ট্রিং

বর্তমান ব্যবহারকারী না হলে লগইন করার জন্য ব্যবহারকারী।

--সংস্করণ
সংস্করণ দেখান এবং প্রস্থান করুন।

--[কোন] সংস্করণ-চেক
ডিফল্ট: হ্যাঁ

Percona Toolkit, MySQL, এবং অন্যান্য প্রোগ্রামগুলির সর্বশেষ সংস্করণের জন্য পরীক্ষা করুন৷

এটি একটি স্ট্যান্ডার্ড "স্বয়ংক্রিয়ভাবে আপডেটের জন্য চেক করুন" বৈশিষ্ট্য, দুটি অতিরিক্ত সহ
বৈশিষ্ট্য প্রথমত, টুলটি স্থানীয় সিস্টেমে অন্যান্য প্রোগ্রামের সংস্করণ পরীক্ষা করে
এর নিজস্ব সংস্করণ ছাড়াও। উদাহরণস্বরূপ, এটি প্রতিটি MySQL সার্ভারের সংস্করণ পরীক্ষা করে
এটি পার্ল এবং পার্ল মডিউল DBD::mysql-এর সাথে সংযোগ করে। দ্বিতীয়ত, এটি পরীক্ষা করে এবং সতর্ক করে
পরিচিত সমস্যা সহ সংস্করণ সম্পর্কে। উদাহরণস্বরূপ, MySQL 5.5.25-এ একটি জটিল বাগ ছিল এবং
5.5.25a হিসাবে পুনরায় প্রকাশিত হয়েছিল৷

যেকোন আপডেট বা পরিচিত সমস্যা টুলের স্বাভাবিক আউটপুটের আগে STDOUT এ প্রিন্ট করা হয়।
এই বৈশিষ্ট্যটি কখনই টুলের স্বাভাবিক ক্রিয়াকলাপে হস্তক্ষেপ করবে না।

আরো তথ্যের জন্য, যান .

--কোথায়
প্রকার: স্ট্রিং

WHERE ক্লজ কোন সারি আর্কাইভ করতে হবে তা সীমাবদ্ধ করতে (প্রয়োজনীয়)।

কোন সারি আর্কাইভ করা হয়েছে তা সীমিত করতে একটি WHERE ক্লজ উল্লেখ করে। শব্দটি অন্তর্ভুক্ত করবেন না
কোথায়. আপনার শেলটিকে এটি ব্যাখ্যা করা থেকে আটকাতে আপনাকে যুক্তিটি উদ্ধৃত করতে হতে পারে।
উদাহরণ স্বরূপ:

-- যেখানে 'ts < বর্তমান_তারিখ - ব্যবধান 90 দিন'

নিরাপত্তার জন্য, "--যেখানে" প্রয়োজন। আপনি একটি WHERE ধারা প্রয়োজন না হলে, ব্যবহার করুন
"--কোথায়" 1=1।

--কেন-ছাড়ুন
সারি শেষ না হলে প্রস্থান করার কারণ মুদ্রণ করুন।

পিটি-আর্কিভারকে একটি বার্তা প্রিন্ট করতে দেয় যদি এটি চলমান ছাড়া অন্য কোনো কারণে প্রস্থান করে
সংরক্ষণাগার থেকে সারি বাইরে. আপনার যদি "--রান-টাইম" এর সাথে একটি ক্রোন কাজ থাকে তবে এটি কার্যকর হতে পারে
নির্দিষ্ট করা হয়েছে, উদাহরণস্বরূপ, এবং আপনি নিশ্চিত হতে চান যে pt-আর্কিভার আগে শেষ হচ্ছে
সময় ফুরিয়ে যাচ্ছে

যদি "--পরিসংখ্যান" দেওয়া হয়, আচরণটি সামান্য পরিবর্তিত হয়। এটি প্রিন্ট করবে
আর কোনো সারি না থাকার কারণেও প্রস্থান করার কারণ।

এই আউটপুট প্রিন্ট করে এমনকি যদি "--শান্ত" দেওয়া হয়। তাই আপনি "pt-archiver" রাখতে পারেন
একটি "ক্রন" কাজ এবং একটি অস্বাভাবিক প্রস্থান হলে একটি ইমেল পান।

ডিএসএন বিকল্প


এই DSN বিকল্পগুলি একটি DSN তৈরি করতে ব্যবহৃত হয়। প্রতিটি অপশন দেওয়া আছে যেমন "option=value"।
বিকল্পগুলি কেস-সংবেদনশীল, তাই P এবং p একই বিকল্প নয়। থাকতে পারে না
"=" এর আগে বা পরে হোয়াইটস্পেস এবং যদি মানটিতে হোয়াইটস্পেস থাকে তবে এটি অবশ্যই উদ্ধৃত করা উচিত।
DSN বিকল্পগুলি কমা দ্বারা পৃথক করা হয়৷ সম্পূর্ণ বিবরণের জন্য percona-toolkit ম্যানপেজ দেখুন।

· ক

অনুলিপি: না

অনুসন্ধান চালানোর সময় ব্যবহার করার জন্য ডেটাবেস।

· এ

dsn: অক্ষর সেট; অনুলিপি: হ্যাঁ

ডিফল্ট অক্ষর সেট।

· খ

অনুলিপি: না

সত্য হলে, SQL_LOG_BIN এর সাথে বিনলগ নিষ্ক্রিয় করুন।

· ডি

dsn: ডাটাবেস; অনুলিপি: হ্যাঁ

ডাটাবেস যা টেবিল ধারণ করে।

· F

dsn: mysql_read_default_file; অনুলিপি: হ্যাঁ

প্রদত্ত ফাইল থেকে শুধুমাত্র ডিফল্ট বিকল্পগুলি পড়ুন

· জ

dsn: হোস্ট; অনুলিপি: হ্যাঁ

হোস্টের সাথে সংযোগ করুন।

· i

অনুলিপি: হ্যাঁ

ব্যবহার করার জন্য সূচক।

· এল

অনুলিপি: হ্যাঁ

সুস্পষ্টভাবে লোড ডেটা স্থানীয় ইনফাইল সক্ষম করুন৷

কিছু কারণে, কিছু বিক্রেতা --enable-local-infile ছাড়া libmysql কম্পাইল করে
বিকল্প, যা বিবৃতি নিষ্ক্রিয় করে। এটি অদ্ভুত পরিস্থিতির দিকে নিয়ে যেতে পারে, যেমন
সার্ভার স্থানীয় ইনফাইলকে অনুমতি দেয়, তবে ক্লায়েন্ট থ্রোয়িং ব্যতিক্রম যদি এটি ব্যবহার করা হয়।

যাইহোক, যতক্ষণ সার্ভার ডেটা লোড করার অনুমতি দেয়, ক্লায়েন্টরা সহজেই এটি পুনরায় সক্ষম করতে পারে; দেখা
এবং
<http://search.cpan.org/~capttofu/DBD-mysql/lib/DBD/mysql.pm> এই বিকল্পটি করে
ঠিক যে

যদিও আমরা এমন কোনো ঘটনা খুঁজে পাইনি যেখানে এই বিকল্পটি পরিবর্তন করলে ত্রুটি বা ভিন্নতার দিকে পরিচালিত হয়
আচরণ, নিরাপদে থাকার জন্য, এই বিকল্পটি ডিফল্টরূপে চালু নেই।

· মি

অনুলিপি: না

প্লাগইন মডিউল নাম.

· পি

dsn: পাসওয়ার্ড; অনুলিপি: হ্যাঁ

সংযোগ করার সময় ব্যবহার করার জন্য পাসওয়ার্ড। যদি পাসওয়ার্ডে কমা থাকে তবে সেগুলিকে এস্কেপ করতে হবে৷
ব্যাকস্ল্যাশ সহ: "পরীক্ষা\,ple"

· পি

dsn: পোর্ট; অনুলিপি: হ্যাঁ

সংযোগের জন্য ব্যবহার করার জন্য পোর্ট নম্বর।

। এস

dsn: mysql_socket; অনুলিপি: হ্যাঁ

সংযোগের জন্য ব্যবহার করার জন্য সকেট ফাইল।

· টি

অনুলিপি: হ্যাঁ

থেকে/ থেকে আর্কাইভ করার জন্য টেবিল।

· u

dsn: ব্যবহারকারী; অনুলিপি: হ্যাঁ

বর্তমান ব্যবহারকারী না হলে লগইন করার জন্য ব্যবহারকারী।

প্রসারিত


কিছু যুক্তি এবং/অথবা পরিচালনা করার জন্য বহিরাগত পার্ল মডিউলগুলিতে প্লাগ করে pt-আর্কিভার এক্সটেনসিবল
কর্ম আপনি 'm' সহ "--উৎস" এবং "--ডেস্ট" উভয়ের জন্য একটি মডিউল নির্দিষ্ট করতে পারেন
স্পেসিফিকেশনের অংশ। উদাহরণ স্বরূপ:

-- উৎস D=test,t=test1,m=My::Module1 --dest m=My::Module2,t=test2

এর ফলে pt-আর্কিভার My::Module1 এবং My::Module2 প্যাকেজগুলি লোড করবে, তৈরি করবে
তাদের উদাহরণ, এবং তারপর সংরক্ষণাগার প্রক্রিয়া চলাকালীন তাদের কল করুন।

আপনি "--প্লাগইন" সহ একটি প্লাগইন নির্দিষ্ট করতে পারেন।

মডিউল এই ইন্টারফেস প্রদান করা আবশ্যক:

নতুন(dbh => $dbh, db => $db_name, tbl => $tbl_name)
প্লাগইনের কনস্ট্রাক্টরকে ডাটাবেস হ্যান্ডেল, ডাটাবেসের একটি রেফারেন্স দেওয়া হয়
নাম, এবং টেবিলের নাম। pt-archiver খুললেই প্লাগইন তৈরি হয়
সংযোগ, এবং এটি আর্গুমেন্টে দেওয়া টেবিল পরীক্ষা করার আগে। এই দেয়
অস্থায়ী টেবিল তৈরি এবং পপুলেট করার একটি সুযোগ প্লাগইন করুন, বা অন্যান্য সেটআপের কাজ করুন।

before_begin(cols => \@cols, allcols => \@allcols)
pt-archiver সারি এবং মাধ্যমে পুনরাবৃত্তি শুরু করার ঠিক আগে এই পদ্ধতিটিকে বলা হয়
তাদের সংরক্ষণাগার, কিন্তু এটি অন্যান্য সমস্ত সেটআপ কাজ করার পরে (টেবিল কাঠামো পরীক্ষা করা,
এসকিউএল কোয়েরি ডিজাইন করা, এবং তাই)। এই একমাত্র সময় pt-archiver প্লাগইনকে বলে
সারিগুলির জন্য কলামের নাম সংরক্ষণাগার করার সময় এটি প্লাগইনটি পাস করবে।

"cols" আর্গুমেন্ট হল সেই কলামের নামগুলি যা ব্যবহারকারী আর্কাইভ করার জন্য অনুরোধ করেছেন, হয়
ডিফল্ট বা "--কলাম" বিকল্প দ্বারা। "allcols" আর্গুমেন্ট হল কলামের তালিকা
প্রতিটি সারির জন্য নাম pt-archiver সোর্স টেবিল থেকে আনা হবে। এটা আরো আনতে পারে
ব্যবহারকারীর অনুরোধের চেয়ে কলাম, কারণ এটির নিজস্ব ব্যবহারের জন্য কিছু কলাম প্রয়োজন। কখন
পরবর্তী প্লাগইন ফাংশনগুলি একটি সারি পায়, এটি সমস্ত অতিরিক্ত সমন্বিত পূর্ণ সারি
কলাম, যদি থাকে, শেষে যোগ করা হয়।

is_archivable(সারি => \@সারি)
এই পদ্ধতিটি সংরক্ষণযোগ্য কিনা তা নির্ধারণ করতে প্রতিটি সারির জন্য বলা হয়। এই
শুধুমাত্র "--উৎস" এ প্রযোজ্য। আর্গুমেন্ট হল সারি নিজেই, একটি অ্যারেরেফ হিসাবে। যদি
পদ্ধতি সত্য ফেরত, সারি সংরক্ষণাগার করা হবে; অন্যথায় এটি এড়িয়ে যাওয়া হবে।

একটি সারি এড়িয়ে যাওয়া অ-অনন্য সূচকগুলির জন্য জটিলতা যোগ করে। সাধারণত পিটি-আর্কিভার একটি ব্যবহার করে
WHERE ক্লজটি স্ক্যান শুরু করার স্থান হিসাবে শেষ প্রক্রিয়াকৃত সারিটিকে লক্ষ্য করার জন্য ডিজাইন করা হয়েছে
পরবর্তী SELECT স্টেটমেন্টের জন্য। যদি আপনি মিথ্যা থেকে ফিরে সারি এড়িয়ে যান
is_archivable(), pt- archiver একটি অসীম লুপে যেতে পারে কারণ সারিটি এখনও রয়েছে
বিদ্যমান অতএব, আপনি যখন "--উৎস" আর্গুমেন্টের জন্য একটি প্লাগইন নির্দিষ্ট করেন, pt-archiver
এর WHERE ধারা সামান্য পরিবর্তন করবে। "এর চেয়ে বড় বা সমান" থেকে শুরু করার পরিবর্তে
শেষ প্রক্রিয়াকৃত সারিতে, এটি শুরু হবে "এর চেয়ে কঠোরভাবে বড়।" এটি কাজ করবে
প্রাথমিক কীগুলির মতো অনন্য সূচকগুলিতে জরিমানা, তবে এটি সারিগুলি এড়িয়ে যেতে পারে (গর্ত ছেড়ে দিন)
নন-ইউনিক ইনডেক্স বা সূচকের প্রথম কলামে আরোহণের সময়।

আপনি যদি "--no-delete" উল্লেখ করেন, "pt-archiver" একইভাবে ধারা পরিবর্তন করবে,
কারণ আবার একটি অসীম লুপ সম্ভব।

আপনি যদি "--bulk-delete" বিকল্পটি উল্লেখ করেন এবং এই পদ্ধতি থেকে মিথ্যা ফেরত দেন,
"pt-archiver" আপনি যা চান তা নাও করতে পারে। সারি আর্কাইভ করা হবে না, কিন্তু এটা হবে
মুছে ফেলা হয়েছে, যেহেতু বাল্ক ডিলিটগুলি সারিগুলির পরিসরে কাজ করে এবং কোন সারিগুলি তা জানি না
রাখার জন্য প্লাগইন নির্বাচন করা হয়েছে।

আপনি যদি "--bulk-insert" বিকল্পটি নির্দিষ্ট করেন, তাহলে এই পদ্ধতির রিটার্ন মান প্রভাবিত করবে
সারিটি বাল্ক সন্নিবেশের জন্য অস্থায়ী ফাইলে লেখা হয়েছে কিনা, তাই বাল্ক সন্নিবেশ
আশানুরূপ কাজ করবে। যাইহোক, বাল্ক সন্নিবেশের জন্য বাল্ক মুছে ফেলা প্রয়োজন।

before_delete(সারি => \@সারি)
এই পদ্ধতিটি মুছে ফেলার ঠিক আগে প্রতিটি সারির জন্য বলা হয়। এই শুধুমাত্র প্রযোজ্য
"--উৎস". এটি আপনার জন্য নির্ভরতা পরিচালনা করার জন্য একটি ভাল জায়গা, যেমন মুছে ফেলা
আপনি যে সারিটি মুছে ফেলতে চলেছেন তার সাথে বিদেশী-কিযুক্ত জিনিসগুলি। আপনিও ব্যবহার করতে পারেন
এটি সমস্ত নির্ভরশীল টেবিলগুলিকে পুনরাবৃত্তভাবে সংরক্ষণাগার করতে।

এই প্লাগইন পদ্ধতি বলা হয় এমনকি যদি "--no-delete" দেওয়া হয়, কিন্তু যদি না হয়
"--বাল্ক-ডিলিট" দেওয়া আছে।

আগে_বাল্ক_মোছা (প্রথম_রো => \@ সারি, শেষ_রো => \@ সারি)
একটি বাল্ক মুছে ফেলার ঠিক আগে এই পদ্ধতিটি বলা হয়। এটি অনুরূপ
"before_delete" পদ্ধতি, এর আর্গুমেন্ট ব্যতীত রেঞ্জের প্রথম এবং শেষ সারি
মুছে ফেলা হবে. "--না-মোছা" দেওয়া হলেও এটি বলা হয়।

before_insert(সারি => \@সারি)
এই পদ্ধতিটি ঢোকানোর ঠিক আগে প্রতিটি সারির জন্য বলা হয়। এই শুধুমাত্র প্রযোজ্য
"---ডেস্ট"। আপনি একাধিক টেবিলে সারি সন্নিবেশ করতে এটি ব্যবহার করতে পারেন, সম্ভবত একটি দিয়ে
একটি ডেটা গুদামে সারাংশ টেবিল তৈরি করার জন্য ডুপ্লিকেট কী আপডেট ক্লজ।

এই পদ্ধতি বলা হয় না যদি "--বাল্ক-ইনসার্ট" দেওয়া হয়।

before_bulk_insert(first_row => \@row, last_row => \@row, filename =>
বাল্ক_ইনসার্ট_ফাইলনাম)
একটি বাল্ক সন্নিবেশ কার্যকর করার ঠিক আগে এই পদ্ধতিটি বলা হয়। এটি অনুরূপ
"before_insert" পদ্ধতি, এর আর্গুমেন্ট ব্যতীত ব্যাপ্তির প্রথম এবং শেষ সারি
মুছে ফেলা হবে.

custom_sth(সারি => \@ সারি, sql => $sql)
এই পদ্ধতিটি সারি ঢোকানোর ঠিক আগে বলা হয়, কিন্তু পরে "before_insert()". এটা
প্লাগইনকে ইচ্ছা হলে ভিন্ন "INSERT" বিবৃতি নির্দিষ্ট করার অনুমতি দেয়। ফেরত
মান (যদি থাকে) একটি DBI স্টেটমেন্ট হ্যান্ডেল হওয়া উচিত। "sql" প্যারামিটার হল SQL টেক্সট
ডিফল্ট "INSERT" বিবৃতি প্রস্তুত করতে ব্যবহৃত হয়। এই পদ্ধতি যদি আপনি বলা হয় না
"--বাল্ক-ইনসার্ট" উল্লেখ করুন।

যদি কোনো মান প্রদান করা না হয়, ডিফল্ট "INSERT" বিবৃতি হ্যান্ডেল ব্যবহার করা হয়।

এই পদ্ধতিটি শুধুমাত্র "--dest" এর জন্য নির্দিষ্ট করা প্লাগইনের ক্ষেত্রে প্রযোজ্য, তাই যদি আপনার প্লাগইন না হয়
আপনি যা আশা করছেন তা করছেন, পরীক্ষা করুন যে আপনি এটি গন্তব্যের জন্য নির্দিষ্ট করেছেন এবং এর জন্য নয়
উৎস।

custom_sth_bulk(first_row => \@row, last_row => \@row, sql => $sql, ফাইলের নাম =>
$bulk_insert_filename)
আপনি যদি "--বাল্ক-ইনসার্ট" নির্দিষ্ট করে থাকেন, তাহলে এই পদ্ধতিটিকে বাল্কের ঠিক আগে বলা হয়
ঢোকান, কিন্তু পরে "আগে_বাল্ক_ইনসার্ট()", এবং যুক্তি ভিন্ন।

এই পদ্ধতির রিটার্ন মান ইত্যাদি "এর অনুরূপcustom_sth()"পদ্ধতি।

after_finish()
পিটি-আর্কিভার আর্কাইভিং লুপ থেকে প্রস্থান করার পরে, সমস্ত ডাটাবেস কমিট করার পরে এই পদ্ধতিটি বলা হয়
হ্যান্ডেল করে, "--ফাইল" বন্ধ করে এবং চূড়ান্ত পরিসংখ্যান প্রিন্ট করে, কিন্তু পিটি-আর্কিভার চালানোর আগে
বিশ্লেষণ বা অপ্টিমাইজ করুন ("--বিশ্লেষণ" এবং "--অপ্টিমাইজ" দেখুন)।

আপনি যদি "--উৎস" এবং "--ডেস্ট" উভয়ের জন্য একটি প্লাগইন নির্দিষ্ট করেন, পিটি-আর্কিভার কনস্ট্রাক্ট, কল
before_begin(), এবং কল after_finish() "--উৎস" ক্রমে দুটি প্লাগইনে
"---ডেস্ট"।

pt-archiver অনুমান করে যে এটি লেনদেন নিয়ন্ত্রণ করে এবং প্লাগইনটি কমিট বা রোল করবে না
ডাটাবেস হ্যান্ডেল ফিরে. প্লাগইন এর কনস্ট্রাক্টরের কাছে পাঠানো ডাটাবেস হ্যান্ডেল হল
একই হ্যান্ডেল পিটি-আর্কিভার নিজেই ব্যবহার করে। মনে রাখবেন যে "--source" এবং "--dest" আলাদা
হ্যান্ডলগুলি

একটি নমুনা মডিউল এই মত দেখতে হতে পারে:

প্যাকেজ আমার::মডিউল;

সাব নতুন {
আমার ( $class, %args ) = @_;
আশীর্বাদ ফেরত (\%args, $class);
}

sub before_begin {
আমার ( $self, %args ) = @_;
# পরের জন্য কলামের নাম সংরক্ষণ করুন
$self->{cols} = $args{cols};
}

sub is_archivable {
আমার ( $self, %args ) = @_;
# $args{row} দিয়ে কিছু উন্নত লজিক করুন
ফিরে 1;
}

sub before_delete {} # কোনো পদক্ষেপ নেবেন না
sub before_insert {} # কোনো পদক্ষেপ নেবেন না
sub custom_sth {} # কোন পদক্ষেপ নেবেন না
sub after_finish {} # কোনো পদক্ষেপ নেবেন না

1;

পরিবেশ


পরিবেশ পরিবর্তনশীল "PTDEBUG" STDERR-এ ভার্বোজ ডিবাগিং আউটপুট সক্ষম করে। সক্রিয় করতে
ডিবাগিং এবং একটি ফাইলে সমস্ত আউটপুট ক্যাপচার করুন, টুলটি চালান যেমন:

PTDEBUG=1 pt- Archiver... > ফাইল 2>&1

সতর্কতা অবলম্বন করুন: ডিবাগিং আউটপুট বিশাল এবং অনেক মেগাবাইট আউটপুট তৈরি করতে পারে।

সিস্টেম যোগ্যতা


আপনার প্রয়োজন পার্ল, ডিবিআই, ডিবিডি::মাইসকিউএল, এবং কিছু মূল প্যাকেজ যা যেকোনো একটিতে ইনস্টল করা উচিত
পার্লের যুক্তিসঙ্গত নতুন সংস্করণ।

onworks.net পরিষেবা ব্যবহার করে অনলাইনে pt-archiverp ব্যবহার করুন


বিনামূল্যে সার্ভার এবং ওয়ার্কস্টেশন

উইন্ডোজ এবং লিনাক্স অ্যাপ ডাউনলোড করুন

  • 1
    ডিভকিট
    ডিভকিট
    DivKit হল একটি ওপেন সোর্স সার্ভার-চালিত
    UI (SDUI) ফ্রেমওয়ার্ক। এটা আপনাকে অনুমতি দেয়
    সার্ভার-উৎসিত আপডেটগুলি রোল আউট করুন
    বিভিন্ন অ্যাপ সংস্করণ। এছাড়াও, এটা হতে পারে
    এর জন্য ব্যবহৃত...
    DivKit ডাউনলোড করুন
  • 2
    সাবকনভার্টার
    সাবকনভার্টার
    বিভিন্ন মধ্যে রূপান্তর ইউটিলিটি
    সাবস্ক্রিপশন বিন্যাস। শ্যাডোরকেট ব্যবহারকারী
    লক্ষ্য হিসাবে ss, ssr বা v2ray ব্যবহার করা উচিত।
    আপনি &remark= এ যোগ করতে পারেন
    টেলিগ্রাম-পছন্দ HT...
    সাবকনভার্টার ডাউনলোড করুন
  • 3
    সোয়াশ
    সোয়াশ
    SWASH একটি সাধারণ-উদ্দেশ্য সংখ্যাসূচক
    অস্থির অনুকরণের জন্য টুল,
    নন-হাইড্রোস্ট্যাটিক, ফ্রি-সারফেস,
    ঘূর্ণন প্রবাহ এবং পরিবহন ঘটনা
    উপকূলীয় জলে যেমন...
    SWASH ডাউনলোড করুন
  • 4
    VBA-M (আর্কাইভ করা - এখন Github-এ)
    VBA-M (আর্কাইভ করা - এখন Github-এ)
    প্রকল্প সরানো হয়েছে
    https://github.com/visualboyadvance-m/visualboyadvance-m
    বৈশিষ্ট্য: ঠকাই সৃষ্টি সেভ রাষ্ট্র মাল্টি
    সিস্টেম, জিবিএ সমর্থন করে, জিবিসি, জিবি, এসজিবি,
    sgb2Tu...
    ভিবিএ-এম ডাউনলোড করুন (আর্কাইভ করা - এখন গিথুবে)
  • 5
    Stacer
    Stacer
    লিনাক্স সিস্টেম অপ্টিমাইজার এবং মনিটরিং
    Github সংগ্রহস্থল:
    https://github.com/oguzhaninan/Stacer.
    শ্রোতা: শেষ ব্যবহারকারী/ডেস্কটপ। ব্যবহারকারী
    ইন্টারফেস: Qt. প্রোগ্রামিং লা...
    Stacer ডাউনলোড করুন
  • 6
    অরেঞ্জফক্স
    অরেঞ্জফক্স
    TeamWinRecoveryProject (TWRP) এর ফর্ক
    অনেক অতিরিক্ত ফাংশন সহ, পুনরায় ডিজাইন
    এবং আরো বৈশিষ্ট্য: Treble সমর্থন করে এবং
    নন-ট্রেবল রম আপ-টু-ডেট ওরিও কার্নেল,
    নির্মিত...
    অরেঞ্জফক্স ডাউনলোড করুন
  • আরও »

লিনাক্স কমান্ডগুলি

  • 1
    এএ-ক্লিকহুক
    এএ-ক্লিকহুক
    aa-clickhook - এর জন্য সিস্টেম হুক ক্লিক করুন
    AppArmor বর্ণনা: যখন একটি ক্লিক
    প্যাকেজ ইনস্টল করা হয়েছে, ক্লিক রান হবে
    সিস্টেম এবং ব্যবহারকারীর হুক। ক্লিক
    AppArmor সিস্টেম h...
    এএ-ক্লিকহুক চালান
  • 2
    aa-clickquery
    aa-clickquery
    aa-clickquery - অনুসন্ধানের জন্য প্রোগ্রাম
    ক্লিক-অ্যাপারমার বর্ণনা: এই প্রোগ্রাম
    ক্লিক-অ্যাপারমারের জন্য অনুসন্ধান করতে ব্যবহৃত হয়
    তথ্য ব্যবহার: aa-clickquery
    --ক্লিক-ফ্রা...
    AA-clickquery চালান
  • 3
    cqrlog
    cqrlog
    CQRLOG - এর জন্য অ্যাডভান্সড লগিং প্রোগ্রাম
    হ্যামরাডিও অপারেটর বর্ণনা: CQRLOG
    উপর ভিত্তি করে একটি উন্নত হ্যাম রেডিও লগার
    মাইএসকিউএল ডাটাবেস। রেডিও নিয়ন্ত্রণ প্রদান করে
    বি। এ...
    cqrlog চালান
  • 4
    cramfsswap
    cramfsswap
    cramfsswap - একটি ক্র্যাম এর অদলবদল endianess
    ফাইল সিস্টেম (cramfs) ...
    cramfsswap চালান
  • 5
    FvwmEvent
    FvwmEvent
    FvwmEvent - fvwm ইভেন্ট মডিউল ...
    FvwmEvent চালান
  • 6
    FvwmForm
    FvwmForm
    FvwmForm - Fvwm এর জন্য ইনপুট ফর্ম মডিউল ...
    FvwmForm চালান
  • আরও »

Ad