الخطوط العريضة
يتم تخزين التراجع سجل سجل المتداول في جدول الملف ibdata1 مساحة مشتركة، جنبا إلى جنب مع العمل من دون توقف للعمل، ملفات ibdata1 سوف تصبح كبيرة بشكل متزايد، معقد وصعب للغاية تريد استرداد (تقليص مساحة)، يجب عليك أولا mysqldump -A كامل مكتبة التصدير، ثم قم بحذف دليل البيانات، ومن ثم إعادة تهيئة-التثبيت، وأخيرا مكتبة كاملة من ملف الاستيراد SQL باستخدام هذه الطريقة لإعادة تدوير ملف ibdata1. لذلك ليس هناك أي طريقة أفضل للقيام بذلك؟
UNDO على الانترنت انتعاش مساحة الجدول
في MySQL5.6، سجل التراجع يمكن فصل السجلات التراجع، في مساحة جدول منفصل، ولكن العيب أنهم لا يمكن استردادها (انكماش) الفضاء. حتى MySQL5.7، فقط الدعم عبر الإنترنت يتقلص.
- تم تعيين معلمة innodb_undo_log_truncate إلى 1، التي تمكن من التعافي على الانترنت (تقليص) ملفات السجل التراجع السجل، ويدعم دينامي.
- يجب أن يكون innodb_undo_tablespaces المعلمة أكبر من أو تساوي 2، واسترداد أي (انكماش) التراجع تسجيل ملف السجل، لضمان أن السجل آخرين التراجع هو متاح.
- innodb_undo_logs: التراجع عن مبلغ العودة إلى الحالة السابقة على الأقل لا تقل عن 35، 128 الافتراضية.
- innodb_max_undo_log_size: عندما تتجاوز هذه العتبة (الافتراضي هو 1G)، وموجبات الانتعاش اقتطاع (تقليص) العمل، واقتطاع بعد الفضاء إلى 10M.
- innodb_purge_rseg_truncate_frequency: التحكم في انتعاش تردد (انكماش) التراجع الدخول. سوف مساحة السجل التراجع لا يتقلص قبل التراجع وليس أفرج عنه، وإطلاق سراح التراجع ترغب في زيادة نطاق التردد، لديك للحد من innodb_purge_rseg_truncate_frequency القيمة المحددة.
عملية التحقق
1،000،000 sbtest على الطاولة، طاولة مليئة تحديث 4 مرات، مثل:
ويمكن الاطلاع على مساحة السجل التراجع في النمو السريع، مثل:
ثم القيام اختبار التحمل مع sysbench، والسماح للقاعدة وتشغيلها، ومراقبة سجل خطأ، فإنه سيتم تلقائيا التراجع سجل الفضاء لاستعادة (انكماش)، مثل:
ثم من خلال مراقبة ملف فعلي تم استردادها، حجم 10M الافتراضية.
ملخص
بعد هذه الوظيفة خارج، والحد من استخدام مساحة القرص الكلي، ويسرع xtrabackup النسخ الاحتياطي الساخن.
سوف Devops وبعد تبادل جوانب DBA المزيد من المحتوى، يمكن للأصدقاء المهتمين ننظر -