postgresql备份、wal存档和pitr到openstack swift

swiftwal的Python项目详细描述


########
swift wal
它被分发到:doc:`gplv3 license<;license>;`.




Requirements
----


*`pigz<;http://zlib.net/pigz/>;``用于压缩和解压缩。
:程序:`pigz`是多线程的直接替换
:程序:`gzip`.

*python swiftclient<;https://pypi.python.org/pypi/python swiftclient>;`

*:命令:`pg_basebackup`,postgresql附带的标准工具。


由于
:命令:`pg_-basebackup`'s tar输出格式的限制而受支持。



引导定期运行,如果备份成功,则按以下命令:'swiftwal prune'。

*:命令:'swiftwal archive wal'配置为主
postgresql server的'archive_command''设置在
:文件:'postgresql.conf'。

*:命令:'swiftwal restore wal`被配置为:file:`recovery.conf`
文件中的hot
standbys```restore嫒命令``设置。




common options
----

提示:
如果设置了标准的openstack环境变量或包含这些设置的配置文件,则不需要在命令行上显式提供它们。对于将
挂接到PostgreSQL的"archive_command"和"restore_command"中,使用
:选项:`--config'通常是最好的方法。

:程序:`swiftwal`

。程序:swiftwal

…选项::--container container,-c container

用于存储所有内容的swift容器名称。所有操作都需要
。您通常会为每个postgresql服务器使用一个唯一的容器名
。当然,您不希望两个或多个
服务器将wal文件归档到同一个容器中,因为您将
遇到冲突。选项::--config file,-c file

兰帕森斯项目选项:--详细,-v


额外输出和更长的报告。

…选项:---操作系统身份验证URL

OpenStack身份验证URL。默认为
:envvar:`os_auth_url`环境变量。

…选项:--操作系统用户名用户

openstack用户名。默认为:envvar:`os_username`
环境变量。

…选项::--操作系统密码键

openstack键。默认为:envvar:`os_password`环境
变量。

…选项:---操作系统租户名称租户

openstack租户名称。默认为:envvar:`os_tenant_name`
环境变量。



backup
----

有关backup
命令行选项的更多信息,请参见
:手册页:`pg_basebackup(1)``文档
<;http://www.postgresql.org/docs/9.1/static/app pgbasebackup.html>;` `.

。重要提示:
始终使用:选项n:`--xlog`选项,如果您没有为pitr配置可靠的wal
存档。此选项确保备份中包含所需的wal
信息。如果没有所需的wal
信息,则无法恢复备份。



将数据库备份到"pgprod"容器中:

%swiftwal-c pgprod-v backup-c fast--xlog-h grind.example.com
在容器pgprod中创建备份20130828t1810z
警告:跳过特殊文件"./server.crt"
警告:跳过特殊文件"./server.key"
开始wal位置:0/5c000020(文件00000010000000000005c)
检查点位置:0/5c000058
备份方法:streamed
开始时间:2013-08-29 01:10:19 ict
标签:PG U BaseBackup(通过Swiftwal)

…注意:
这里的警告消息是从以下命令发出的:command:`pg_basebackup`,
,并且总是在debian和ubuntu postgresql default
安装时发出,因为ssl证书文件安装为
符号链接。



iso 8601 timestamp``20130828t1810z`'用于在swiftwal中标识此备份的键。


:command:`swiftwall list backups`命令将显示存储在swift中的备份

%swiftwal-c pgprod list backups
20130829t1125z
20130829t1131z
20130902t1138z
20130902t11311z

:选项:`--verbose`选项将显示更详细的报告::

%swiftwal-c pgprod--verbose list backups
size timestamp swift object name
===========================================================br/>2.72 MB 20130829T1125Z pg_basebackup_1125Z.tgz
2.72 MB 20130829T1131Z pg_20130829T1131Z.tgz
2.72 MB 20130902T1138Z pg_20130902T1138Z pg_20130902T1138Z.tgz
2.72 MB 20130902T1311Z pg_20130902T1311Z.tgz

总大小:10.9 MB



:程序:`swiftwal backup`

。选项:---xlog,-x


传递给:program:`pg_basebackup`,指示它包含还原数据库所需的所有wal文件。如果没有此
选项,除非已存档必要的wal信息(例如,使用
:命令:`swiftwal archive wal`)进行wal存档,否则备份将毫无用处。选项:---检查点{fast,spread},-c{fast,spread}


尽快启动备份,或等待下一个检查点正常完成。:选项:`--checkpoint fast`
可能会在特别繁忙的服务器上造成不必要的负载。

…选项:---进度,-p

显示进度指示器。

…选项:--label label,-l label

设置备份标签。这是供您自己使用的,因为Swiftwal使用
备份开始时间来引用备份。选项::--用户名,-u name

作为指定用户连接到PostgreSQL。此用户需要
使用"alter role"授予"replication"属性,这通常是默认"postgres"用户的情况。它还需要
被授予连接到隐藏的数据库的权限:文件:`pg_hba.conf`.


。选项:--主机名,-h主机名


连接到指定主机上的PostgreSQL。

…选项:---端口端口,-p端口

备份到您选择的目录。作为
预防措施,目录必须为空或不存在:

%swiftwal--container=pgprod restore 20130828t1952z./
读取的总字节数:22159360(22mib,993kib/s)

提示:
使用默认的debian或ubuntu postgresql安装程序中,还需要
重新创建SSL证书符号链接或更新
:文件:`postgresql.conf`文件以直接指定路径:


ln-s/etc/ssl/certs/ssl-cert-snakeoil.pem.
ln-s/etc/ssl/private/ssl-cert-snakeoil.key.


reports
----


:命令:`swift wal list backups`命令列出存储在swift中的备份。


:命令:`swiftwal list wal`命令列出存储在swift中的wal文件。



wal archiving
----

:命令:`swiftwal archive wal`命令can在postgresql:file:`postgresql.conf`文件中用作
``archive_命令`,将wal日志直接存档到swift中。这允许您配置
日志传送的复制,并结合使用
:命令:`swiftwal backup`进行的备份,允许您执行pitr:

wal level=hot standby
archive命令='swiftwal--config=/etc/swiftwal.conf archive wal%p'

程序:`swiftwal archive wal`

…选项::--force,-f

覆盖现有的wal文件。在正常操作中,如果wal存档
在目标目标目标位置已存在,则wal存档
命令应拒绝覆盖该文件。这是一项安全措施,除非您错误地将两台服务器配置为存档到同一个swift容器,否则通常不会发生这种情况。此选项允许您
覆盖此行为,帮助您修复问题。



wal shipping
----


:command:`swiftwal restore wal`命令可以用作postgresql:file:`recovery.conf`文件中的"重播命令"。这使您可以执行pitr,
直接从swift重放wal信息。它还允许您设置
wal日志传送复制并创建一个热备份服务器。
日志传送复制通常配置为流式
复制作为回退,允许备用服务器在其
由于某种原因落后时进行恢复,而无需使用
``wal\u keep\u segments``配置选项在主服务器上保留大量可用的wal文件:


standby\u mode=on
restore\u command='swiftwal--config=/etc/swiftwal.conf restore wal%f%p'
recovery\u target\u timeline=latest


删除备份和wal文件可以使用以下命令删除旧备份和wal文件:命令:`swiftwal prune`

20130828T1524Z->;20130828T1524Z
保留3个备份,20130828T1528Z->;20130828T1904Z

他常用:选项:`--verbose`生成更详细的报告的选项。

…重要提示:
不要清除旧备份和wal文件,除非您确信新备份和wal文件实际上是可恢复的。如果在进行备份时
不使用:选项:`--xlog`选项,则值得检查服务器$datadir/pg狺xlog/archive狺status
目录中是否有扩展名为.ready的文件;这些文件对应未存档的wal文件,可能意味着您
需要恢复你的备份还不是很快。下面的
脚本可以让您自信地从
postgresql执行常规备份和清理:

/bin/bash
pgdata=/var/lib/postgresql/9.1/main
swiftwal-c/etc/swiftwal.conf-c pgprod backup
sleep 600
如果[`find${pgdata}/pg xlog/archive\u status-name\*.ready-cmin+9`]
则返回错误:沃尔档案公司正在倒闭。保留旧备份。
else
swiftwal-c/etc/swiftwal.conf-c pgprod cleanup--keep backups=1
fi

选项:---保留备份n

要保留多少备份。保留最新的备份,并删除较旧的备份。选项:---保留wals n

要保留多少wal文件。如果备份
pitr需要,则会保留更多信息(保留比最旧备份
更年轻的所有wal信息)。每个wal文件的大小为16mb。如果设置为0,则除"pitr"所需的wal文件外,所有wal文件都将被删除。选项::--dry run,-n

作为postgresql附带的标准pg_archivecleanup(1)工具。如果WAL文件安装在备用服务器的recovery.c on f文件中,则WAL文件将在重播后自动删除,并且不再需要它们:

standby_mode=on
restore_command='swiftwal-c/etc/swiftwal.conf restore wal%f%p'
archive_cleanup_command='swiftwal-c/etc/swiftwal.conf档案清理%r'



…| pitr替换:::abbr:`pitr(时间点恢复)`

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在Rxjava中更改列表时通知obsever   java如何验证spring MVC web app中是否设置了连接池?   从Textview选择文本时出现安卓错误(java.lang.IndexOutOfBoundsException:setSpan(1…1)在0之前开始)   javakotlin:作为方法参数的接口   java将列强制转换为hibernate条件中的类型   java如何在屏幕上获取输出对象?   java内部调用方法   java Log4j2模式布局+转换模式处的负数   java将EditText转换为浮动安卓 eclipse   对Java继承规则感到困惑   java将外部文件打包到jar中,然后允许代码对这些打包的文件执行操作   java如何通过输入给定字段之一进行用户搜索?   java Android从应用程序调用活动   java如何从相机中获取图像并将其添加到google地图上作为标记?   java自定义Listview在选择Edittext并打开键盘之前不显示   javascript验证JSON字符串服务端   使用java流从列表中获取素数   java无法让我的菜单打开方法   用户界面高效的动态生成Java GUI