انتقل إلى محتوى الدرس

Online InnoDB Dump Single Transaction النسخ المتسق بـ mysqldump

تعلّم النسخ الاحتياطي واستعادة قواعد البيانات عبر أداة mysqldump والخيار --single-transaction والاستعادة الزمنية (PITR) في MySQL 8.
1 صفوف تعليمية
MySQL
7 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

عند أخذ نسخة احتياطية من قاعدة بيانات إنتاجية تعمل بمحرك InnoDB عبر أداة mysqldump، فإن الخيار الأهم على الإطلاق هو --single-transaction:

  • كيف يعمل الخيار --single-transaction داخلياً؟ يقوم برنامج mysqldump بضبط مستوى عزل الجلسة على REPEATABLE READ ثم يبدأ معاملة موحدة عبر الأمر START TRANSACTION WITH CONSISTENT SNAPSHOT قبل قراءة أي جدول.
  • نسخ احتياطي متسق دون إيقاف الموقع (Online Backup): بفضل تقنية تعدد النسخ (MVCC) في محرك InnoDB، تقرأ أداة mysqldump لقطة زمنية متسقة تماماً لجميع الجداول في نفس اللحظة دون قفل الجداول أو تعطيل عمليات الشراء والتحديث الجارية في الموقع.
  • --quick: يسحب الصفوف من الخادم صفاً تلو الآخر مباشرة إلى ملف النسخة الاحتياطية بدلاً من تحميل الجدول الضخم بالكامل في الذاكرة العشوائية (RAM).
  • --databases shop_db: يكتب أوامر CREATE DATABASE IF NOT EXISTS وUSE shop_db تلقائياً في مطلع ملف النسخة.
-- الأمر المنفذ في طرفية النظام (OS Terminal):
mysqldump -u root -p --single-transaction --quick --databases shop_db > shop_db_full.sql
SQL
-- What mysqldump --single-transaction executes on the server:
SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;
START TRANSACTION WITH CONSISTENT SNAPSHOT;

-- Shell command to create an online compressed InnoDB backup:
-- mysqldump -u root -p --single-transaction --quick --databases shop_db > shop_db_full.sql

محاكي النسخ الاحتياطي والاستعادة (mysqldump & PITR) في MySQL 8