• PostgreSQL Replication之第四章 设置异步复制(6)


    4.6 有效的清理和恢复结束

    最近几年, recovery.conf 已经变得越来越强大了。早在初期(在 PostgreSQL 9.0之前), 仅有 restore_command 和一些 recovery_target_time 相关设置。更多的现代 PostgreSQL 版本提供了更多的东西,让您有机会以一个很好和专业的方式控制您的重放进程。

    在本节中,您将学习有什么样的设置,您将怎样轻松地使用这些功能。

    4.6.1 取得重启点的控制权

    到现在为止,我们已经无限地归档了XLOG。就像在现实生活中,无限是一个引起麻烦的概念。正如John Maynard Keynes已经在他著名的书中所陈述,The General Theory of Employment, Interest, and Money:

    "In the long run, we are all dead."

    适用于Keynes的激励的东西对于XLOG归档同样是如此;您根本无法继续做下去。在有些时候,XLOG必须被扔掉。为了使清理更容易,您可以放一个archive_cleanup_command到recovery.conf中。就像大多数其他命令,(例如,restore_command),则是以通用的shell脚本。您会把该脚本放在这里,该脚本将在每个重启点被执行。那么,什么是重起点?每次PostgreSQL从基于文件重放转换到基于流的重放,您就正在面对一个重起点。事实上,再次启动流复制被认为是一个启动点。

    重起点一到达,您就可以让PostgreSQL执行一些清理程序(或任何其他东西)。清理掉旧的XLOG或触发一些通知是很容易的。

    如下脚本显示了您如何清理掉任何一天前的XLOG:

    #!/bin/sh

    find /archive -mtime +1 -exec rm -f {} ;

    请记住,您的脚本可以是任何复杂的类型。您必须决定一个适当的策略来处理XLOG。每个企业的情况是不同的,您可以灵活地控制您的归档和复制行为。

    4.6.2 调整您的恢复结束

    recovery_end_command提供和archive_cleanup_command类似的目的。当您的恢复(或XLOG流)已经完成,它会触发一些脚本执行。

    同样,您可以用它来清理掉旧XLOG,发出通知,或执行任何其他想执行的操作。

  • 相关阅读:
    windows修改环境变量的工具—Rapid Environment Editor
    JS 实现文件夹目录选择
    nginx 反向代理
    centOS7安装nginx及nginx配置
    yum安装时出现:Cannot retrieve metalink for repository: epel. Please verify its path and try again
    关于 PGP 加密与签名相关整理
    使用flink和kafka实现端到端的Exactly Once语义
    基于php的Http请求类封装
    Golang获取客户端IP
    Golang生成唯一的GUID
  • 原文地址:https://www.cnblogs.com/songyuejie/p/4743533.html
Copyright © 2020-2023  润新知