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(时间点恢复)`
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:
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(时间点恢复)`