zoukankan      html  css  js  c++  java
  • PostgreSQL Replication之第四章 设置异步复制(8)

    4.8 处理时间线

    时间线是一个您必须要知道的一个重要的概念,尤其是当您规划一个大型的设置的时候。

    那么,什么是时间线呢?事实上,它是XLOG的一个分支。正常情况下,刚设置的一个数据库实例使用的时间线号为1.我们假设,我们开始复制我们的master数据库到一个slave系统。slave也会在1号时间线处操作。有些时候,您的master可能会出现故障,您的 slave将被提升为一个新的master。这是当一个时间线切换发生时的时间。现在新的master将创建它自己的事务日志。从逻辑上讲,我们想确保它的XLOG不会和其它过去一段时间的XLOG混淆。

    我们如何知道时间线已经更新了呢?让我们一起来看看刚刚转换为master的系统的XLOG目录:

    00000002.history    

    000000020000000000000006

    000000020000000000000007

    000000020000000000000008

    XLOG文件的第一部分是有趣的事情。现在,您可以观察到,总有一个1在我们的文件名中。这不再是这样了。通过检查XLOG第一部分的文件名,您可以看到数字已经随着时间变化了(把一个slave 转换为master之后,我们已经能够到达了2号时间线)。

    值得一提的是您不能简单地传送时间线为5的 XLOG到一个时间已经到达9的数据库实例。这是不可能的,它们不会走在一起。

    在PostgreSQL9.3中,我们能够更加灵活地处理这些时间线。这意味着时间线改变将会放到事务日志中,slave可以很容易地遵循时间线切换。

    [当级联复制和多个slave时,时间线尤其重要。毕竟,如果您的master出现故障,您必须把您的slave连接到一些服务器。]

    4.9 总结

    在本章,您学会了流复制。我们看到了如何创建一个流连接,配置您需要的流复制您可以做什么。我们还简要地讨论了幕后事情是如果工作的。

    记住复制的确可以引起冲突也是非常重要的,这需要适当的修复。

    在接下来的章节,是时候把注意力集中在同步复制了,这是合乎逻辑的下一步。您将学习没有潜在数据丢失的复制数据。

  • 相关阅读:
    ECMAScript 引用类型Object 对象
    jQuery Form Plugin
    在 PHP5 中使用 DOM 控制 XML
    JavaScript encodeURI()和encodeURIComponent() 函数
    程序员进阶的建议:多看、多写、多交流
    jQuery 取 css zindex 值在各种浏览器中的返回值
    XPath 语法教程(Tutorial_2)
    使用 strpos 需要注意 === 运算符
    关于代码开发规范和原则
    PHP 编写大型网站问题集
  • 原文地址:https://www.cnblogs.com/songyuejie/p/4743566.html
Copyright © 2011-2022 走看看