跳到内容
标志
雷竞技下载官网为PostgreSQL Percona运营商
备份和恢复
初始化搜索
    雷竞技下载官网percona / k8spg-docs
    雷竞技下载官网percona / k8spg-docs
    • 欢迎
      • 系统需求
      • 设计和架构
      • 与其他解决方案相比
      • 安装在Minikube
      • 安装与舵
      • 安装在谷歌Kubernetes引擎(GKE)
      • 通用Kubernetes安装
      • 安装在OpenShift
      • 应用程序和系统用户
      • 改变PostgreSQL选项
      • Anti-affinity和纵容
      • 传输加密(TLS / SSL)
      • 遥测
      • 备份和恢复
        • 配置S3-compatible备份存储
        • 使用谷歌云存储备份
        • 调度备份
        • 做备份
        • 列出现有的备份
        • 从以前保存的备份恢复集群
        • 集群与恢复时间点恢复
        • 删除以前保存的备份
      • 升级Percon雷竞技下载官网a分布PostgreSQL和运营商
      • 横向和纵向扩展
      • raybet雷竞技竞猜在线官网监控与Percona监视和雷竞技下载官网管理(PMM)
      • 重新启动集群或暂停
      • 集群部署一个备用的灾难恢复
      • 提供Percon雷竞技下载官网a运营商PostgreSQL单一名称空间和multi-namespace部署的
      • 使用PostgreSQL表空间为PostgreSQL Perco雷竞技下载官网na运营商
      • 创建一个私人S3-compatible云备份
      • 自定义资源的选择
      • 运营商安装选项
      • 雷竞技下载官网Percona认证图片
      • 常见问题
      • 发行说明指数
      • 雷竞技下载官网PostgreSQL 1.4.0 Percona操作员(2023-03-31)
      • 雷竞技下载官网1.3.0 Percona运营商为PostgreSQL版本(2022-08-04)
      • 雷竞技下载官网PostgreSQL 1.2.0 Percona操作员(2022-04-06)
      • 雷竞技下载官网PostgreSQL 1.1.0 Percona操作员(2021-12-07)
      • 雷竞技下载官网Percona运营商为PostgreSQL 1.0.0 (2021-10-07)
      • 雷竞技下载官网PostgreSQL 0.2.0 Percona操作员(2021-08-12)
      • 雷竞技下载官网PostgreSQL 0.1.0 Percona操作员(2021-05-10)

    • 配置S3-compatible备份存储
    • 使用谷歌云存储备份
    • 调度备份
    • 做备份
    • 列出现有的备份
    • 从以前保存的备份恢复集群
    • 集群与恢复时间点恢复
    • 删除以前保存的备份

    提供备份¶

    操作员可以通过两种方式进行备份。定期备份配置的部署/ cr.yaml文件在适当的时间自动执行。按需备份随时可以手工完成。

    操作员使用开源的pgBackRest备份和恢复实用工具。一个特殊的pgBackRest库是由操作员一起创建一个新的集群PostgreSQL促进pgBackRest特性的用法。

    操作员可以在Amazon S3存储PostgreSQL备份,任何S3-compatible存储和谷歌云存储外Kubernetes集群。存储备份持久的卷附加到pgBackRest豆荚也是可能的。在PostgreSQL集群创建时间,您可以指定一个特定的存储类pgBackRest存储库。此外,您还可以指定pgBackRest库的类型,可用于备份:

    • 当地的:使用存储提供Kubernetes集群的存储类,您选择(由于历史原因这个存储库类型可以另外命名posix),
    • s3:使用Amazon S3或者使用S3对象存储系统的协议,
    • 地方、s3:同时使用存储提供Kubernetes集群的存储类,你选择和Amazon S3(或等效对象存储系统使用S3协议)。
    • gcs:使用谷歌云存储,
    • 地方、gcs:同时使用存储提供Kubernetes集群的存储类,您选择和谷歌云存储。

    pgBackRest存储库包括以下Kubernetes对象:

    • 部署,
    • 一个秘密,其中包含的信息是特定于PostgreSQL集群部署,它(例如SSH密钥,AWS S3键,等等),
    • Pod与一些支持脚本,
    • 一个服务。

    PostgreSQL主要是使用自动配置pgbackrest archive-push和推动写前日志(细胞膜)档案到正确的存储库。

    PostgreSQL运营商支持三种类型的pgBackRest备份:

    • 完整(完整的):所有的内容的完整备份PostgreSQL集群,
    • 微分(diff):只备份自上次完全备份,修改过的文件
    • 增量(增加):只备份自上次修改过的文件全部或微分备份。增量备份是默认选择。

    操作员还支持设置pgBackRest保留政策备份。备份保留可以由以下pgBackRest选项:

    • ——repo1-retention-full完整备份保留的数量,
    • ——repo1-retention-diff微分备份保留的数量,
    • ——repo1-retention-archive多少套写前日志档案保留完整和微分备份留存。

    你可以设置备份类型和保留政策时按需备份。

    你也应该先配置的备份存储部署/ cr.yaml配置文件启用备份。

    配置S3-compatible备份存储¶

    为了使用S3-compatible存储备份您需要提供一些S3-related信息,比如适当的S3 bucket名称、端点等。这些信息可以通过以下pgBackRest传递部署/ cr.yaml选项的backup.storages分段:

    • 桶指定应该使用AWS S3 bucket,例如my-postgresql-backups-example,
    • endpointUrl指定了S3端点应该利用,例如s3.amazonaws.com,
    • 地区指定了AWS S3地区应利用,例如us-east-1,
    • uriStyle指定是否主机或路径风格uri应该利用,
    • verifyTLS应该设置为真正的使TLS验证或一组假禁用它,
    • 类型应该设置为s3。
      这里有一个例子配置Amazon S3存储备份:' ' ' yaml…备份:…存储:s3-us-west:类型:s3 bucket: S3-BACKUP-BUCKET-NAME-HERE地区:us-west-2…' ' '

    您还需要提供pgBackRest base64编码AWS S3键和AWS S3键秘密存储以及其他敏感信息Kubernetes秘密,如编码所需的数据使用下面的命令:

    美元回声- n“纯文本字符串”|base64——包装=0
    美元回声- n“纯文本字符串”|base64

    编辑部署/备份/ cluster1-backrest-repo-config-secret.yaml配置文件:设置适当的集群名称,AWS S3键,和关键的秘密:

    apiVersion:v1类:秘密元数据:的名字:<集群名称> -backrest-repo-config类型:不透明的数据:aws-s3-key:< base64-encoded-AWS-S3-key >aws-s3-key-secret:< base64-encoded-AWS-S3-key-secret >

    当完成,创建的秘密如下:

    美元kubectl应用- f部署/备份/ cluster1-backrest-repo-config-secret.yaml

    最后,创建或更新集群:

    美元kubectl应用- f部署/ cr.yaml

    使用谷歌云存储备份¶

    您可以配置谷歌云存储作为对象存储备份与S3存储。

    为了使用谷歌云存储(GCS)备份您需要提供一些GCS-related信息,如适当的GCS桶的名字。这些信息可以通过pgBackRest通过以下选项backup.storages分段的部署/ cr.yaml配置文件:

    • 桶应该包含适当的桶的名字,
    • 类型应该设置为gcs。

    运营商也将需要你的服务帐户访问存储的关键。

    1. 创建您的服务帐户后的关键谷歌官方云指令。
    2. 从你的谷歌云账户出口这个关键。

      你可以找到在谷歌云控制台(选择的关键我&管理→服务帐户在左边菜单面板,然后单击您的帐户并打开键选项卡):

      图像

      单击添加关键按钮,选择创建新的密钥和选择JSON作为一个关键类型。这些行为将导致以JSON格式下载文件和你的新私有密钥和相关信息。

    3. 现在你应该使用base64编码的版本文件和创建Kubernetes秘密。你可以对文件编码base64 <文件名>命令。当完成时,请创建以下yaml文件与您的集群名称和base64编码文件内容:

      apiVersion:v1类:秘密元数据:的名字:<集群名称> -backrest-repo-config类型:不透明的数据:gcs-key:< base64-encoded-json-file-contents >

      当完成,创建的秘密如下:

      美元kubectl应用- f。/ my-gcs-account-secret.yaml
    4. 最后,创建或更新集群:

      美元kubectl应用- f部署/ cr.yaml

    调度备份¶

    备份计划中定义的备份部分的部署/ cr.yaml文件。此部分包含以下部分:

    • 存储分段数据需要访问包含S3-compatible云存储备份。
    • 时间表分段允许实际安排备份(crontab中指定的时间表是格式)。

    这是一个例子部署/ cr.yaml它使用Amazon S3存储备份:

    …备份:…时间表:- - - - - -的名字:“sat-night-backup”时间表:“00**6”保持:3类型:完整的存储:s3…

    crontab格式中指定的时间表是在解释道自定义资源的选择。

    做备份¶

    做一个备份,用户应该使用备份配置文件。备份配置文件的例子部署/备份/ backup.yaml。

    以下键参数中最重要的部分的文件:

    • parameters.backrest-opts是命令行选项的字符串将被传递给pgBackRest,例如——type =全repo1-retention-full = 5,
    • parameters.pg-cluster的名字是PostgreSQL集群支持,例如cluster1。

    当备份选项配置,实际执行备份命令:

    美元kubectl应用- f部署/备份/ backup.yaml

    列出现有的备份¶

    得到的所有现有备份列表pgBackrest回购,使用以下命令:

    美元kubectl执行< name-of-backrest-shared-repo-pod >-- - -pgbackrest信息

    你可以找到适当的豆荚名使用“kubectl吊舱的命令,像往常一样。这是一个备份列表的例子:

    美元kubectl执行cluster1-backrest-shared-repo-5ffc465b85-gvhlh-- - -pgbackrest信息节:db状态:好吧密码:没有一个db(当前的)细胞膜存档最小/最大(14):000000010000000000000001/ 000000010000000000000003完整的备份:20220614-104859 f时间戳启动/停止:2022年06-1410:48:59/2022年06-1410:49:13细胞膜启动/停止:000000010000000000000002/000000010000000000000002数据库大小:33.5MB,数据库备份大小:33.5MBrepo1:备份集大小:4.3MB,备份大小:4.3MB

    在本例中只有一个备份命名20220614 - 104859 f。

    从以前保存的备份恢复集群¶

    运营商支持PostgreSQL集群上执行一个完整的恢复能力以及point-in-time-recovery。有两种类型的方法来恢复一个集群:

    • 恢复到一个新的集群使用pgDataSource.restoreFrom选项(和可能,pgDataSource.restoreOpts对于自定义pgBackRest选项),
    • 恢复原状,向现有集群(注意,这是破坏性的)。

    恢复到一个新的PostgreSQL集群允许您进行备份并创建一个新的集群PostgreSQL,可以与一个现有的运行。有几个场景使用这种技术是有用的:

    • PostgreSQL集群的创建一个副本,可以用于其他目的。把这是另一种方式创建一个克隆。
    • 恢复时间点,检查数据的状态而不影响当前的集群。

    恢复用户应该使用以前保存的备份备份恢复配置文件。备份配置文件的例子部署/备份/ restore.yaml:

    apiVersion:pg.雷竞技下载官网percona.com/v1:Pgtask元数据:标签:pg-cluster:cluster1pgouser:管理名称:cluster1-backrest-restore名称空间:pgo规范:名称:cluster1-backrest-restore名称空间:pgo参数:backrest-restore-from-cluster:cluster1backrest-restore-opts:——类型=时间——目标=“2021-04-16 15:13:32 + 00”backrest-storage-type:当地的tasktype:恢复

    下面的键是这个文件的参数中最重要的部分:

    • parameters.backrest-restore-cluster指定一个PostgreSQL集群的名称将恢复(这个选项名称parameters.backrest-restore-from-cluster操作员1.2.0之前)。它包括停止和恢复数据库和重新创建一个新的主数据(例如,cluster1),
    • parameters.backrest-restore-opts通过对pgBackRest附加选项,
    • parameters.backrest-storage-typepgBackRest库的类型(例如,当地的)。

    实际的恢复过程可以开始如下:

    美元kubectl应用- f部署/备份/ restore.yaml

    创建一个新的集群PostgreSQL从活跃的一个,或前集群的pgBackRest库仍然存在,使用pgDataSource.restoreFrom选择。

    下面的例子将创建一个新的集群命名cluster2从现有的一个名叫“cluster1 ' '。

    1. 首先,创建一个cluster2-config-secrets.yaml配置文件包含以下内容:

      apiVersion:v1数据:密码:< base64-encoded-password-for-pguser >用户名:< base64-encoded-pguser-user-name >类:秘密元数据:标签:pg-cluster:cluster2供应商:crunchydata的名字:cluster2-pguser-secret类型:不透明的推荐- - - - - -apiVersion:v1数据:密码:< base64-encoded-password-for-primaryuser >用户名:< base64-encoded-primaryuser-user-name >类:秘密元数据:标签:pg-cluster:cluster2供应商:crunchydata的名字:cluster2-primaryuser-secret类型:不透明的推荐- - - - - -apiVersion:v1数据:密码:< base64-encoded-password-for-postgres-user >用户名:< base64-encoded-pguser-postgres-name >类:秘密元数据:标签:pg-cluster:cluster2供应商:crunchydata的名字:cluster2-postgres-secret类型:不透明的
    2. 当完成,创建的秘密如下:

      美元kubectl应用- f。/ cluster2-config-secrets.yaml
    3. 编辑部署/ cr.yaml配置文件:

      • 设置一个新的集群名称(cluster2),
      • 设置选项pgDataSource.restoreFrom来cluster1。
    4. 创建集群如下:

      美元kubectl应用- f部署/ cr.yaml

    集群与恢复时间点恢复¶

    时间点恢复功能允许用户恢复数据库之前回状态发生意外变化。

    您可以设置一个时间点恢复使用的正常恢复命令pgBackRest与一些额外的选项中指定parameters.backrest-restore-opts的关键备份恢复配置文件:

    …规范:的名字:cluster1-backrest-restore名称空间:pgo参数:backrest-restore-from-cluster:cluster1backrest-restore-opts:——类型=时间目标= " 2021-04-16 15:13:32 + 00”
    • 集——类型选项时间,
    • 集——目标你想要恢复到一个特定的时间。您可以使用典型的格式化为字符串< YYYY-MM-DD HH: MM:弟弟>可选地,后面可以跟一个时区偏移:“2021-04-16 15:13:32 + 00”(+ 00在上面的例子中意味着UTC),
    • 可选——设置参数允许您选择备份将的起点时间点恢复(查看可用的备份找出适当的备份名称)。必须指定这个选项如果目标是一个或多个备份远离当前的时刻。

    在设置这些选项备份恢复配置文件,遵循标准的恢复指令。

    请注意

    确保你有一个备份,年龄比你想要的时间点。你显然不能恢复的时间你没有备份。所有相关的日志文件写前必须成功地推动之前恢复。

    删除以前保存的备份¶

    存储备份的最大数量的控制backup.schedule.keep选项(只算成功备份)。旧的备份会自动删除,这样数量的存储备份不超过这个数字。

    如果你想删除一些手动备份,您需要删除的pgtask对象和相应的工作本身。删除的备份对象可以使用相同的YAML文件是用于按需备份:

    美元kubectl删除- f部署/备份/ backup.yaml

    删除对应的工作备份可以通过使用kubectl删除工作命令备份名称:

    美元kubectl删除工作cluster1-backrest-full-backup

    联系我们

    免费技术支持,参观Percona雷竞技下载官网社区论坛。

    报告bug或提交功能请求,打开一个JIRA票。

    付费支持和管理或咨询服务,请联系雷竞技下载官网Percona销售。


    最后更新:2023-04-14
    雷竞技下载官网Percona有限责任公司和/或其附属公司,©2009 - 2023
    用材料MkDocs

    饼干的同意

    我们使用cookie识别你的重复访问和偏好,以及测量的有效性我们的文档和用户是否找到他们寻找的是什么。与你的同意,你帮助我们更好的使我们的文档。

    Baidu
    map