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 总结
在本章,您学会了流复制。我们看到了如何创建一个流连接,配置您需要的流复制您可以做什么。我们还简要地讨论了幕后事情是如果工作的。
记住复制的确可以引起冲突也是非常重要的,这需要适当的修复。
在接下来的章节,是时候把注意力集中在同步复制了,这是合乎逻辑的下一步。您将学习没有潜在数据丢失的复制数据。
PostgreSQL Replication之第四章 设置异步复制(8)的更多相关文章
- PostgreSQL Replication之第四章 设置异步复制(1)
执行完您的第一个即时恢复(PITR,Point-In-Time-Recovery),我们准备在一个真正的复制设置上工作.在本章,您将学会如何设置异步复制和流.我们的目标是确保您可以实现更高的高可用和更 ...
- PostgreSQL Replication之第四章 设置异步复制(2)
4.2 配置级联复制 正如您在本章已经看到的,设置流复制真的很容易.只需要设置几个参数,做一个基础备份,并享受您的复制设置. 在许多情况下,这种情况更有一点点微妙.在这个例子中我们假设:我们要使用一个 ...
- PostgreSQL Replication之第四章 设置异步复制(4)
4.4 基于流和基于文件的恢复 生活并不总只是黑色或白色:有时也会有一些灰色色调.对于某些情况下,流复制可能恰到好处.在另一些情况下,基于文件复制和PITR是您所需要的.但是也有许多情况下,您既需要流 ...
- PostgreSQL Replication之第四章 设置异步复制(7)
4.7 冲突管理 在PostgreSQL中,流复制数据仅在一个方向流动.XLOG由master提供给几个slave,这些slave消耗事务日志并为您提供一个较好的数据备份.您可能想知道这怎么会导致冲突 ...
- PostgreSQL Replication之第四章 设置异步复制(6)
4.6 有效的清理和恢复结束 最近几年, recovery.conf 已经变得越来越强大了.早在初期(在 PostgreSQL 9.0之前), 仅有 restore_command 和一些 recov ...
- PostgreSQL Replication之第四章 设置异步复制(5)
4.5 使流复制更健壮 当连接到master时,slave要做的第一件事情是赶上master.但是,这会一直工作吗?我们已经看到,我们可以使用由基于流和基于文件组成的混合设置.这给了我们一些额外的安全 ...
- PostgreSQL Replication之第四章 设置异步复制(3)
4.3 slave到master的切换 如果您想扩展读或您想做一个数据备份,一个 slave是件美好的事情.但是,slave可能不会一直是slave.在有些时候,您可能需要把slave转换为maste ...
- PostgreSQL Replication之第五章 设置同步复制(1)
到目前为止,我们已经处理了基于文件的复制(或日志传送)和简单的基于流复制的设置.在两种情况中,在master上事务被提交之后,数据被提交,由slave接收.在master提交和slave实际上完全地接 ...
- PostgreSQL Replication之第五章 设置同步复制(2)
5.2 理解实际影响和性能 在本章中,我们已经讨论了实际影响以及性能影响.但是,有什么好的理论性的例子吗?让我们做一个简单的基准测试,看看复制是怎么做的.我们做这样的测试来为您显示各种耐久性的级别不只 ...
随机推荐
- iOS UI10_带分区的省市区
// // MainViewController.m // UI10_带分区的省市区 // // Created by dllo on 15/8/11. // Copyright (c) 2015年 ...
- JavaScript学习记录二
title: JavaScript学习记录二 toc: true date: 2018-09-13 10:14:53 --<JavaScript高级程序设计(第2版)>学习笔记 要多查阅M ...
- OC冒泡排序算法
面试的时候很多公司会要求写一个冒泡排序算法,于是用OC写了一个,代码如下所示 需要注意的事项:oc数组只能存放oc对象,因此遍历数组输出的时候,记得通过NSString对象转换成intValue #i ...
- Android 国际区号注册手机号编码 以及常用城市列表
附上 国际区号编码:我是定义到arrays.xml里面了 <?xml version="1.0" encoding="utf-8"?> <re ...
- SpringCloud学习笔记(18)----Spring Cloud Netflix之服务网关Zuul原理
1. Zuul的工作机制 Zuul提供了一个框架,可以对过滤器进行动态的加载,编译,运行.过滤器之间没有直接的相互通信,他们是通过一个RequestContext的静态类来进行数据传递的.Requet ...
- Python2x,3x源码的区别,编译型解释型,变量,注释,if,用户交互input,基本数据类型3种
cpu 内存 硬盘 操作系统 cpu: 计算机的运算和计算中心,相当于人类的大脑. 内存:暂时存储数据,临时加载数据应用程序,4G,8G,16G,32G #速度快,造价高,断电即消失 硬盘 ...
- ES6学习笔记(二十)Module 的加载实现
上一章介绍了模块的语法,本章介绍如何在浏览器和 Node 之中加载 ES6 模块,以及实际开发中经常遇到的一些问题(比如循环加载). 1.浏览器加载 传统方法 HTML 网页中,浏览器通过<sc ...
- 封装cookie的获取,设置与查找
//获取cookiefunction getCookie(key,value){ var c = document.cookie; var str = key + '=' + value; var r ...
- HDU-4296 Buildings 贪心 从相邻元素的相对位置开始考虑
题目链接:https://cn.vjudge.net/problem/HDU-4296 题意 有很多板子,每一个板子有重量(w)和承重(s)能力 现规定一块板子的PDV值为其上所有板子的重量和减去这个 ...
- [codevs1048]石子归并&[codevs2102][洛谷P1880]石子归并加强版
codevs1048: 题目大意:有n堆石子排成一列,每次可合并相邻两堆,代价为两堆的重量之和,求把他们合并成一堆的最小代价. 解题思路:经典区间dp.设$f[i][j]$表示合并i~j的石子需要的最 ...