Pergunta

Estamos criando um script de uma combinação de configuração de backup completo e incremental para nosso back-end de produto, com o domingo acionando backup completo e backup incremental em todos os dias restantes.

Neste processo, deveremos ser capazes de ler o número LSN de um arquivo do arquivo de backup completo.

Configuramos o script para compactar o backup no formato xbstream para que resultasse em um único arquivo compactando todos os dados.

Agora a questão é como extrair ou ler o LSN ou um único arquivo de informações do arquivo xbstream completo.

Embora possamos usar o arquivo de log para isso, queríamos uma solução mais confiável.

Obrigado.

Foi útil?

Solução

O XtraBackup registra o LSN mais recente não apenas em xtrabackup_info que você terá que extrair, mas também para 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)

A LSN seria 1948062848.Encontrar string xtrabackup: The latest check point (for incremental): na saída.Ver http://bazaar.launchpad.net/~twindb-dev/twindb-agent/trunk/view/head:/twindb.py#L1888 por exemplo:

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

Então, passe 1948062848 com --incremental-lsn= opção quando você faz uma cópia incremental.Exemplo: 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)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a dba.stackexchange
scroll top