انجليزيالفرنسيةالإسبانية

Ad


OnWorks فافيكون

pt-archiverp - عبر الإنترنت في السحابة

قم بتشغيل pt-archiverp في مزود الاستضافة المجاني OnWorks عبر Ubuntu Online أو Fedora Online أو محاكي Windows عبر الإنترنت أو محاكي MAC OS عبر الإنترنت

هذا هو الأمر pt-archiverp الذي يمكن تشغيله في مزود الاستضافة المجانية OnWorks باستخدام إحدى محطات العمل المجانية المتعددة على الإنترنت مثل Ubuntu Online أو Fedora Online أو محاكي Windows عبر الإنترنت أو محاكي MAC OS عبر الإنترنت

برنامج:

اسم


pt-archiver - أرشفة صفوف من جدول MySQL إلى جدول أو ملف آخر.

موجز


الاستخدام: pt-archiver [الخيارات] - مصدر DSN - حيث أين

يقضم pt-archiver السجلات من جدول MySQL. تستخدم الوسيطات --source و --dest DSN
بناء الجملة؛ إذا كان COPY بنعم ، فإن --dest الإعدادات الافتراضية لقيمة المفتاح من --source.

أمثلة:

أرشفة جميع الصفوف من oltp_server إلى olap_server وإلى ملف:

pt-archiver - المصدر h = oltp_server ، D = test ، t = tbl --dest h = olap_server \
- ملف '/var/log/archive/٪Y-٪m-٪d-٪D.٪t' \
- حيث "1 = 1" - بحد 1000 - التزام لكل منهما

تطهير (حذف) الصفوف اليتيمة من الجدول الفرعي:

pt-archiver - المصدر h = المضيف ، D = db ، t = الطفل - المنقار \
--where 'NOT EXISTS (حدد * من الأصل حيث col = child.col)'

المخاطر


مجموعة أدوات Percona ناضجة ، ومثبتة في العالم الحقيقي ، ومختبرة جيدًا ، ولكن جميعها قاعدة بيانات
يمكن أن تشكل الأدوات خطرًا على النظام وخادم قاعدة البيانات. قبل استخدام هذه الأداة ،
من فضلك:

· اقرأ وثائق الأداة

· مراجعة الأداة المعروفة "BUGS"

· اختبار الأداة على خادم غير إنتاجي

· قم بعمل نسخة احتياطية لخادم الإنتاج الخاص بك وتحقق من النسخ الاحتياطية

الوصف


pt-archiver هي الأداة التي أستخدمها لأرشفة الجداول كما هو موضح في
<http://tinyurl.com/mysql-archiving>. الهدف هو وظيفة منخفضة التأثير ، إلى الأمام فقط
قضم البيانات القديمة من الجدول دون التأثير كثيرًا على استعلامات OLTP. يمكنك إدراج ملف
البيانات في جدول آخر ، والتي لا يلزم أن تكون على نفس الخادم. يمكنك أيضًا كتابتها إلى ملف
ملف بتنسيق مناسب لـ LOAD DATA INFILE. أو لا يمكنك فعل أي منهما ، وفي هذه الحالة يكون الأمر كذلك
مجرد حذف تزايدي.

pt-archiver قابل للتوسيع عبر آلية البرنامج المساعد. يمكنك إدخال الكود الخاص بك لإضافته
منطق أرشفة متقدم يمكن أن يكون مفيدًا لأرشفة البيانات التابعة وتطبيقها
قواعد العمل المعقدة ، أو بناء مستودع بيانات أثناء عملية الأرشفة.

تحتاج إلى اختيار القيم بعناية لبعض الخيارات. أهمها "- Limit" ،
"--retries" و "--txn-size".

تتمثل الإستراتيجية في العثور على الصف (الصفوف) الأول ، ثم مسح بعض الفهرس للأمام فقط للعثور على المزيد
الصفوف بكفاءة. يجب ألا يفحص كل استعلام لاحق الجدول بأكمله ؛ يجب أن تسعى
في الفهرس ، ثم قم بالمسح حتى يعثر على المزيد من الصفوف القابلة للأرشفة. تحديد الفهرس بـ
يمكن أن يكون الجزء "أنا" من حجة "المصدر" حاسمًا لهذا ؛ استخدام "- الجافة" ل
افحص الاستعلامات التي تم إنشاؤها وتأكد من شرحها لمعرفة ما إذا كانت فعالة
(ربما ترغب في معظم الأوقات في مسح المفتاح الأساسي ، وهو المفتاح الافتراضي). حتى
بشكل أفضل ، قم بفحص الاختلاف في عدادات حالة المعالج قبل وبعد تشغيل
الاستعلام ، وتأكد من أنه لا يمسح الجدول بأكمله كل استعلام.

يمكنك تعطيل تحسينات البحث ثم المسح جزئيًا أو كليًا باستخدام "- no-ascend"
و "- تصعد أولاً". في بعض الأحيان قد يكون هذا أكثر فعالية بالنسبة للمفاتيح متعددة الأعمدة. يكون
مدركًا أن pt-archiver مصمم ليبدأ من بداية الفهرس الذي يختاره ويفحصه
إلى الأمام فقط. قد ينتج عن ذلك عمليات مسح طويلة للطاولة إذا كنت تحاول أن تقضم منها
نهاية الجدول بفهرس غير الذي يفضله. انظر "--source" واقرأ
الوثائق الموجودة في الجزء "i" إذا كان هذا ينطبق عليك.

Percona XtraDB كتلة


يعمل pt-archiver مع Percona XtraDB Cluster (PXC) 5.5.28-23.7 والإصدارات الأحدث ، ولكن هناك
ثلاثة قيود يجب مراعاتها قبل الأرشفة في الكتلة:

خطأ في الالتزام
لا يتحقق pt-archiver من وجود خطأ عند تنفيذ المعاملات. يمكن للالتزامات على PXC
فشل ، لكن الأداة لم تتحقق بعد من المعاملة أو تعيد المحاولة عند حدوث ذلك.
إذا حدث ذلك ، فإن الأداة سوف تموت.

طاولات MyISAM
تعمل أرشفة جداول MyISAM ، لكن دعم MyISAM في PXC لا يزال قيد التجربة في
وقت هذا الإصدار. هناك العديد من الأخطاء المعروفة في جداول PXC و MyISAM و
أعمدة "AUTO_INCREMENT". لذلك ، يجب عليك التأكد من أن الأرشفة لن تكون مباشرة
أو يؤدي بشكل غير مباشر إلى استخدام قيم "AUTO_INCREMENT" الافتراضية لجدول MyISAM.
على سبيل المثال ، يحدث هذا مع "--dest" إذا تم استخدام "--columns" و
لم يتم تضمين عمود "AUTO_INCREMENT". الأداة لا تتحقق من هذا!

خيارات غير الكتلة
قد تعمل أو لا تعمل بعض الخيارات. على سبيل المثال ، إذا كانت عقدة الكتلة ليست أيضًا ملف
العبد ، ثم "- check-slave-lag" لا يعمل. وبما أن جداول PXC عادة ما تكون
InnoDB ، لكن InnoDB لا يدعم "INSERT DELAYED" ، ثم "--delayed-insert" لا يدعم
عمل. قد لا تعمل الخيارات الأخرى أيضًا ، لكن الأداة لا تتحقق منها ، لذلك
يجب عليك اختبار الأرشفة على مجموعة اختبار قبل الأرشفة على المجموعة الحقيقية الخاصة بك.

OUTPUT


إذا حددت "--progress" ، يكون الإخراج عبارة عن صف رأس ، بالإضافة إلى إخراج الحالة على فترات.
يسرد كل صف في إخراج الحالة التاريخ والوقت الحاليين ، وعدد الثواني pt-
تم تشغيل أرشيفي ، وعدد الصفوف التي تم أرشفتها.

إذا حددت "--statistics" ، توقيت مخرجات "pt-archiver" وغيرها من المعلومات للمساعدة
يمكنك تحديد أي جزء من عملية الأرشفة يستغرق معظم الوقت.

معالجة الأخطاء


يحاول pt-archiver التقاط الإشارات والخروج بأمان ؛ على سبيل المثال ، إذا قمت بإرسالها
SIGTERM (Ctrl-C على أنظمة UNIX-ish) ، سوف تلتقط الإشارة ، تطبع رسالة حول
إشارة ، والخروج إلى حد ما بشكل طبيعي. لن يتم تنفيذ "- تحليل" أو "- تحسين" ،
لأن هذه قد تستغرق وقتًا طويلاً للانتهاء. سيتم تشغيل جميع التعليمات البرمجية الأخرى بشكل طبيعي ،
بما في ذلك الاتصال بعد الانتهاء من() على أي مكونات إضافية (انظر "EXTENDING").

بمعنى آخر ، إذا تم اكتشاف إشارة ، فسوف تخرج من حلقة الأرشفة الرئيسية وتتخطى
تحسين / تحليل.

OPTIONS


حدد واحدًا على الأقل من "- dest" أو "- file" أو "--purge".

"--ignore" و "--replace" متنافيتان.

تعد "--txn-size" و "--commit-each" حصرية بشكل متبادل.

"- إدخال أولوية منخفضة" و "- إدراج - تأخر" متنافيان.

"--share-lock" و "- for-update" متنافيتان.

"- تحليل" و "- تحسين" متنافيتان.

"- no-ascend" و "- no-delete" هما أمران متعارضان.

قيم DSN في "--dest" الافتراضية للقيم من "--source" إذا كانت COPY هي "نعم".

- تحليل
النوع: سلسلة

قم بتشغيل ANALYZE TABLE بعد ذلك على "--source" و / أو "--dest".

يدير ANALYZE TABLE بعد الانتهاء. الوسيطة عبارة عن سلسلة عشوائية. لو أنه
يحتوي على الحرف ، سيتم تحليل المصدر. إذا كان يحتوي على "d" ، فإن
سيتم تحليل الوجهة. يمكنك تحديد أحدهما أو كليهما. على سبيل المثال ، ملف
فيما يلي تحليل كليهما:

- تحليل = س

نرىhttp://dev.mysql.com/doc/en/analyze-table.html> للحصول على تفاصيل حول ANALYZE TABLE.

- تصعد أولا
يصعد العمود الأول فقط من الفهرس.

إذا كنت تريد استخدام تحسين الفهرس التصاعدي (انظر "- لا تصاعدي") ، لكن لا تفعل ذلك
إذا كنت تريد تحمل النفقات العامة لتصاعد فهرس متعدد الأعمدة كبير ، يمكنك استخدام هذا
خيار لإخبار pt-archiver أن يصعد العمود الموجود في أقصى اليسار فقط من الفهرس. هذا يمكن
تقدم تعزيزًا كبيرًا للأداء مقارنة بعدم صعود المؤشر على الإطلاق ، بينما
تجنب تكلفة صعود المؤشر بالكامل.

راجع "تمديد" لمناقشة كيفية تفاعل هذا مع المكونات الإضافية.

- مهمة تمرير
المطالبة بكلمة مرور عند الاتصال بـ MySQL.

--متعادل
إخراج المخزن المؤقت إلى "--file" وتدفق عند الالتزام.

تعطيل التفريغ التلقائي إلى "--file" ومسح "--file" إلى القرص فقط عند إجراء معاملة
يرتكب. هذا يعني عادةً أن الملف تم مسحه بواسطة نظام التشغيل ، لذلك
قد يكون هناك بعض التدفقات الضمنية على القرص بين عمليات التنفيذ أيضًا. الافتراضي هو
تدفق "- ملف" على القرص بعد كل صف.

يكمن الخطر في أن التعطل قد يتسبب في فقدان البيانات.

زيادة الأداء التي رأيتها من استخدام "- buffer" حوالي 5 إلى 15 بالمائة.
قد تختلف المسافة المقطوعة.

- حذف مجمّع
احذف كل جزء ببيان واحد (يتضمن "--commit-each").

احذف كل جزء من الصفوف بشكل مجمّع باستخدام عبارة "DELETE" واحدة. البيان
يحذف كل صف بين الصف الأول والأخير من المقطع ، شاملاً. هذا يعني
"--commit-each" ، لأنه سيكون فكرة سيئة أن "تدرج" صفًا تلو الآخر و
الالتزام بها قبل "حذف" الجزء الأكبر.

الطريقة العادية هي حذف كل صف بمفتاحه الأساسي. قد تكون عمليات الحذف المجمعة ملف
أسرع كثيرًا. هم أيضا ربما ليس be أسرع إذا كان لديك بند معقد "WHERE".

يؤجل هذا الخيار تمامًا كل عمليات معالجة "الحذف" حتى يتم الانتهاء من مجموعة الصفوف
انتهى. إذا كان لديك مكون إضافي على المصدر ، فلن تكون طريقة "before_delete" الخاصة به
مُسَمًّى. بدلاً من ذلك ، يتم استدعاء طريقة "before_bulk_delete" لاحقًا.

تحذير: إذا كان لديك مكون إضافي على المصدر لا يعود في بعض الأحيان صحيحًا منه
"is_archivable ()" ، يجب عليك استخدام هذا الخيار فقط إذا فهمت ما يفعله. لو
يوجه المكون الإضافي "pt-archiver" إلى عدم أرشفة صف ، وسيظل يتم حذفه بواسطة
حذف بالجملة!

- [لا] حد الحذف بالجملة
الافتراضي: نعم

أضف عبارة "--limit" إلى عبارة "--bulk-delete".

هذا خيار متقدم ولا يجب تعطيله إلا إذا كنت تعرف ما أنت عليه
تفعل ولماذا! بشكل افتراضي ، تلحق "--bulk-delete" بند "--limit" بالمجموعة
حذف جملة SQL. في بعض الحالات ، يمكن حذف هذا البند عن طريق التحديد
"- لا يوجد حد للحذف بالجملة". لا يزال يجب تحديد "--limit".

- إدخال كامل
أدخل كل جزء مع LOAD DATA INFILE (يعني "- حذف مجمّع" "- التزام كل واحد").

أدخل كل جزء من الصفوف مع "LOAD DATA LOCAL INFILE". قد يكون هذا أسرع بكثير من
إدخال صف في وقت واحد مع عبارات "INSERT". يتم تنفيذه عن طريق إنشاء ملف
ملف مؤقت لكل جزء من الصفوف ، وكتابة الصفوف إلى هذا الملف بدلاً من
إدخالهم. عند الانتهاء من المقطع ، يتم تحميل الصفوف.

لحماية أمان بياناتك ، يفرض هذا الخيار استخدام عمليات الحذف المجمعة. هو - هي
سيكون من غير الآمن حذف كل صف كما تم العثور عليه ، قبل إدراج الصفوف في ملف
الوجهة أولا. يضمن فرض عمليات الحذف المجمعة أن الحذف ينتظر حتى ملف
الإدخال ناجح.

تعمل خيارات "--low-priority-insert" و "--replace" و "--ignore" مع هذا
الخيار ، ولكن "- إدراج تأخر" لا.

إذا ألقى "LOAD DATA LOCAL INFILE" خطأ في سطور "الأمر المستخدم ليس كذلك
المسموح به مع إصدار MySQL هذا "، راجع الوثائق الخاصة بخيار" L "DSN.

- شارست
شكل قصير: -A ؛ النوع: سلسلة

مجموعة الأحرف الافتراضية. إذا كانت القيمة utf8 ، فقم بتعيين binmode Perl في STDOUT إلى utf8 ،
يمرر الخيار mysql_enable_utf8 إلى DBD :: mysql ، ويقوم بتشغيل SET NAMES UTF8 بعد
الاتصال بـ MySQL. أي قيمة أخرى تعين binmode على STDOUT بدون طبقة utf8 ،
وتشغيل SET NAMES بعد الاتصال بـ MySQL.

لاحظ أنه يتم التعرف فقط على مجموعات الأحرف المعروفة بواسطة MySQL ؛ لذلك على سبيل المثال ، "UTF8" سوف
العمل ، ولكن "UTF-8" لن تفعل ذلك.

راجع أيضًا "- [no] check-charset".

- [لا] تحقق من محارف
الافتراضي: نعم

تأكد من أن مجموعات أحرف الاتصال والجدول هي نفسها. تعطيل هذا الاختيار قد
يتسبب في تحويل النص بشكل خاطئ من مجموعة أحرف إلى أخرى (عادةً من
utf8 إلى latin1) والتي قد تسبب فقدان البيانات أو mojibake. قد يكون تعطيل هذا الاختيار
مفيدة أو ضرورية عندما تكون تحويلات مجموعة الأحرف مقصودة.

- أعمدة الاختيار [لا]
الافتراضي: نعم

تأكد من وجود نفس الأعمدة في "--source" و "- dest".

ممكّن افتراضيًا ؛ يتسبب في قيام pt-archiver بالتحقق من أن جداول المصدر والوجهة
لها نفس الأعمدة. إنه لا يتحقق من ترتيب الأعمدة ونوع البيانات وما إلى ذلك. إنه فقط
يتحقق من وجود جميع الأعمدة في المصدر في الوجهة والعكس صحيح. لو
هناك أي اختلافات ، سيتم إنهاء pt-archiver مع وجود خطأ.

لتعطيل هذا الاختيار ، حدد --لا تحقق - أعمدة.

- فحص الفاصل
النوع: الوقت ؛ الافتراضي: 1 ثانية

إذا تم إعطاء "--check-slave-lag" ، فإن هذا يحدد المدة التي تتوقف فيها الأداة مؤقتًا
الوقت الذي يكتشف فيه أن العبد متخلف.
يتم إجراء هذا الفحص كل 100 صف.

- check-slave-lag
اكتب: سلسلة ؛ قابل للتكرار: نعم

أوقف الأرشفة مؤقتًا حتى يصبح تأخر الرقيق الخاص بـ DSN المحدد أقل من "--max-lag". هذا
يمكن تحديد الخيار عدة مرات للتحقق من أكثر من عبد واحد.

- الأعمدة
شكل قصير: -c ؛ النوع: مجموعة

قائمة أعمدة مفصولة بفواصل لأرشفتها.

حدد قائمة من الأعمدة مفصولة بفواصل لجلبها ، والكتابة في الملف ، والإدراج فيها
الجدول الوجهة. إذا تم تحديده ، يتجاهل pt-archiver الأعمدة الأخرى ما لم يتم ذلك
يحتاج إلى إضافتها إلى عبارة "SELECT" لترتفع الفهرس أو لحذف الصفوف.
يجلب ويستخدم هذه الأعمدة الإضافية داخليًا ، لكنه لا يكتبها في ملف
ملف أو إلى الجدول الوجهة. هو - هي هل تمريرها إلى المكونات الإضافية.

راجع أيضًا "- مفتاح أساسي فقط".

- يلتزم كل
قم بتنفيذ كل مجموعة من الصفوف التي تم جلبها وأرشفتها (تعطيل "--txn-size").

يلتزم بالمعاملات ويفسح "- ملف" بعد أرشفة كل مجموعة من الصفوف ،
قبل جلب مجموعة الصفوف التالية ، وقبل النوم إذا تم تحديد "--sleep".
تعطيل "--txn-size" ؛ استخدم "--limit" للتحكم في حجم المعاملة باستخدام
"- التزام كل".

هذا الخيار مفيد كاختصار لجعل "--limit" و "--txn-size" نفس القيمة ،
ولكن الأهم من ذلك أنه يتجنب فتح المعاملات أثناء البحث عن المزيد
صفوف. على سبيل المثال ، تخيل أنك تقوم بأرشفة صفوف قديمة من بداية ملف
جدول كبير ، مع 1000 "- Limit" و "--txn-size" 1000. بعد فترة من البحث
وأرشفة 1000 صف في المرة الواحدة ، يجد pt-archiver آخر 999 صفًا ومحفوظات
منهم ، ثم ينفذ SELECT التالي للعثور على المزيد من الصفوف. يقوم هذا بمسح بقية ملفات
الجدول ، ولكن لا يعثر على أي صفوف أخرى. لقد عقدت صفقة مفتوحة لفترة طويلة جدًا
الوقت ، فقط لتحديد أنه انتهى على أي حال. يمكنك استخدام "--commit-each" لتجنب
هذا.

- تكوين
النوع: صفيف

اقرأ قائمة ملفات التكوين المفصولة بفواصل ؛ إذا تم تحديد ذلك ، يجب أن يكون هذا هو الأول
الخيار في سطر الأوامر.

--قاعدة البيانات
شكل قصير: -D ؛ النوع: سلسلة

اتصل بقاعدة البيانات هذه.

- تأخر إدراج
إضافة المعدل المؤجل إلى عبارات INSERT.

يضيف المعدل المتأخر إلى عبارات INSERT أو REPLACE. يرى
<http://dev.mysql.com/doc/en/insert.html> للحصول على التفاصيل.

--أفضل
النوع: DSN

DSN يحدد الجدول الذي سيتم أرشفته إليه.

يحدد هذا العنصر الجدول الذي سيقوم pt-archiver بإدراج الصفوف المؤرشفة منه
"--مصدر". يستخدم نفس تنسيق الوسيطة key = val مثل "--source". معظم المفقودين
القيم الافتراضية إلى نفس القيم مثل "--source" ، لذلك لا يتعين عليك تكرار الخيارات
التي هي نفسها في "--source" و "- dest". استخدم خيار "- help" لمعرفة أي ملفات
يتم نسخ القيم من "--source".

تحذير: استخدام خيار ملف الخيارات الافتراضية (F) DSN الذي يعرّف مقبسًا لـ
يتسبب "--source" في اتصال pt-archiver بـ "--dest" باستخدام هذا المقبس ما لم يكن آخر
تم تحديد مأخذ توصيل لـ "--dest". هذا يعني أن pt-archiver قد يتصل بشكل غير صحيح
إلى "--source" عندما يتصل بـ "--dest". على سبيل المثال:

--source F = host1.cnf ، D = db ، t = tbl --dest h = host2

عندما يتصل pt-archiver بـ "--dest" ، host2 ، فإنه سيتم الاتصال عبر "--source" ،
host1 ، المقبس المحدد في host1.cnf.

--ركض جاف
اطبع الاستفسارات واخرج دون فعل أي شيء.

يتسبب في خروج pt-archiver بعد طباعة اسم الملف وعبارات SQL التي سيستخدمها.

--ملف
النوع: سلسلة

ملف للأرشفة ، مع صيغة التاريخ()-مثل التنسيق.

اسم الملف المراد كتابة الصفوف المؤرشفة إليه. مجموعة فرعية من MySQL's صيغة التاريخ() التنسيق
الرموز المسموح بها في اسم الملف على النحو التالي:

٪ d يوم من الشهر ، رقمي (01..31)
٪ H ساعة (00..23)
٪ i دقائق ، رقمية (00..59)
٪ m شهر ، رقمي (01..12)
٪ s ثانية (00..59)
٪ Y سنة ، رقمية ، أربعة أرقام

يمكنك أيضًا استخدام رموز التنسيق الإضافية التالية:

٪ D اسم قاعدة البيانات
٪ t اسم الجدول

على سبيل المثال:

- ملف '/var/log/archive/٪Y-٪m-٪d-٪D.٪t'

محتويات الملف هي بنفس التنسيق المستخدم بواسطة SELECT INTO OUTFILE ، كما هو موثق
في دليل MySQL: صفوف منتهية بأسطر جديدة ، أعمدة منتهية بعلامات تبويب ، NULL
يتم تمثيل الأحرف بواسطة \ N ، ويتم تخطي الأحرف الخاصة بواسطة \. هذا يتيح
تعيد تحميل ملف بالإعدادات الافتراضية لـ LOAD DATA INFILE.

إذا كنت تريد رأس عمود في أعلى الملف ، فراجع "--header". الملف تلقائي-
مسح بشكل افتراضي ؛ انظر "- المخزن".

--للتحديث
إضافة معدّل FOR UPDATE إلى عبارات SELECT.

لمزيد من التفاصيل ، انظرhttp://dev.mysql.com/doc/en/innodb-locking-reads.html>.

- رأس
طباعة رأس العمود أعلى "- ملف".

يكتب أسماء الأعمدة كسطر أول في الملف المعطى بواسطة "--file". إذا كان الملف
موجود ، لا يكتب الرؤوس ؛ هذا يبقي الملف قابلاً للتحميل مع LOAD DATA INFILE بتنسيق
إذا قمت بإلحاق المزيد من الإخراج بها.

--مساعدة
إظهار المساعدة والخروج.

- تحديد أولوية عالية
يضيف معدل HIGH_PRIORITY إلى عبارات SELECT.

نرىhttp://dev.mysql.com/doc/en/select.html> للحصول على التفاصيل.

--مضيف
شكل قصير: -h ؛ النوع: سلسلة

اتصل بالمضيف.

--يتجاهل
استخدم IGNORE لإدراج العبارات.

يتسبب في إدراج "- dest" ليكون INSERT IGNORE.

--حد
النوع: int ؛ الافتراضي: 1

عدد الصفوف المطلوب جلبها وأرشفتها لكل بيان.

يحد من عدد الصفوف التي يتم إرجاعها بواسطة عبارات SELECT التي تقوم باسترداد الصفوف إليها
أرشيف. الافتراضي هو صف واحد. قد يكون من الأفضل زيادة الحد ، ولكن يكون كذلك
حذر إذا كنت تقوم بالأرشفة بشكل ضئيل ، وتتخطى العديد من الصفوف ؛ هذا يمكن أن يحتمل
تسبب المزيد من الخلاف مع الاستفسارات الأخرى ، اعتمادًا على محرك التخزين ، المعاملة
مستوى العزل وخيارات مثل "- للتحديث".

--محلي
لا تكتب استعلامات OPTIMIZE أو ANALYZE إلى binlog.

إضافة معدل NO_WRITE_TO_BINLOG إلى استعلامات ANALYZE و OPTIMIZE. راجع "- تحليل"
للتفاصيل.

- أولوية منخفضة - حذف
إضافة معدل LOW_PRIORITY إلى عبارات DELETE.

نرىhttp://dev.mysql.com/doc/en/delete.html> للحصول على التفاصيل.

- إدخال أولوية منخفضة
إضافة معدل LOW_PRIORITY إلى عبارات INSERT أو REPLACE.

نرىhttp://dev.mysql.com/doc/en/insert.html> للحصول على التفاصيل.

--ماكس تدفق ctl
اكتب: تعويم

يشبه إلى حد ما - أقصى تأخر ولكن لمجموعات PXC. تحقق من متوسط ​​الوقت الذي تستغرقه المجموعة
الإيقاف المؤقت للتحكم في التدفق وإيقاف الأداة مؤقتًا إذا تجاوزت النسبة المحددة
في الخيار. الافتراضي هو عدم فحص التحكم في التدفق. هذا الخيار متاح لـ PXC
الإصدارات 5.6 أو أعلى.

--أقصى تأخر
النوع: الوقت ؛ الافتراضي: 1 ثانية

إيقاف الأرشفة مؤقتًا إذا تأخر العبد المعطى بواسطة "--check-slave-lag".

يتسبب هذا الخيار في قيام pt-archiver بالنظر إلى العبد في كل مرة يوشك على الجلب
صف آخر. إذا كان تأخر العبد أكبر من قيمة الخيار ، أو إذا كان العبد
لا يعمل (لذا التأخر هو NULL) ، فإن المجموع الاختباري pt-table-sleeps لـ "--check-period"
ثواني ثم ينظر إلى التأخر مرة أخرى. يتكرر حتى يُقبض على العبد ،
ثم يشرع في جلب الصف وأرشفته.

قد يلغي هذا الخيار الحاجة إلى "--sleep" أو "--sleep-coef".

- لا تصعد
لا تستخدم مؤشر التحسين التصاعدي.

يؤدي التحسين الافتراضي للمؤشر التصاعدي إلى تحسين "pt-archiver" بشكل متكرر
استعلامات "SELECT" حتى تبحث في الفهرس حيث انتهى الاستعلام السابق ، ثم تفحصها
على طوله ، بدلاً من المسح من بداية الجدول في كل مرة. هذا هو
مُمكّن افتراضيًا لأنه يُعد بشكل عام إستراتيجية جيدة لعمليات الوصول المتكررة.

قد تتسبب الفهارس الكبيرة متعددة الأعمدة في أن تكون جملة WHERE معقدة بدرجة كافية
قد يكون هذا في الواقع أقل كفاءة. فكر على سبيل المثال في أربعة أعمدة PRIMARY KEY
في (أ ، ب ، ج ، د). بند WHERE للبدء من حيث انتهى آخر استعلام هو كما يلي:

أين (أ>؟)
أو (أ =؟ و ب>؟)
OR (a =؟ AND b =؟ AND c>؟)
OR (a =؟ AND b =؟ AND c =؟ AND d> =؟)

يستخدم ملء العناصر النائبة بالقيم الذاكرة ووحدة المعالجة المركزية ، ويضيف حركة مرور الشبكة و
تحليل النفقات العامة ، وقد يجعل الاستعلام أكثر صعوبة على MySQL لتحسينه. أربعة أعمدة
المفتاح ليس مشكلة كبيرة ، ولكن مفتاح من عشرة أعمدة يسمح فيه كل عمود بـ "NULL"
يكون.

قد لا يكون تصاعدي الفهرس ضروريًا إذا كنت تعلم أنك تقوم بإزالة الصفوف
من بداية الجدول على شكل قطع ، لكن دون ترك أي ثقوب ، لذا ابدأ من
بداية الجدول هي في الواقع أكثر الأشياء فعالية.

راجع أيضًا "- تصعد أولاً". راجع "تمديد" لمناقشة كيفية تفاعل هذا
مع المكونات الإضافية.

- لا حذف
لا تحذف الصفوف المؤرشفة.

يتسبب في عدم قيام "pt-archiver" بحذف الصفوف بعد معالجتها. هذا لا يسمح
"- no-ascend" ، لأن تمكينهما كليهما سيؤدي إلى حلقة لا نهائية.

إذا كان هناك مكون إضافي على مصدر DSN ، فإن طريقة "before_delete" الخاصة به تسمى على أي حال ،
على الرغم من أن "pt-archiver" لن يقوم بتنفيذ الحذف. انظر "تمديد" لمزيد من المعلومات
الإضافات.

- الأمثل
النوع: سلسلة

قم بتشغيل OPTIMIZE TABLE بعد ذلك على "--source" و / أو "--dest".

يدير OPTIMIZE TABLE بعد الانتهاء. راجع "--analyze" للحصول على صيغة الخيار و
<http://dev.mysql.com/doc/en/optimize-table.html> للحصول على تفاصيل حول الأمثل الجدول.

--كلمه السر
شكل قصير: -p ؛ النوع: سلسلة

كلمة المرور لاستخدامها عند الاتصال. إذا كانت كلمة المرور تحتوي على فاصلات ، فيجب تخطيها
بشرطة مائلة للخلف: "exam \، ple"

--معرّف
النوع: سلسلة

قم بإنشاء ملف PID المحدد. لن تبدأ الأداة إذا كان ملف PID موجودًا بالفعل و
معرف المنتج الذي يحتوي عليه يختلف عن معرف المنتج الحالي. ومع ذلك ، إذا كان ملف PID
موجود ولم يعد PID الذي يحتويه قيد التشغيل ، وستقوم الأداة بالكتابة فوق PID
ملف مع PID الحالي. تتم إزالة ملف PID تلقائيًا عند خروج الأداة.

--توصيل في
النوع: سلسلة

اسم وحدة Perl المراد استخدامه كمكوِّن إضافي عام.

حدد اسم وحدة Perl لملحق للأغراض العامة. يتم استخدامه حاليا فقط
للإحصاءات (انظر "- الإحصائيات") ويجب أن يكون لها أسلوب "جديد ()" وأسلوب "إحصائيات ()".

تحصل الطريقة "الجديدة (src =" $ src، dst => $ dst، opts => $ o)> على المصدر و
DSNs الوجهة واتصالات قاعدة البيانات الخاصة بهم ، تمامًا مثل الاتصال المحدد
الإضافات تفعل. يحصل أيضًا على كائن OptionParser ($ o) للوصول إلى سطر الأوامر
الخيارات (مثال: "$ o-" get ("تطهير") ؛>).

تحصل طريقة "Statistics (٪ stats، $ time)" على تجزئة للإحصاءات التي تم جمعها بواسطة
وظيفة الأرشفة والوقت الذي بدأت فيه المهمة بأكملها.

--ميناء
شكل قصير: -P ؛ النوع: int

رقم المنفذ المراد استخدامه للاتصال.

- مفتاح أساسي فقط
أعمدة المفاتيح الأساسية فقط.

اختصار لتحديد "--columns" بأعمدة المفاتيح الأساسية. هذا
الكفاءة إذا كنت تريد فقط تطهير الصفوف ؛ يتجنب جلب الصف بأكمله ، عندما
فقط أعمدة المفاتيح الأساسية مطلوبة لعبارات "الحذف". انظر أيضا "- purge".

--تقدم
النوع: int

طباعة معلومات التقدم كل X الصفوف.

يطبع الوقت الحالي والوقت المنقضي والصفوف المؤرشفة كل X من الصفوف.

--تطهير
التطهير بدلاً من الأرشفة ؛ يسمح بحذف "- file" و "- dest".

يسمح بالأرشفة بدون وسيطة "- file" أو "- dest" ، وهي عملية تطهير فعالة
حيث تم حذف الصفوف للتو.

إذا كنت تريد فقط مسح الصفوف ، ففكر في تحديد أعمدة المفاتيح الأساسية للجدول
مع "- مفتاح أساسي فقط". سيؤدي هذا إلى منع جلب جميع الأعمدة من الخادم لـ
بدون سبب.

- حذف سريع
يضيف المعدل السريع إلى عبارات الحذف.

نرىhttp://dev.mysql.com/doc/en/delete.html> للحصول على التفاصيل. كما ورد في
الوثائق ، في بعض الحالات قد يكون من الأسرع استخدام DELETE QUICK متبوعًا بـ OPTIMIZE
طاولة. يمكنك استخدام "- Optimize" لهذا الغرض.

--هادئ
شكل قصير: -q

لا تطبع أي مخرجات ، مثل "--statistics".

يمنع الإخراج الطبيعي ، بما في ذلك ناتج "--statistics" ، لكن لا يتم منعه
الناتج من "- لماذا تركت".

--يحل محل
يؤدي إلى إدراج في "- dest" ليتم كتابتها على أنها REPLACE.

- ريتريت
النوع: int ؛ الافتراضي: 1

عدد المحاولات لكل مهلة أو حالة توقف تام.

يحدد عدد مرات إعادة المحاولة pt-archiver عندما يكون هناك قفل InnoDB
مهلة الانتظار أو الجمود. عند استنفاد المحاولات ، سيتم إنهاء pt-archiver بامتداد
خطأ.

ضع في اعتبارك بعناية ما تريد حدوثه عند الأرشفة بين مزيج من
محركات تخزين المعاملات وغير المعاملات. أدخل إلى "- dest" و
الحذف من "--source" على وصلات منفصلة ، لذا فهي لا تفعل ذلك في الواقع
الاشتراك في نفس المعاملة حتى لو كانوا على نفس الخادم. ومع ذلك ، pt-
ينفذ أرشيفي معاملات موزعة بسيطة في التعليمات البرمجية ، لذلك يلتزم ويتراجع
يجب أن يحدث على النحو المرغوب عبر الوصلتين.

في هذا الوقت لم أكتب أي رمز للتعامل مع الأخطاء في تخزين المعاملات
محركات غير InnoDB. اطلب هذه الميزة إذا كنت في حاجة إليها.

--مدة العرض
النوع: الوقت

حان الوقت للجري قبل الخروج.

لاحقة اختيارية s = ثوان ، م = دقائق ، ع = ساعات ، د = أيام ؛ في حالة عدم وجود لاحقة ، يتم استخدام s.

- [لا] زيادة تلقائية آمنة
الافتراضي: نعم

لا تقم بأرشفة الصف بحد أقصى AUTO_INCREMENT.

يضيف جملة WHERE إضافية لمنع pt-archiver من إزالة الصف الأحدث عندما
تصاعدي مفتاح AUTO_INCREMENT أحادي العمود. هذا يحمي من إعادة الاستخدام
قيم AUTO_INCREMENT إذا تمت إعادة تشغيل وحدة الخدمة ، وتم تمكينها افتراضيًا.

تحتوي جملة WHERE الإضافية على الحد الأقصى لقيمة عمود الزيادة التلقائية اعتبارًا من
بداية مهمة الأرشيف أو التطهير. إذا تم إدراج صفوف جديدة أثناء pt-archiver
قيد التشغيل ، فلن تراهم.

--الحارس
اكتب: سلسلة ؛ الافتراضي: / tmp / pt-archiver-sentinel

اخرج إذا كان هذا الملف موجودًا.

سيؤدي وجود الملف المحدد بواسطة "--sentinel" إلى إيقاف pt-archiver
الأرشفة والخروج. الافتراضي هو / tmp / pt-archiver-sentinel. قد تجد هذا
مفيد لإيقاف وظائف كرون برشاقة إذا لزم الأمر. انظر أيضا "- توقف".

- مجموعة فارز
النوع: صفيف

قم بتعيين متغيرات MySQL في هذه القائمة المفصولة بفواصل لأزواج "المتغير = القيمة".

بشكل افتراضي ، تحدد الأداة:

wait_timeout = 10000

تتجاوز المتغيرات المحددة في سطر الأوامر هذه الإعدادات الافتراضية. على سبيل المثال،
يؤدي تحديد "--set-vars wait_timeout = 500" إلى تجاوز القيمة الافتراضية 10000.

تقوم الأداة بطباعة تحذير وتستمر في حالة عدم إمكانية تعيين متغير.

- قفل المشاركة
يضيف المعدل LOCK IN SHARE MODE إلى عبارات SELECT.

نرىhttp://dev.mysql.com/doc/en/innodb-locking-reads.html>.

- عمليات التحقق من مفتاح التخطي الأجنبية
تعطيل عمليات التحقق من المفاتيح الخارجية باستخدام SET FOREIGN_KEY_CHECKS = 0.

--نايم
النوع: int

وقت النوم بين عمليات الجلب.

يحدد مدة السكون بين عبارات SELECT. الافتراضي هو عدم النوم عند
الجميع. لا يتم تنفيذ المعاملات ، ولا يتم مسح ملف "--file" من قبل
نائم. راجع "--txn-size" للتحكم في ذلك.

إذا تم تحديد "--commit-each" ، فسيحدث الالتزام والشطف قبل النوم.

- النوم
اكتب: تعويم

احسب "--sleep" كمضاعفات وقت SELECT الأخير.

إذا تم تحديد هذا الخيار ، سينام pt-archiver لوقت الاستعلام الأخير
SELECT مضروبًا في المعامل المحدد.

هذه طريقة أكثر تعقيدًا إلى حد ما لخنق SELECTs: النوم بشكل متنوع
مقدار الوقت بين كل SELECT ، اعتمادًا على المدة التي تستغرقها SELECTs.

--قابس كهرباء
أشكال قصيرة؛ النوع: سلسلة

ملف مأخذ التوصيل لاستخدامه.

--مصدر
النوع: DSN

DSN يحدد الجدول الذي سيتم أرشفته منه (مطلوب). هذه الحجة هي DSN. يرى
"خيارات DSN" لبناء الجملة. تتحكم معظم الخيارات في كيفية اتصال pt-archiver بـ MySQL ،
ولكن هناك بعض خيارات DSN الموسعة في بناء جملة هذه الأداة. الحرفان D و t و i
خيارات حدد جدولاً للأرشفة:

--source h = my_server ، D = my_database ، t = my_tbl

يحدد الخيار قاعدة البيانات المراد تعيينها كافتراضية للاتصال باستخدام USE. لو
إذا كان الخيار b صحيحًا ، فهو يعطل التسجيل الثنائي باستخدام SQL_LOG_BIN. خيار م
يحدد الإجراءات القابلة للتوصيل ، والتي يمكن أن توفرها وحدة Perl خارجية. الوحيد
الجزء المطلوب هو الجدول ؛ يمكن قراءة أجزاء أخرى من أماكن مختلفة في
البيئة (مثل ملفات الخيارات).

يستحق جزء "أنا" إشارة خاصة. هذا يخبر pt-archiver الذي يجب أن يكون الفهرس
مسح للأرشيف. يظهر هذا في تلميح FORCE INDEX أو USE INDEX في SELECT
العبارات المستخدمة لجلب الصفوف القابلة للأرشفة. إذا لم تحدد أي شيء ، pt-archiver
سيكتشف تلقائيًا فهرسًا جيدًا ، ويفضل "المفتاح الأساسي" إذا كان موجودًا. في
تجربة هذا عادة ما تعمل بشكل جيد ، لذلك في معظم الأوقات يمكنك حذف ملف
جزء "أنا".

يتم استخدام الفهرس لتحسين الوصول المتكرر إلى الجدول ؛ يتذكر pt- أرشيفي
الصف الأخير الذي يسترده من كل جملة SELECT ، ويستخدمه لبناء WHERE
جملة ، باستخدام الأعمدة في الفهرس المحدد ، والتي يجب أن تسمح لـ MySQL ببدء ملف
حدد التالي حيث انتهى الأخير ، بدلاً من المسح المحتمل من ملف
بداية الجدول مع كل SELECT متتالية. إذا كنت تستخدم ملفات خارجية
المكونات الإضافية ، يرجى الاطلاع على "EXTENDING" لمناقشة كيفية تفاعلها مع التصاعدي
الفهارس.

يسمح لك الخياران "أ" و "ب" بالتحكم في كيفية تدفق البيانات عبر الثنائي
سجل. إذا حددت الخيار "ب" ، فسيتم تعطيل التسجيل الثنائي على المحدد
اتصال. إذا حددت الخيار "أ" ، فسيقوم الاتصال "باستخدام" المحدد
قاعدة البيانات ، والتي يمكنك استخدامها لمنع العبيد من تنفيذ أحداث السجل الثنائي
مع خيارات "--replicate-ignore-db". يمكن استخدام هذين الخيارين على أنهما مختلفان
طرق لتحقيق نفس الهدف: أرشفة البيانات خارج النطاق الرئيسي ، لكن اتركها في ملف
عبد. على سبيل المثال ، يمكنك تشغيل مهمة تطهير على السيد ومنعها من ذلك
يحدث على العبد بالطريقة التي تختارها.

تحذير: استخدام خيار ملف الخيارات الافتراضية (F) DSN الذي يعرّف مقبسًا لـ
يتسبب "--source" في اتصال pt-archiver بـ "--dest" باستخدام هذا المقبس ما لم يكن آخر
تم تحديد مأخذ توصيل لـ "--dest". هذا يعني أن pt-archiver قد يتصل بشكل غير صحيح
إلى "--source" عندما يكون من المفترض الاتصال بـ "--dest". على سبيل المثال:

--source F = host1.cnf ، D = db ، t = tbl --dest h = host2

عندما يتصل pt-archiver بـ "--dest" ، host2 ، فإنه سيتم الاتصال عبر "--source" ،
host1 ، المقبس المحدد في host1.cnf.

--الإحصاء
جمع وطباعة إحصائيات التوقيت.

يتسبب في قيام pt-archiver بجمع إحصائيات التوقيت حول ما يفعله. هذه الإحصائيات
متوفرة للمكوِّن الإضافي المحدد بواسطة "--plugin"

ما لم تحدد "--quiet" ، يقوم "pt-archiver" بطباعة الإحصائيات عند الخروج منه. ال
تبدو الإحصائيات كالتالي:

Started at 2008-07-18T07:18:53, ended at 2008-07-18T07:18:53
المصدر: D = db، t = table
اختر 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 ، والتي تعد جزءًا من Core Perl on
إصدارات Perl الجديدة بشكل معقول.

--قف
توقف عن تشغيل المثيلات عن طريق إنشاء ملف الحارس.

يتسبب في قيام pt-archiver بإنشاء ملف الحارس المحدد بواسطة "--sentinel" والخروج.
يجب أن يكون لهذا تأثير إيقاف جميع حالات التشغيل التي تشاهد ملف
نفس ملف الحارس.

- حجم النص
النوع: int ؛ الافتراضي: 1

عدد الصفوف لكل معاملة.

يحدد الحجم ، بعدد الصفوف ، لكل معاملة. صفر يعطل المعاملات
كليا. بعد أن يعالج pt-archiver هذه الصفوف العديدة ، فإنه يرتكب كلا من
"--source" و "--dest" إذا تم تقديمهما ، ويقوم بمسح الملف المقدم بواسطة "--file".

هذه المعلمة أمر بالغ الأهمية للأداء. إذا كنت تقوم بالأرشفة من خادم مباشر ،
الذي على سبيل المثال يقوم بعمل OLTP ثقيل ، فأنت بحاجة إلى اختيار توازن جيد بين
حجم الصفقة وتنفيذ النفقات العامة. المعاملات الأكبر تخلق إمكانية
المزيد من التنازع على القفل والمآزق ، لكن المعاملات الأصغر تسبب تواترًا أكبر
ارتكاب النفقات العامة ، والتي يمكن أن تكون كبيرة. لإعطاء فكرة ، في مجموعة اختبار صغيرة أنا
عملت مع أثناء كتابة pt-archiver ، تسببت القيمة 500 في أن تستغرق الأرشفة حوالي 2
ثوانٍ لكل 1000 صف في مثيل MySQL هادئ بخلاف ذلك على جهاز سطح المكتب الخاص بي ،
أرشفة إلى قرص وإلى جدول آخر. تعطيل المعاملات بقيمة صفر ،
الذي يقوم بتشغيل الالتزام التلقائي ، انخفض الأداء إلى 38 ثانية لكل ألف صف.

إذا كنت لا تقوم بالأرشفة من أو إلى محرك تخزين معاملات ، فقد ترغب في ذلك
تعطيل المعاملات حتى لا يحاول pt-archiver الالتزام.

--المستعمل
شكل قصير: -u ؛ النوع: سلسلة

مستخدم لتسجيل الدخول إذا لم يكن المستخدم الحالي.

--الإصدار
عرض الإصدار والخروج.

- [لا] فحص الإصدار
الافتراضي: نعم

تحقق من أحدث إصدار من Percona Toolkit و MySQL والبرامج الأخرى.

هذه ميزة قياسية "التحقق من وجود تحديثات تلقائيًا" ، مع ميزتين إضافيتين
الميزات. أولاً ، تتحقق الأداة من إصدار البرامج الأخرى على النظام المحلي في
بالإضافة إلى نسخته الخاصة. على سبيل المثال ، يتحقق من إصدار كل خادم MySQL
يتصل بـ ، Perl ، ووحدة Perl DBD :: mysql. ثانيًا ، يقوم بالتحقق والتحذير
حول الإصدارات ذات المشاكل المعروفة. على سبيل المثال ، كان لدى MySQL 5.5.25 خطأ فادح و
تم إعادة إصداره كـ 5.5.25a.

تتم طباعة أية تحديثات أو مشاكل معروفة على STDOUT قبل الإخراج العادي للأداة.
يجب ألا تتداخل هذه الميزة مطلقًا مع التشغيل العادي للأداة.

للمزيد من المعلومات قم بزيارة .

--أين
النوع: سلسلة

عبارة WHERE لتحديد الصفوف المطلوب أرشفتها (مطلوب).

تحدد جملة WHERE لتقييد الصفوف المؤرشفة. لا تقم بتضمين الكلمة
أين. قد تحتاج إلى اقتباس الحجة لمنع قوقعتك من تفسيرها.
فمثلا:

- حيث "ts <current_date - الفاصل 90 يومًا"

للسلامة ، "- Where" مطلوب. إذا كنت لا تحتاج إلى شرط WHERE ، فاستخدم
"- حيث" 1 = 1.

- لماذا ترك
طباعة سبب الخروج ما لم يتم استنفاد الصفوف.

يتسبب في قيام pt-archiver بطباعة رسالة إذا تم الخروج منها لأي سبب بخلاف التشغيل
من الصفوف للأرشفة. يمكن أن يكون هذا مفيدًا إذا كان لديك وظيفة cron مع "--run-time"
المحدد ، على سبيل المثال ، وتريد التأكد من انتهاء pt-archiver من قبل
الوقت ينفد.

إذا تم إعطاء "- الإحصائيات" ، يتغير السلوك بشكل طفيف. سوف تطبع ملف
سبب الخروج حتى في حالة عدم وجود صفوف أخرى.

تتم طباعة هذا الإخراج حتى إذا تم إعطاء "--quiet". هذا حتى تتمكن من وضع "pt-archiver" فيها
وظيفة "كرون" والحصول على بريد إلكتروني إذا كان هناك خروج غير طبيعي.

DSN OPTIONS


تُستخدم خيارات DSN هذه لإنشاء DSN. يتم إعطاء كل خيار مثل "الخيار = القيمة".
تعتبر الخيارات حساسة لحالة الأحرف ، لذا فإن P و p ليستا نفس الخيار. لا يمكن أن يكون هناك
مسافة بيضاء قبل أو بعد "=" وإذا كانت القيمة تحتوي على مسافة بيضاء ، فيجب ذكرها.
تكون خيارات DSN مفصولة بفواصل. راجع صفحة دليل مجموعة أدوات percona للحصول على التفاصيل الكاملة.

· أ

نسخ: لا

قاعدة بيانات لاستخدامها عند تنفيذ الاستعلامات.

· أ

dsn: محارف ؛ نسخ: نعم

مجموعة الأحرف الافتراضية.

· ب

نسخ: لا

إذا كان هذا صحيحًا ، فقم بتعطيل binlog باستخدام SQL_LOG_BIN.

· د

dsn: قاعدة بيانات ؛ نسخ: نعم

قاعدة البيانات التي تحتوي على الجدول.

F

dsn: mysql_read_default_file ؛ نسخ: نعم

اقرأ الخيارات الافتراضية من الملف المحدد فقط

· ح

dsn: مضيف ؛ نسخ: نعم

اتصل بالمضيف.

· أنا

نسخ: نعم

فهرس للاستخدام.

· لام

نسخ: نعم

تمكين LOAD DATA LOCAL INFILE بشكل صريح.

لسبب ما ، يقوم بعض البائعين بترجمة libmysql بدون ملف --enable-local-infile
الخيار الذي يعطل البيان. هذا يمكن أن يؤدي إلى مواقف غريبة ، مثل
يسمح الخادم بالمعلومات المحلية ، ولكن العميل يطرح استثناءات إذا تم استخدامه.

ومع ذلك ، طالما أن الخادم يسمح ببيانات التحميل ، يمكن للعملاء إعادة تمكينها بسهولة ؛ ارى
و
<http://search.cpan.org/~capttofu/DBD-mysql/lib/DBD/mysql.pm>. هذا الخيار
هذا بالضبط.

على الرغم من أننا لم نعثر على حالة يؤدي فيها تحويل هذا الخيار إلى أخطاء أو اختلاف
السلوك ، لكي تكون في الجانب الآمن ، لا يتم تشغيل هذا الخيار افتراضيًا.

· م

نسخ: لا

اسم وحدة البرنامج المساعد.

· ص

dsn: كلمة المرور ؛ نسخ: نعم

كلمة المرور لاستخدامها عند الاتصال. إذا كانت كلمة المرور تحتوي على فاصلات ، فيجب تخطيها
بشرطة مائلة للخلف: "exam \، ple"

· ص

dsn: منفذ ؛ نسخ: نعم

رقم المنفذ المراد استخدامه للاتصال.

· س

dsn: mysql_socket ؛ نسخ: نعم

ملف مأخذ التوصيل لاستخدامه.

· ر

نسخ: نعم

جدول للأرشفة من / إلى.

· ش

dsn: مستخدم ؛ نسخ: نعم

مستخدم لتسجيل الدخول إذا لم يكن المستخدم الحالي.

تمتد


pt-archiver قابل للتوسيع عن طريق توصيل وحدات Perl خارجية للتعامل مع بعض المنطق و / أو
أجراءات. يمكنك تحديد وحدة لكل من "--source" و "- dest" ، باستخدام حرف "m"
جزء من المواصفات. على سبيل المثال:

--source D = test، t = test1، m = My :: Module1 --dest m = My :: Module2، t = test2

سيؤدي هذا إلى قيام pt-archiver بتحميل حزمتي My :: Module1 و My :: Module2 ، وإنشاء
مثيلات لهم ، ثم إجراء مكالمات لهم أثناء عملية الأرشفة.

يمكنك أيضًا تحديد مكون إضافي باستخدام "--plugin".

يجب أن توفر الوحدة هذه الواجهة:

جديد (dbh => $ dbh ، db => $ db_name ، tbl => $ tbl_name)
يتم تمرير مُنشئ الإضافة مرجعًا إلى معالج قاعدة البيانات ، قاعدة البيانات
الاسم واسم الجدول. يتم إنشاء المكون الإضافي بعد أن يفتح pt-archiver ملف
الاتصال ، وقبل أن يفحص الجدول الوارد في الحجج. هذا يعطي
البرنامج المساعد فرصة لإنشاء جداول مؤقتة وملؤها ، أو القيام بأعمال الإعداد الأخرى.

before_begin (cols => \ @ cols، allcols => \ @ allcols)
يتم استدعاء هذه الطريقة قبل أن يبدأ pt-archiver في التكرار خلال الصفوف و
أرشفتها ، ولكن بعد القيام بجميع أعمال الإعداد الأخرى (فحص هياكل الجدول ،
تصميم استعلامات SQL ، وما إلى ذلك). هذه هي المرة الوحيدة التي يخبر فيها pt-archiver المكون الإضافي
أسماء الأعمدة للصفوف التي ستمرر المكون الإضافي أثناء الأرشفة.

وسيطة "cols" هي أسماء الأعمدة التي طلب المستخدم أرشفتها ، إما بواسطة
افتراضيًا أو من خلال خيار "--columns". الوسيطة "allcols" هي قائمة الأعمدة
سيتم جلب أسماء لكل صف pt-archiver من الجدول المصدر. قد تجلب المزيد
من الأعمدة التي طلبها المستخدم ، لأنه يحتاج إلى بعض الأعمدة لاستخدامه الخاص. متى
تتلقى وظائف البرنامج المساعد اللاحقة صفًا ، وهو الصف الكامل الذي يحتوي على كل العناصر الإضافية
أعمدة ، إن وجدت ، مضافة إلى النهاية.

is_archivable (row => \row)
يتم استدعاء هذه الطريقة لكل صف لتحديد ما إذا كانت قابلة للحفظ. هذا
ينطبق فقط على "- المصدر". الوسيطة هي الصف نفسه ، كمصفوفة ref. إذا كان
طريقة إرجاع صحيحة ، سيتم أرشفة الصف ؛ وإلا سيتم تخطيه.

يؤدي تخطي صف إلى إضافة تعقيدات للفهارس غير الفريدة. عادةً ما يستخدم pt-archiver ملف
تم تصميم عبارة WHERE لاستهداف آخر صف تمت معالجته كمكان لبدء الفحص
لبيان SELECT التالي. إذا كنت قد تخطيت الصف بإرجاع القيمة false من
قابل للأرشفة ()، pt-archiver يمكن أن يدخل في حلقة لانهائية لأن الصف لا يزال
موجود. لذلك ، عند تحديد مكون إضافي للوسيطة "--source" ، pt-archiver
سوف يغير عبارة WHERE الخاصة به بشكل طفيف. بدلاً من البدء بـ "أكبر من أو يساوي
إلى "آخر صف تمت معالجته ، سيبدأ" بشكل صارم أكبر من. "هذا سيعمل
جيد في الفهارس الفريدة مثل المفاتيح الأساسية ، ولكنه قد يتخطى الصفوف (يترك ثقوبًا) في وضع التشغيل
الفهارس غير الفريدة أو عند تصاعدي العمود الأول فقط من الفهرس.

سيغير "pt-archiver" الجملة بنفس الطريقة إذا حددت "- no-delete" ،
لأن الحلقة اللانهائية ممكنة مرة أخرى.

إذا حددت الخيار "--bulk-delete" وإرجاع القيمة false من هذه الطريقة ،
قد لا يفعل "pt-archiver" ما تريده. لن يتم أرشفة الصف ، ولكن سيتم ذلك
المحذوفة ، نظرًا لأن عمليات الحذف المجمعة تعمل في نطاقات من الصفوف ولا تعرف الصفوف التي يكون ملف
المكون الإضافي المحدد للاحتفاظ به.

إذا حددت الخيار "--إدراج مجمّع" ، فستؤثر القيمة المعادة لهذه الطريقة
ما إذا كان الصف مكتوبًا في الملف المؤقت للإدراج بالجملة ، لذلك يتم إدراجه بالجملة
سيعمل كما هو متوقع. ومع ذلك ، تتطلب عمليات الإدراج بالجملة عمليات حذف مجمعة.

before_delete (row => \row)
يتم استدعاء هذه الطريقة لكل صف قبل حذفه مباشرة. هذا ينطبق فقط على
"--مصدر". هذا مكان جيد لك للتعامل مع التبعيات ، مثل الحذف
الأشياء ذات المفاتيح الأجنبية للصف الذي أنت على وشك حذفه. يمكنك أيضًا استخدام ملفات
هذا لأرشفة جميع الجداول التابعة بشكل متكرر.

يُطلق على طريقة البرنامج المساعد هذه حتى إذا تم إعطاء "- no-delete" ، ولكن ليس if
يتم إعطاء "- حذف مجمّع".

before_bulk_delete (first_row => \row ، last_row => \row)
يتم استدعاء هذه الطريقة قبل تنفيذ الحذف بالجملة. إنه مشابه لـ
طريقة "before_delete" ، باستثناء أن وسيطاتها هي الصف الأول والأخير من النطاق
للحذف. يطلق عليه حتى إذا تم إعطاء "- لا حذف".

before_insert (row => \row)
يتم استدعاء هذه الطريقة لكل صف قبل إدخاله مباشرة. هذا ينطبق فقط على
"- أغرب". يمكنك استخدام هذا لإدراج الصف في جداول متعددة ، ربما بملحق
ON DUPLICATE KEY UPDATE (تحديث مفتاح مكرر) لإنشاء جداول ملخصة في مستودع بيانات.

لا يتم استدعاء هذه الطريقة إذا تم إعطاء "- إدخال مجمّع".

before_bulk_insert (first_row => \row، last_row => \row، اسم الملف =>
اسم_إدخال_الملف الأكبر)
يتم استدعاء هذه الطريقة قبل تنفيذ الإدراج المجمع مباشرة. إنه مشابه لـ
طريقة "before_insert" ، باستثناء الوسيطات الخاصة بها هي الصف الأول والأخير من النطاق
للحذف.

custom_sth (row => \row، sql => $ sql)
يتم استدعاء هذه الطريقة قبل إدخال الصف مباشرةً ، ولكن بعد "before_insert ()". هو - هي
يسمح البرنامج المساعد بتحديد عبارة "INSERT" مختلفة إذا رغبت في ذلك. العودة
يجب أن تكون القيمة (إن وجدت) مؤشر عبارة DBI. المعلمة "sql" هي نص SQL
تستخدم لتحضير عبارة "INSERT" الافتراضية. لا يتم استدعاء هذه الطريقة إذا كنت
حدد "- إدراج مجمّع".

إذا لم يتم إرجاع أي قيمة ، فسيتم استخدام مؤشر العبارة "INSERT" الافتراضي.

تنطبق هذه الطريقة فقط على المكون الإضافي المحدد لـ "--dest" ، لذلك إذا لم يكن المكون الإضافي الخاص بك
فعل ما تتوقعه ، تحقق من أنك حددته للوجهة وليس
مصدر.

custom_sth_bulk (first_row => \row، last_row => \row، sql => $ sql، اسم الملف =>
اسم الملف_إدخال_دولار $)
إذا حددت "- إدخال مجمّع" ، فسيتم استدعاء هذه الطريقة قبل المجموعة مباشرةً
تُدرج ، ولكن بعد "before_bulk_insert ()"، والحجج مختلفة.

تشبه قيمة الإرجاع لهذه الطريقة وما إلى ذلك "custom_sth ()" طريقة.

بعد الانتهاء من()
يتم استدعاء هذه الطريقة بعد خروج pt-archiver من حلقة الأرشفة ، وإلزام كل قاعدة البيانات
يعالج ويغلق "--file" ويطبع الإحصائيات النهائية ، ولكن قبل تشغيل pt-archiver
تحليل أو تحسين (انظر "- تحليل" و "- الأمثل").

إذا حددت مكونًا إضافيًا لكل من "--source" و "--dest" ، فإن إنشاءات pt-archiver والمكالمات
before_begin ()والمكالمات بعد الانتهاء من() على المكونين الإضافيين بالترتيب "--source" ،
"- أغرب".

يفترض pt-archiver أنه يتحكم في المعاملات ، وأن المكون الإضافي لن يلتزم أو يتدحرج
عودة مقبض قاعدة البيانات. مقبض قاعدة البيانات الذي تم تمريره إلى مُنشئ المكون الإضافي هو
يستخدم نفس المقبض pt-archiver نفسه. تذكر أن "--source" و "- dest" منفصلتان
مقابض.

قد تبدو نموذج الوحدة كما يلي:

حزمة بلدي :: وحدة ؛

فرعية جديدة {
(صفي بالدولار ،٪ args) =_ ؛
مباركة العودة (\٪ args ، $ class) ؛
}

قبل_البدء {
($ self،٪ args) =_؛
# حفظ أسماء الأعمدة في وقت لاحق
$ self -> {cols} = $ args {cols}؛
}

قابل للأرشفة {
($ self،٪ args) =_؛
# قم ببعض المنطق المتقدم باستخدام $ args {row}
1 العودة؛
}

sub before_delete {} # عدم اتخاذ أي إجراء
sub before_insert {} # عدم اتخاذ أي إجراء
sub custom_sth {} # عدم اتخاذ أي إجراء
sub after_finish {} # عدم اتخاذ أي إجراء

1;

البيئة


متغير البيئة "PTDEBUG" يتيح إخراج التصحيح المطول إلى STDERR. لتمكين
تصحيح الأخطاء والتقاط جميع المخرجات في ملف ، قم بتشغيل الأداة مثل:

PTDEBUG = 1 نقطة أرشيف ...> ملف 2> & 1

كن حذرًا: إخراج التصحيح ضخم ويمكن أن يولد عدة ميغا بايت من المخرجات.

نظام المتطلبات


أنت بحاجة إلى Perl و DBI و DBD :: mysql وبعض الحزم الأساسية التي يجب تثبيتها في أي
إصدار جديد معقول من لغة Perl.

استخدم pt-archiverp عبر الإنترنت باستخدام خدمات onworks.net


خوادم ومحطات عمل مجانية

قم بتنزيل تطبيقات Windows و Linux

  • 1
    DivKit
    DivKit
    DivKit هو برنامج مفتوح المصدر يحركه الخادم
    إطار واجهة المستخدم (SDUI). انها تسمح لك
    طرح التحديثات من مصدر الخادم ل
    إصدارات مختلفة من التطبيق. أيضا، يمكن أن يكون
    تستخدم ل...
    تحميل DivKit
  • 2
    محول فرعي
    محول فرعي
    الأداة المساعدة للتحويل بين مختلف
    تنسيق الاشتراك. مستخدمي Shadowrocket
    يجب استخدام ss أو ssr أو v2ray كهدف.
    يمكنك إضافة & ملاحظة = إلى
    برقية مثل HT ...
    تحميل المحول الفرعي
  • 3
    اختال
    اختال
    SWASH هو رقم رقمي للأغراض العامة
    أداة لمحاكاة غير المستقر ،
    غير هيدروستاتيكي ، سطح حر ،
    ظاهرة التدفق الدوراني والنقل
    في المياه الساحلية مثل ...
    تحميل سواش
  • 4
    VBA-M (مؤرشف - الآن على جيثب)
    VBA-M (مؤرشف - الآن على جيثب)
    انتقل المشروع إلى
    https://github.com/visualboyadvance-m/visualboyadvance-m
    الميزات: غش إبداعات حفظ الدول
    النظام يدعم gba ، gbc ، gb ، sgb ،
    sgb2Tu ...
    تنزيل VBA-M (مؤرشف - الآن على Github)
  • 5
    Stacer
    Stacer
    مُحسِّن نظام Linux ومراقبته
    مستودع جيثب:
    https://github.com/oguzhaninan/Stacer.
    الجمهور: المستخدمون النهائيون / سطح المكتب. مستخدم
    الواجهة: كيو تي. برمجة La ...
    تنزيل Stacer
  • 6
    ثعلب البرتقال
    ثعلب البرتقال
    شوكة TeamWinRecoveryProject (TWRP)
    مع العديد من الوظائف الإضافية ، إعادة التصميم
    والمزيد من الميزات: يدعم التريبل و
    نواة أوريو حديثة ،
    مبني...
    تنزيل OrangeFox
  • أكثر "

أوامر لينكس

  • 1
    aa-clickhook
    aa-clickhook
    aa-clickhook - انقر فوق خطاف النظام لـ
    وصف أبرمور: عند نقرة
    تم تثبيت الحزمة ، انقر فوق تشغيل
    خطاطيف النظام والمستخدم. النقرة
    نظام AppArmor ح ...
    قم بتشغيل aa-clickhook
  • 2
    أأ- clickquery
    أأ- clickquery
    aa-clickquery - برنامج للاستعلام
    click-apparmor الوصف: هذا البرنامج
    يستخدم للاستعلام عن انقر فوق Apparmor ل
    معلومة. الاستخدام: استعلام نقرة
    - انقر فوق ...
    قم بتشغيل aa-clickquery
  • 3
    com.cqrlog
    com.cqrlog
    CQRLOG - برنامج التسجيل المتقدم لـ
    مشغلي hamradio الوصف: CQRLOG
    هو مسجل راديو لحم الخنزير المتقدم يعتمد على
    قاعدة بيانات ماي اس كيو ال. يوفر التحكم في الراديو
    با ...
    تشغيل سجل
  • 4
    com.cramfswap
    com.cramfswap
    cramfsswap - مبادلة endianess من كرام
    نظام الملفات (cramfs) ...
    قم بتشغيل cramfsswap
  • 5
    حدث
    حدث
    FvwmEvent - وحدة الحدث fvwm ...
    قم بتشغيل FvwmEvent
  • 6
    نموذج
    نموذج
    FvwmForm - وحدة نموذج الإدخال لـ Fvwm ...
    قم بتشغيل FvwmForm
  • أكثر "

Ad