5.22.2.3. MySQL データベースのバックアップ
MySQL データベースをバックアップするには、データベースダンプを保存するための永続ボリューム要求 (PVC) を作成します。これは、復旧シナリオに備えて 3scale システムのデータベースデータを保護するのに役立ちます。
前提条件
- Red Hat 3scale API Management Operator をバックアップした。
手順
さらに PVC を追加するには、次の設定で YAML ファイルを作成します。
kind: PersistentVolumeClaim apiVersion: v1 metadata: name: example-claim namespace: threescale spec: accessModes: - ReadWriteOnce resources: requests: storage: 1Gi storageClassName: gp3-csi volumeMode: Filesystem次のコマンドを実行して追加の PVC を作成します。
$ oc create -f ts_pvc.ymlMySQL ダンプを使用するように
system-mysqlデプロイメントを編集して、PVC をシステムデータベース Pod にアタッチします。$ oc edit deployment system-mysql -n threescalevolumeMounts: - name: example-claim mountPath: /var/lib/mysqldump/data - name: mysql-storage mountPath: /var/lib/mysql/data - name: mysql-extra-conf mountPath: /etc/my-extra.d - name: mysql-main-conf mountPath: /etc/my-extra ... serviceAccount: amp volumes: - name: example-claim persistentVolumeClaim: claimName: example-claim ...claimName- ダンプされたデータを含む PVC を指定します。
MySQL データベースをバックアップするために、次の設定を含む YAML ファイルを作成します。
apiVersion: velero.io/v1 kind: Backup metadata: name: mysql-backup namespace: openshift-adp spec: csiSnapshotTimeout: 10m0s defaultVolumesToFsBackup: true hooks: resources: - name: dumpdb pre: - exec: command: - /bin/sh - -c - mysqldump -u $MYSQL_USER --password=$MYSQL_PASSWORD system --no-tablespaces > /var/lib/mysqldump/data/dump.sql container: system-mysql onError: Fail timeout: 5m includedNamespaces: - threescale includedResources: - deployment - pods - replicationControllers - persistentvolumeclaims - persistentvolumes itemOperationTimeout: 1h0m0s labelSelector: matchLabels: app: 3scale-api-management threescale_component_element: mysql snapshotMoveData: false ttl: 720h0m0sここでは、以下のようになります。
mysql-backup-
バックアップ内の
metadata.nameパラメーターの値を指定します。MySQL データベースを復元する際に、metadata.backupNameパラメーターにこの値を使用してください。 /var/lib/mysqldump/data/dump.sql- データのバックアップ先ディレクトリーを指定します。
includedResources- バックアップするリソースを指定します。
次のコマンドを実行して、MySQL データベースをバックアップします。
$ oc create -f mysql.yaml出力例
backup.velero.io/mysql-backup created
検証
次のコマンドを実行して、MySQL のバックアップが完了したことを確認します。
$ oc get backups.velero.io mysql-backup -o yaml出力例
status: completionTimestamp: "2025-04-17T13:25:19Z" errors: 1 expiration: "2025-05-17T13:25:16Z" formatVersion: 1.1.0 hookStatus: {} phase: Completed progress: {} startTimestamp: "2025-04-17T13:25:16Z" version: 1