• Русский
  • Резервное копирование и восстановление

    Содержание

    Введение

    Обеспечивает возможности физического резервного копирования и восстановления на основе хранилища для гарантии безопасности данных. Поддерживается ручной запуск резервного копирования и восстановление на новые экземпляры.

    Процедура

    CLI
    Web Console

    Настройка хранилища для резервных копий

    # Пример: Настройка хранилища резервных копий для экземпляра 'my-pg-instance'
    kubectl patch postgresql my-pg-instance -n my-namespace --type='merge' -p '
    spec:
      backup:
        retainDay: 7
        storage:
          name: my-s3-config
          bucket: my-backup-bucket
          namespace: storage-namespace
    '

    Создание резервной копии

    # Пример: Создание резервной копии с именем 'my-backup' для кластера 'my-pg-cluster'
    cat <<EOF | kubectl create -f -
    apiVersion: middleware.alauda.io/v1
    kind: PostgresBackup
    metadata:
      name: my-backup
      namespace: my-namespace
    spec:
      cluster: my-pg-cluster
      executeNode: my-pg-cluster-0  # Необязательно: указать pod для выполнения резервного копирования
    EOF

    Просмотр статуса резервной копии

    kubectl get postgresbackup <backup-name> -n <namespace> -o yaml

    Восстановление базы данных

    cat <<EOF | kubectl create -f -
    apiVersion: middleware.alauda.io/v1
    kind: PostgresRestore
    metadata:
      name: <restore-instance-name>
      namespace: <namespace>
    spec:
      backupCluster:
        name: <backup-pg-cluster-name>
        uid: <backup-pg-cluster-uid>
        storage:
          name: <storage-name>
          namespace: <storage-namespace>
          bucket: <s3-bucket-name>
      targetCluster: |
        apiVersion: acid.zalan.do/v1
        kind: postgresql
        metadata:
          name: <new-instance-name>
          namespace: <new-instance-namespace>
        spec:
          enableExporter: true
          enablePgpool2: false
          numberOfInstances: 2
          postgresql:
            version: "14"
          resources:
            limits:
              cpu: "1"
              memory: 2Gi
            requests:
              cpu: "1"
              memory: 2Gi
          teamId: ACID
          volume:
            size: 20Gi
            storageClass: sc-topolvm
      timestamp: "2023-07-26T14:36:38+00:00"  # Точка во времени для восстановления
    EOF

    Описание статуса резервного копирования

    Описание полей статуса резервного копирования:

    ПолеОписание
    backupNameИмя файла резервной копии
    clusterUidУникальный идентификатор кластера
    configBackupStorageКонфигурация хранилища резервных копий
    executeNodeУзел, выполняющий резервное копирование
    finishLsnПозиция LSN в конце резервного копирования
    finishTimeВремя завершения резервного копирования
    lastModifiedВремя последнего изменения резервной копии
    pgVersionВерсия PostgreSQL
    startLsnПозиция LSN в начале резервного копирования
    startTimeВремя начала резервного копирования
    stateСтатус резервного копирования

    Меры предосторожности

    1. Конфигурация хранилища для резервных копий должна быть выполнена до создания резервной копии.
    2. Операция восстановления создаст новый экземпляр PostgreSQL.
    3. Резервные копии будут автоматически удалены после истечения срока хранения.
    4. Не выполняйте операции записи в исходном кластере во время процесса восстановления.
    5. Убедитесь, что класс хранилища целевого кластера совместим с классом хранилища исходного кластера.
    6. Проверьте наличие достаточного объема свободного места перед началом резервного копирования.
    7. Регулярно тестируйте процедуры восстановления для проверки валидности резервных копий.
    8. Рассмотрите возможность включения шифрования резервных копий для чувствительных данных.