Pgsql数据库之Linux环境备份Windows环境还原

Pgsql数据库之Linux环境备份Windows环境还原

Linux环境备份

使用pg_dump备份
pg_dump是一个命令行工具,用于备份单个数据库。它可以生成一个SQL脚本文件,该文件包含了重建数据库所需的所有SQL命令。

pg_dump -h 主机名 -p 端口号 -U 用户名 -F c -b -v -f mypg.pgdump mypg

参数说明:
-h 主机名:PostgreSQL服务器的主机名或IP地址。
-p 端口号:PostgreSQL服务器的端口号(默认为5432)。
-U 用户名:用于连接到PostgreSQL的用户名。
-F c:输出格式为自定义格式(二进制格式),这种格式通常比纯文本SQL格式更小、更快且更灵活。
-b:包括BLOBs(大对象)在备份中。
-v:详细模式,显示更多输出信息。
-f mypg.pgdump:指定输出文件的名称。
mypg:要备份的数据库名称。

Windows环境还原

用pg_dump进行了逻辑备份,那么可以使用pg_restore来恢复数据库
恢复步骤:
(1)创建一个新的空数据库(如果还没有的话)。

createdb -U 用户名 新数据库名称

(2)使用pg_restore命令恢复备份到新的数据库中。

pg_restore -U 用户名 -d 新数据库名称 备份文件路径

如果Windows报pg_restore命令不存在,去pgsql安装目录下bin目录中打开cmd命令窗口执行还原命令即可还原。

  • 11
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在 Kubernetes 上部署 PostgreSQL 数据库后,您可以使用 Kubernetes 提供的 StatefulSet 和 Persistent Volume Claim(PVC)来管理数据库实例和数据卷。要备份 PostgreSQL 数据库,您可以使用 Kubernetes CronJob 和 Kubernetes 提供的 PostgreSQL 客户端工具,如 pg_dump 和 pg_dumpall。 以下是备份 PostgreSQL 数据库的基本步骤: 1. 创建一个 CronJob 对象来定期运行备份任务。例如,以下 CronJob 配置将在每天凌晨 2 点运行备份任务: ```yaml apiVersion: batch/v1beta1 kind: CronJob metadata: name: pg-backup spec: schedule: "0 2 * * *" jobTemplate: spec: template: spec: containers: - name: pg-backup image: postgres:latest command: - /bin/bash - -c - pg_dump -U <username> -h <host> -d <database> > /backup/$(date +%Y-%m-%d_%H-%M-%S).sql env: - name: PGPASSWORD valueFrom: secretKeyRef: name: pg-secret key: password volumeMounts: - name: backup mountPath: /backup restartPolicy: OnFailure volumes: - name: backup persistentVolumeClaim: claimName: backup-pvc ``` 这里的 CronJob 会定期运行一个带有 pg_dump 命令的容器,将备份文件保存到名为 backup 的卷中。您需要将 <username>、<host> 和 <database> 替换为您要备份的 PostgreSQL 数据库的用户名、主机和数据库名称。 2. 创建一个 PVC 以管理备份文件的持久化存储。例如,以下 PVC 配置将创建一个名为 backup-pvc 的 PVC,并将其绑定到名为 backup 的卷: ```yaml apiVersion: v1 kind: PersistentVolumeClaim metadata: name: backup-pvc spec: accessModes: - ReadWriteOnce resources: requests: storage: 10Gi ``` 这里的 PVC 会请求 10Gi 的存储空间,并将其绑定到一个可读写的节点上。 3. 创建一个 Secret 对象以存储 PostgreSQL 数据库的密码。例如,以下 Secret 配置将创建一个名为 pg-secret 的 Secret,其中包含名为 password 的键和密码值: ```yaml apiVersion: v1 kind: Secret metadata: name: pg-secret type: Opaque data: password: <base64-encoded-password> ``` 这里的 <base64-encoded-password> 是经过 base64 编码的 PostgreSQL 数据库密码。 备份完成后,您可以使用 Kubernetes 提供的工具和命令来管理备份文件,例如使用 kubectl cp 命令将备份文件复制到本地计算机,或使用 kubectl logs 命令查看备份任务的日志。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值