إينوباكوبكس:كيفية استخراج الملفات الفردية من النسخ الاحتياطية المضغوطة xbstream

dba.stackexchange https://dba.stackexchange.com/questions/108654

  •  28-09-2020
  •  | 
  •  

سؤال

نحن نقوم ببرمجة مزيج من إعداد النسخ الاحتياطي الكامل والمتزايد للواجهة الخلفية للمنتج الخاص بنا مع تشغيل النسخ الاحتياطي الكامل والنسخ الاحتياطي المتزايد يوم الأحد في جميع الأيام المتبقية.

في هذه العملية، يجب أن نكون قادرين على قراءة رقم LSN للملف من ملف النسخة الاحتياطية الكاملة.

لقد قمنا بإعداد البرنامج النصي لضغط النسخة الاحتياطية إلى تنسيق xbstream بحيث يؤدي ذلك إلى ضغط ملف واحد لجميع البيانات.

والسؤال المطروح الآن هو كيفية استخراج أو قراءة LSN أو ملف معلومات واحد من ملف xbstream الكامل.

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

شكرًا لك.

هل كانت مفيدة؟

المحلول

يقوم XtraBackup بتسجيل أحدث LSN ليس فقط في xtrabackup_info والذي سيتعين عليك استخراجه، ولكن إلى STDERR أيضًا:

150731 16:33:28  innobackupex: Executing FLUSH NO_WRITE_TO_BINLOG ENGINE LOGS...
150731 16:33:28  innobackupex: Waiting for log copying to finish

xtrabackup: The latest check point (for incremental): '1948062848'
xtrabackup: Stopping log copying thread.
.>> log scanned up to (1948062848)

سيكون LSN 1948062848.ابحث عن السلسلة xtrabackup: The latest check point (for incremental): في الإخراج.يرى http://bazaar.launchpad.net/~twindb-dev/twindb-agent/trunk/view/head:/twindb.py#L1888 على سبيل المثال:

def grep_lsn(output):
    """
    Finds LSN in XtraBackup output
    :param output: string with Xtrabackup output
    :return: LSN
    """
    lsn = None
    for line in output.split("\n"):
        if line.startswith("xtrabackup: The latest check point (for incremental):"):
            lsn = line.split("'")[1]
    return lsn

ثم مرر 1948062848 مع --incremental-lsn= الخيار عند أخذ نسخة إضافية.مثال: http://bazaar.launchpad.net/~twindb-dev/twindb-agent/trunk/view/head:/twindb.py#L1429

if backup_type == 'incremental':
    last_lsn = job["params"]["lsn"]
    xtrabackup_cmd.append("--incremental")
    xtrabackup_cmd.append(".")
    xtrabackup_cmd.append("--incremental-lsn=%s" % last_lsn)
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى dba.stackexchange
scroll top