Posts in 2018
  • 第十章 基础备份与时间点恢复

    2018年01月02日 in PG 内核

    在线数据库备份大致可分为两类:逻辑备份和物理备份。它们有着各自的优点和缺点。尽管各有优劣,但逻辑备份有一个缺点:执行需要花费太多时间。特别是对于大型数据库而言,需要花费很长时间进行备份,而从备份数据中恢复数据库可能需要更长的时间。相反的是,物理备份可以在相对较短的时间内备份和恢复大型数据库,因此在实际系统中,它是一个非常重要而实用的功能。 在PostgreSQL中,自8.0版本开始提供在线的全量物理备份,整个数据库集簇(即物理备份数据)的运行时快照称为基础备份(base backup)。 …

    Read more

  • 第十一章 流复制

    2018年01月01日 in PG 内核

    PostgreSQL在9.1版本中实现了流复制。它属于所谓的一主多从类型的复制,而这两个术语 —— 主(master)和从(slave),在PostgreSQL中通常分别被称为主(primary)和备(standby)。 译注:存储数据库副本的每个节点称为副本(replica)。每一次对数据库的写入操作都需要传播到所有副本上,否则副本就会包含不一样的数据。最常见的解决方案被称为基于领导者的复制(leader-based replication),也称主动/被动(active/passive) …

    Read more

Posts in 0001
  • WAL与检查点概述

    0001年01月01日 in PG 内核

    数据库需要保证两个基本的特性:可靠性与可用性。通俗来讲: 可靠性就是:出了故障,既不会丢数据,也不会弄脏数据。 可用性就是:保证足够的读写性能,出了故障后,能够快速恢复服务。 朴素的数据库实现有两个选项:在内存中修改数据页,或者将事物变更直接写入磁盘。但这产生了一个两难困境: 内存支持随机读写,因此在性能上表现强悍,然而作为易失性存储,一旦故障就会丢数据。 硬盘恰恰相反,随机读写表现糟糕,但在故障时数据要可靠的多。 内存可用性强可靠性差,硬盘可用性差但可靠性强,如何解决这一对矛盾,让内存与硬盘取 …

    Read more