Иннобэкапекс:Как извлечь отдельные файлы из резервных копий, сжатых 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