卡巴斯基容器安全

备份和恢复数据

PostgreSQL 机制可用于 PostgreSQL 数据库备份和数据恢复。您可以将该机制应用于卡巴斯基容器安全中的 PostgreSQL 数据库或者您可能拥有的现有 PostgreSQL 数据库。

数据库备份副本是使用 pg_dump 实用程序创建的。备份副本包括所有主要设置和 PostgreSQL 数据库对象,即使数据库是并行使用的。如果有备份副本,则可以快速恢复数据库。

如果没有备份副本,故障可能会导致 PostgreSQL 数据库中存储的信息不可恢复地丢失。

使用 pg_dump 实用程序可将 PostgreSQL 数据库导出为脚本或存档格式(例如 .TAR)。

pg_dump 实用程序使用示例

#!/bin/bash

# Set variables

postgres_podname="kcs-postgres-0"

namespace="kcs"

POSTGRES_USER="pguser"

POSTGRES_DATABASE="api"

date=$(date +"%Y-%m-%dT%H:%M:%S"-"backup")

dir_main="$namespace-$date"

dir_db=$dir_main/db

# Start script

mkdir -p $dir_main $dir_db

# Get postgres dump

kubectl exec -it $postgres_podname -n $namespace -- bash -c "pg_dump -U ${POSTGRES_USER} -F c ${POSTGRES_DATABASE} > /tmp/pg_dump_backup.sqlc"

kubectl cp "$namespace/$postgres_podname:/tmp/pg_dump_backup.sqlc" pg_dump_backup.sqlc

mv pg_dump_backup.sqlc $dir_db/

kubectl exec -it $postgres_podname -n $namespace -- bash -c 'rm -rf /tmp/pg_dump_backup.sqlc'

要从备份副本恢复 PostgreSQL 数据库,可以使用 pg_restore 实用程序。它可以从 pg_dump 实用程序创建的压缩包中恢复 PostgreSQL 数据库。pg_restore 实用程序执行的命令会将数据库恢复到保存数据库时的状态。

pg_restore 实用程序使用示例

#!/bin/bash

# Set variables

postgres_podname="kcs-postgres-0"

namespace="kcs"

POSTGRES_USER="pguser"

POSTGRES_DATABASE="api"

dir_db_backup="~/pg_dump_backup.sqlc"

# Postgres restore

kubectl cp $dir_db_backup "$namespace/$postgres_podname:/tmp/pg_dump_backup.sqlc"

kubectl exec -it $postgres_podname -n $namespace -- bash -c "pg_restore -U ${POSTGRES_USER} -d ${POSTGRES_DATABASE} -c /tmp/pg_dump_backup.sqlc"

kubectl exec -it $postgres_podname -n $namespace -- bash -c 'rm -rf /tmp/pg_dump_backup.sqlc'

页首
[Topic 265971]