3.2 归档事务日志

看过图片之后,我们可以看看如何使这些东西进入工作状态。当谈到及时归档时,您需要做的第一件事是归档XLOG。PostgreSQL通过postgresql.conf提供了所有与归档相关的选项。让我们一步一步地看,要启动归档需要在postgresql.conf中做什么:

1. 首先,您应该把archive_mode设置为 on。

2. 第二步,您应该配置您的归档命令。归档命令是一个简单的带有两个参数的shell命令:

1. %p: 这是一个表示应该被归档的的XLOG的占位符,包括它的全路径(源)。

2. %f: 这个变量保存了没有路径指向的XLOG的名字。

现在让我们来设置归档。要做到这一点,我们应该创建一个存放XLOG的位置。理想情况下,您要归档的XLOG不与数据库实例存储在同一硬件上。为了这个例子,我们假设我们要应用一个archive 到/archive。需要在postgresql.conf中做如下改变:

wal_level = archive

# minimal, archive, or hot_standby

# (change requires restart)

archive_mode = on

# allows archiving to be done

# (change requires restart)

archive_command = 'cp %p /archive/%f'

# command to use to archive a logfile segment

# placeholders: %p = path of file to archive

# %f = file name only

一旦做了这些更改之后,就准备好了归档,您只需要重新启动数据库来激活归档。

在我们重新启动数据库实例之前,我们要您把注意力放在wal_level上。目前有三个不同的wal_level设置可供选择:

• minimal

• archive

• hot_standby

迄今为止,在单个节点的情况下,所产生的事务日志的量不足以同步整个第二个实例。在PostgreSQL中有一些优化,在单节点模式情况下,这让XLOG写被跳过。下面的指令可以从wal_level被设置为minimal中受益:CREATE TABLE AS, CREATE INDEX, CLUSTER, 和 COPY(如果在同一个事务中,表被创建或者被清空)。

要重放事务日志,archive是必要的。archive与hot_standby的不同之处是,archive 不需要知道当前运行的事务。对流复制而言,这个信息是至关重要的。

[重新启动可以通过直接使用 pg_ctl –D /data_directory –m fast restart 或者通过一个标准的init 脚本。]

检查我们的归档工作最简单方法是在数据库中创建一些无用的数据。下面的代码片段显示了可以很容易地产生一百万行数据的方法:

test=# CREATE TABLE t_test AS SELECT * FROM generate_series(1,

1000000);

SELECT 1000000

test=# SELECT * FROM t_test LIMIT 3;

generate_series

-----------------

1

2

3

(3 rows)

我们只是创建了一系列数字。重要的是,一百万行数据将出发相当数量的XLOG的交通。您将看到大量的文件使它成了归档:

iMac:archivehs$ ls -l

total 131072

-rw------- 1 hs wheel 16777216 Mar 5 22:31

000000010000000000000001

-rw------- 1 hs wheel 16777216 Mar 5 22:31

000000010000000000000002

-rw------- 1 hs wheel 16777216 Mar 5 22:31

000000010000000000000003

-rw------- 1 hs wheel 16777216 Mar 5 22:31

000000010000000000000004

这些文件可以很容易地用于未来的重放操作。

[如果您要节省存储,您也可以假设这些 XLOG 文件。只需要把gzip添加到您的archive_commmand。 ]

PostgreSQL Replication之第三章 理解即时恢复(2)的更多相关文章

  1. PostgreSQL Replication之第三章 理解即时恢复(3)

    3.3 做基础备份 在上一节中,您已经看到,启用归档只需要几行命令,并提供了极大的灵活性.在本节,我们将看到如何创建一个所谓的基础备份,稍后这可以使用XLOG.一个基本备份是一个最初的数据的拷贝. [ ...

  2. PostgreSQL Replication之第三章 理解即时恢复(1)

    到现在为止,您已经掌握了一定的理论.因为生活不仅由理论组成(它可能同样重要),是时候深入实际的工作了. 本章的目标是让您明白如何恢复数据到一个给定的时间点.当您的系统崩溃或者有人意外地删除了一个表,不 ...

  3. PostgreSQL Replication之第三章 理解即时恢复(4)

    3.4 重放事务日志 一旦我们创建了一个我们自己的初始基础备份,我们可以收集数据库创建的XLOG.当时间到时,我们可以使用所有这些XLOG 文件并执行我们所期望的恢复进程.这就像本节描述的一样工作. ...

  4. PostgreSQL Replication之第七章 理解Linux高可用(6)

    7.6 PostgreSQL和高可用性 数据库是我们日常数字生活的一部分,并期望它们快速工作. 您浏览网上论坛吗?那个帖子在数据库中.您看医生吗?您的医疗记录在数据库中.您在网上购物吗?那个货物,您的 ...

  5. PostgreSQL Replication之第七章 理解Linux高可用(1)

    高可用(HA)是工业长期持续的,不间断的服务.在本章,您将了解高可用软件的历史,概念和实现与PostgreSQL复制和高可用之间的关系. 本章将详细地讲述如下主题: •理解高可用性的目的 •衡量可用性 ...

  6. PostgreSQL Replication之第七章 理解Linux高可用(2)

    7.2 衡量可用性 可用性是提供商试图保证一定的可用性级别和客户可以期望的可用性或更多.在某些情况下(取决于服务合同) 收取罚款或减少申购费用是意外停机的原因. 可用性的质量使用百分数来衡量:例如,9 ...

  7. PostgreSQL Replication之第七章 理解Linux高可用(5)

    7.5 高可用性是所有冗余 让我们从一个不同的角度看一下前面的混合超市的例子.为了处理大量顾客无需长排队,无需关闭超市,混合超市雇用更多的出纳员以及安装许多(甚至更多)的收银机. 这样,如果一个收银机 ...

  8. PostgreSQL Replication之第七章 理解Linux高可用(4)

    7.4 术语与概念 一组计算机被称为集群.集群内的一台计算机被称为一个节点. 当集群内的节点数量是 N (2,,3,等.) ,那么我们讨论一个N节点的集群. 高可用性软件,传输层和集群管理层都运行于每 ...

  9. PostgreSQL Replication之第七章 理解Linux高可用(3)

    7.3 高可用软件的历史 有大量的专有的和开源的高可用性软件.专有的例子有:Solaris Cluster (有时称为Sun 集群 or SunCluster), SteelEye LifeKeepe ...

随机推荐

  1. hdu 5335 Walk Out 搜索+贪心

    Walk Out Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total S ...

  2. Z 字形变换 C++实现 java实现 leetcode系列(六)

    Z 字形变换  java实现 C++实现  将一个给定字符串根据给定的行数,以从上往下.从左到右进行 Z 字形排列. 比如输入字符串为 "LEETCODEISHIRING" 行数为 ...

  3. 关于Tomcat的启动

    1.Tomcat分为安装版和解压版. 2.在Tomcat的解压版的bin路径下启动startup.bat的时候,如果没有启动成功,请检查是否设置了JAVA_HOME 3.建议不要在环境变量里面设置CA ...

  4. POJ 3261 后缀数组+二分

    思路: 论文题- 二分+对后缀分组 这块一开始不用基数排序 会更快的(其实区别不大) //By SiriusRen #include <cstdio> #include <cstri ...

  5. Hbase项目(完整版)

    涉及概念梳理:命名空间 4.1.1.命名空间的结构 1) Table:表,所有的表都是命名空间的成员,即表必属于某个命名空间,如果没有指定,则在default默认的命名空间中. 2) RegionSe ...

  6. AOJ GRL_1_A: Single Source Shortest Path (Dijktra算法求单源最短路径,邻接表)

    题目链接:http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=GRL_1_A Single Source Shortest Path In ...

  7. ActiveMQ学习笔记(17)----Message高级特性(一)

    1. Messaage Properties ActiveMQ支持很多消息属性,具体可以参考 http://activemq.apache.org/activemq-message-propertie ...

  8. How Javascript works (Javascript工作原理) (十) 使用 MutationObserver 监测 DOM 变化

    个人总结: 这篇文章介绍了几种监测DOM变化的方法,重点介绍的是一个新浏览器API叫做MutationObserver. 注意:不要和Vue.js种 Object.defineProperty() 的 ...

  9. CodeForces-1007A Reorder the Array 贪心 田忌赛马

    题目链接:https://cn.vjudge.net/problem/CodeForces-1007A 题意 给个数组,元素的位置可以任意调换 问调换后的元素比此位置上的原元素大的元素个数最大多少 思 ...

  10. Ubuntu 16.04 Chrome浏览器安装flash player插件

    1:官网下载插件  flash palyer lash_player_npapi_linux_debug.x86_64.tar.gz 2:解压 提取 libpepflashplayer.so 3:手动 ...