首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Innobackupex:如何从xbstream压缩备份中提取单个文件

Innobackupex:如何从xbstream压缩备份中提取单个文件
EN

Database Administration用户
提问于 2015-07-31 11:14:48
回答 1查看 1.4K关注 0票数 1

我们正在为我们的产品后端编写一个完整的和增量式的备份设置,周日触发了剩余的全部备份和增量备份。

在此过程中,我们应该能够从完整备份文件中读取文件的LSN编号。

我们已经设置了脚本来将备份压缩为xbstream格式,这样它就会产生一个文件来压缩所有数据。

现在的问题是如何从完整的xbstream文件中提取或读取LSN或一个信息文件。

尽管我们可以使用日志文件来解决这个问题,但是我们需要一个更可靠的解决方案。

谢谢。

EN

回答 1

Database Administration用户

回答已采纳

发布于 2015-07-31 16:40:40

XtraBackup不仅在必须提取的xtrabackup_info中记录最近的LSN,而且还记录到STDERR:

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
if backup_type == 'incremental':
    last_lsn = job["params"]["lsn"]
    xtrabackup_cmd.append("--incremental")
    xtrabackup_cmd.append(".")
    xtrabackup_cmd.append("--incremental-lsn=%s" % last_lsn)
票数 2
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

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

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档