跳到内容
标志
雷竞技下载官网为PostgreSQL Percona运营商
备份和恢复
初始化搜索
    雷竞技下载官网percona / k8spg-docs
    雷竞技下载官网percona / k8spg-docs
    • 欢迎
      • 系统需求
      • 设计和架构
      • 与其他解决方案相比
      • 安装与kubectl
      • 安装在谷歌Kubernetes引擎(GKE)
      • 通用Kubernetes安装
      • 应用程序和系统用户
      • 暴露集群
      • Anti-affinity和纵容
      • 传输加密(TLS / SSL)
      • 遥测
      • 备份和恢复
        • 备份存储库
        • 备份类型
        • 备份保留
        • 备份存储
          • 配置S3-compatible备份存储
          • 配置谷歌云存储备份
          • 配置Azure Blob存储备份
        • 调度备份
        • 做备份
        • 从以前保存的备份恢复集群
          • 恢复到现有集群PostgreSQL
          • 集群与恢复时间点恢复
          • 恢复到一个新的PostgreSQL集群
      • 高可用性和可伸缩性
      • raybet雷竞技竞猜在线官网监控与Percona监视和雷竞技下载官网管理(PMM)
      • 添加的双轮马车的容器
      • 重新启动集群或暂停
      • 初始故障排除
      • 执行到容器
      • 检查日志
      • 自定义资源的选择
      • 雷竞技下载官网Percona认证图片
      • 发行说明指数
      • 雷竞技下载官网Percona运营商为PostgreSQL 2.1.0的技术预览版(2023-05-04)
      • 雷竞技下载官网Percona运营商为PostgreSQL 2.0.0技术预览版(2022-12-30)
    • 加入k8阵容

    • 备份存储库
    • 备份类型
    • 备份保留
    • 备份存储
      • 配置S3-compatible备份存储
      • 配置谷歌云存储备份
      • 配置Azure Blob存储备份
    • 调度备份
    • 做备份
    • 从以前保存的备份恢复集群
      • 恢复到现有集群PostgreSQL
      • 集群与恢复时间点恢复
      • 恢复到一个新的PostgreSQL集群

    提供备份¶

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

    操作员使用开源的pgBackRest备份和恢复实用工具。

    备份存储库¶

    一个特殊的pgBackRest库是由操作员一起创建一个新的集群PostgreSQL促进pgBackRest特性的用法。

    操作员可以使用以下变体Kubernetes以外的云存储集群保持PostgreSQL备份:

    • Amazon S3,或任何S3-compatible存储,
    • 谷歌云存储,
    • Azure Blob存储

    还可以备份存储在Kubernetes,只是在一个持久的卷附加到pgBackRest豆荚。

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

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

    你可以有多达4 pgBackRest库命名为repo1,repo2,repo3,repo4。

    备份类型¶

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

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

    备份保留¶

    操作员还支持设置pgBackRest保留政策全面、微分备份。当一个完整备份根据保留政策到期,pgBackRest清理与此相关的所有文件备份和写前日志。所以,到期的完全备份和增量备份的基础上它导致到期的所有增量备份。

    备份保留可以由以下pgBackRest选项:

    • ——<回购名称> -retention-full完整备份保留多少,
    • ——<回购名称> -retention-diff微分备份保留多少。

    备份保留类型可以是数(备份的数量保持)或时间(备份应该保留的天数)。

    你可以设置备份类型为每个4存储库和保留策略如下。

    备份:pgbackrest:…全球:repo1-retention-full:“14”repo1-retention-full-type:时间…

    备份存储¶

    你应该为你的存储库配置备份存储backups.pgbackrest.repos部分的部署/ cr.yaml配置文件。

    配置S3-compatible备份存储¶

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

    • 桶指定应该使用AWS S3 bucket,例如my-postgresql-backups-example,
    • 端点指定了S3端点应该利用,例如s3.amazonaws.com,
    • 地区指定了AWS S3地区应利用,例如us-east-1。

    您还需要提供pgBackRest base64编码AWS S3键和AWS S3键秘密存储以及其他敏感信息Kubernetes秘密。

    1. 把你的AWS S3键和AWS S3键秘密的base64编码pgBackRest配置pgBackRest库名称。的情况下repo1存储库可以如下:

      美元猫< < EOF | base64 -包= 0(全球)repo1-s3-key = < YOUR_AWS_S3_KEY >repo1-s3-key-secret = < YOUR_AWS_S3_KEY_SECRET >EOF
      美元猫< < EOF | base64(全球)repo1-s3-key = < YOUR_AWS_S3_KEY >repo1-s3-key-secret = < YOUR_AWS_S3_KEY_SECRET >EOF
    2. 创建配置文件的秘密了base64编码字符串如下cluster1-pgbackrest-secrets.yaml例子:

      apiVersion:v1类:秘密元数据:的名字:cluster1-pgbackrest-secrets类型:不透明的数据:s3.conf:< base64-encoded-configuration-contents >

      请注意

      这个秘密可以存储凭证数库作为单独的数据键。

      当完成时,创建对象从这个yaml文件的秘密:

      美元kubectl应用- fcluster1-pgbackrest-secrets.yaml
    3. 更新你的部署/ cr.yaml配置与S3的凭证的秘密backups.pgbackrest.configuration分段,把其他所有S3相关信息的选择你的一个存储库中backups.pgbackrest.repos分段。例如,S3存储的repo1库,如下所示。

      …备份:pgbackrest:…配置:- - - - - -秘密:的名字:cluster1-pgbackrest-secrets…回购:- - - - - -的名字:repo1s3:桶:“< YOUR_AWS_S3_BUCKET_NAME >”端点:“< YOUR_AWS_S3_ENDPOINT >”地区:“< YOUR_AWS_S3_REGION >”
    4. 最后,创建或更新集群:

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

    配置谷歌云存储备份¶

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

    为了使用谷歌云存储(GCS)备份您需要提供一个合适的GCS桶的名字。Bucket名称可以通过pgBackRest通过gcs.bucket的关键backups.pgbackrest.repos分段的部署/ cr.yaml。

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

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

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

      图像

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

    3. 现在你应该创建Kubernetes秘密使用base64编码版本的两个文件:包含私钥您刚刚下载的文件,和特别的gcs.conf配置文件。

      的内容gcs.conf文件取决于存储库名称。的情况下repo1库,它看起来如下:

      (全球)repo1-gcs-key = / etc / pgbackrest / conf.d / gcs-key.json

      你可以编码的文本文件base64 -包= 0 <文件名>命令(或者只是base64 <文件名>苹果macOS)。当完成时,请创建以下yaml文件与您的集群名称和base64编码文件内容如下cluster1-pgbackrest-secrets.yaml例子:

      apiVersion:v1类:秘密元数据:的名字:cluster1-pgbackrest-secrets类型:不透明的数据:gcs-key.json:< base64-encoded-json-file-contents >gcs.conf:< base64-encoded-conf-file-contents >

      请注意

      这个秘密可以存储凭证数库作为单独的数据键。

      创建对象从这个YAML文件的秘密:

      美元kubectl应用- fcluster1-pgbackrest-secrets.yaml
    4. 更新你的部署/ cr.yaml配置和你的秘密GCS凭证backups.pgbackrest.configuration分段,把GCS在桶的名字桶选择你的一个存储库中backups.pgbackrest.repos分段。例如,GCS存储的repo3库,如下所示。

      …备份:pgbackrest:…配置:- - - - - -秘密:的名字:cluster1-pgbackrest-secrets…回购:- - - - - -的名字:repo3gcs:桶:“< YOUR_GCS_BUCKET_NAME >”
    5. 最后,创建或更新集群:

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

    配置Azure Blob存储备份¶

    为了使用微软Azure Blob存储用于备份您需要提供一个合适的Azure容器名称。它可以传递给pgBackRest通过azure.container的关键backups.pgbackrest.repos分段的部署/ cr.yaml。

    操作人员还需要一个Kubernetes秘密Azure存储凭证访问存储。

    1. 把Azure存储帐户名称和关键的base64编码与pgBackRest pgBackRest配置存储库名称。的情况下repo1存储库可以如下:

      美元猫< < EOF | base64 -包= 0(全球)repo1-azure-account = < AZURE_STORAGE_ACCOUNT_NAME >repo1-azure-key = < AZURE_STORAGE_ACCOUNT_KEY >EOF
      美元猫< < EOF | base64(全球)repo1-azure-account = < AZURE_STORAGE_ACCOUNT_NAME >repo1-azure-key = < AZURE_STORAGE_ACCOUNT_KEY >EOF
    2. 创建配置文件的秘密了base64编码字符串如下cluster1-pgbackrest-secrets.yaml例子:

      apiVersion:v1类:秘密元数据:的名字:cluster1-pgbackrest-secrets类型:不透明的数据:azure.conf:< base64-encoded-configuration-contents >

      请注意

      这个秘密可以存储凭证数库作为单独的数据键。

      当完成时,创建对象从这个yaml文件的秘密:

      美元kubectl应用- fcluster1-pgbackrest-secrets.yaml
    3. 更新你的部署/ cr.yaml配置的Azure存储凭证的秘密backups.pgbackrest.configuration分段,把Azure容器名称的选择你的一个存储库中backups.pgbackrest.repos分段。例如,Azure存储的repo1库,如下所示。

      …备份:pgbackrest:…配置:- - - - - -秘密:的名字:cluster1-pgbackrest-secrets…回购:- - - - - -的名字:repo1azure:容器:“< YOUR_AZURE_CONTAINER >”
    4. 最后,创建或更新集群:

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

    调度备份¶

    备份计划中定义的每一个存储库的基础上backups.pgbackrest.repos分段的部署/ cr.yaml文件。您可以为每个存储库提供时间表。<备份类型>关键等于实际的时间表crontab中指定的格式。

    这是一个例子部署/ cr.yaml它使用repo1库备份:

    …备份:pgbackrest:…回购:- - - - - -的名字:repo1日程安排:完整的:“00**6”微分:“01**1 - 6”…

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

    做备份¶

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

    apiVersion:pg.雷竞技下载官网percona.com/v2beta1类:雷竞技下载官网PerconaPGBackup元数据:的名字:backup1规范:pgCluster:cluster1repoName:repo1#选项:# - - - - - - - - - type =

    填补它与适当的库名称用于备份,以及任何需要pgBackRest命令行选项。

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

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

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

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

    • 恢复到一个新的集群使用dataSource.postgresCluster分段,
    • 恢复原状,向现有集群(注意,这是破坏性的)使用backups.restore分段。

    恢复到现有集群PostgreSQL¶

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

    apiVersion:pg.雷竞技下载官网percona.com/v2beta1类:雷竞技下载官网PerconaPGRestore元数据:的名字:restore1规范:pgCluster:cluster1repoName:repo1选项:- - - - - -- type =时间- - - - - -——目标=“2022-11-30 15:12:11 + 03”

    以下键是最重要的:

    • pgCluster指定集群的名称,
    • repoName指定的名称4 pgBackRest库之一,已经配置backups.pgbackrest.repos分段,
    • 选项通过任何pgBackRest命令行选项。

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

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

    集群与恢复时间点恢复¶

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

    您可以设置一个时间点恢复使用pgBackRest很少有额外的正常恢复命令spec.options字段部署/ restore.yaml:

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

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

    请注意

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

    恢复到一个新的PostgreSQL集群¶

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

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

    创建一个新的集群PostgreSQL从活跃的一个,或前集群的pgBackRest库仍然存在,使用dataSource.postgresCluster分段选项。本节的内容应该复制备份键的原始集群的需要进行恢复:

    • dataSource.postgresCluster.clusterName应该包含新集群的名称,
    • dataSource.postgresCluster.options允许你设置需要pgBackRest命令行选项,
    • dataSource.postgresCluster.repoName应该包含pgBackRest库的名称,而实际的存储配置键应该放在这个仓库dataSource.pgbackrest.repo分段,
    • dataSource.pgbackrest.configuration.secret.name应该包含的名称Kubernetes秘密凭证需要访问云存储,如果任何。

    联系我们

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

    早期使用新产品功能,邀请“问我”与Percona Kubernetes专家,和每月的赃物莱佛士,加入雷竞技下载官网k8阵容。

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

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


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

    饼干的同意

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

    Baidu
    map