您的位置:首页 > 房产 > 家装 > 免费做链接的app有哪些_投资网站建设_100个成功营销策划案例_sem竞价托管价格

免费做链接的app有哪些_投资网站建设_100个成功营销策划案例_sem竞价托管价格

2025/3/19 5:19:34 来源:https://blog.csdn.net/Transient_/article/details/145883049  浏览:    关键词:免费做链接的app有哪些_投资网站建设_100个成功营销策划案例_sem竞价托管价格
免费做链接的app有哪些_投资网站建设_100个成功营销策划案例_sem竞价托管价格

如何对PostgreSQL数据库进行数据迁移

      • 使用 `pg_dump` 和 `pg_restore` 工具
        • 备份
        • 恢复
      • 直接备份 PostgreSQL 数据目录
        • 备份
        • 恢复
      • 使用 Docker 卷备份
        • 备份步骤
        • 恢复
      • 总结

在使用 Docker 部署 PostgreSQL 数据库时,数据备份和恢复是非常重要的操作。以下是几种可靠的备份和恢复方法:


使用 pg_dumppg_restore 工具

这是 PostgreSQL 官方推荐的逻辑备份方法,适合备份单个数据库。

备份
  1. 进入运行 PostgreSQL 的 Docker 容器:

    docker exec -it <容器名称或ID> bash
    
  2. 使用 pg_dump 备份数据库:

    pg_dump -U <用户名> -d <数据库名> -F c -b -v -f /backup/<备份文件名>.dump
    
    • -U:指定数据库用户名。
    • -d:指定数据库名称。
    • -F c:指定备份格式为自定义格式(适合 pg_restore)。
    • -b:包含大对象(如二进制数据)。
    • -v:显示详细日志。
    • -f:指定备份文件路径。

    例如:

    pg_dump -U postgres -d mydb -F c -b -v -f /backup/mydb_backup.dump
    
  3. 将备份文件从容器复制到宿主机:

    docker cp <容器名称或ID>:/backup/mydb_backup.dump /宿主机路径/
    
恢复
  1. 将备份文件复制到容器中:
    docker cp /宿主机路径/mydb_backup.dump <容器名称或ID>:/backup/mydb_backup.dump
    
  2. 进入容器并恢复数据库:
    pg_restore -U <用户名> -d <数据库名> -v /backup/mydb_backup.dump
    

直接备份 PostgreSQL 数据目录

这种方法适合备份整个 PostgreSQL 实例(包括所有数据库和配置)。

备份
  1. 停止 PostgreSQL 容器:

    docker stop <容器名称或ID>
    
  2. 备份 PostgreSQL 数据目录(通常挂载在 /var/lib/postgresql/data):

    tar -czvf postgres_backup.tar.gz -C /宿主机挂载路径 .
    

    例如:

    tar -czvf postgres_backup.tar.gz -C /var/lib/docker/volumes/my_postgres_data .
    
  3. 启动 PostgreSQL 容器:

    docker start <容器名称或ID>
    
恢复
  1. 停止 PostgreSQL 容器:
    docker stop <容器名称或ID>
    
  2. 解压备份文件到数据目录:
    tar -xzvf postgres_backup.tar.gz -C /宿主机挂载路径
    
  3. 启动 PostgreSQL 容器:
    docker start <容器名称或ID>
    

使用 Docker 卷备份

如果 PostgreSQL 数据存储在 Docker 卷中,可以直接备份 Docker 卷。

备份步骤
  1. 查找 PostgreSQL 数据卷:
    docker volume ls
    
  2. 备份卷数据:
    docker run --rm -v <卷名称>:/volume -v /宿主机路径:/backup busybox tar -czvf /backup/postgres_volume_backup.tar.gz -C /volume .
    
    例如:
    docker run --rm -v my_postgres_data:/volume -v /home/user/backups:/backup busybox tar -czvf /backup/postgres_volume_backup.tar.gz -C /volume .
    
恢复
  1. 停止 PostgreSQL 容器:
    docker stop <容器名称或ID>
    
  2. 恢复卷数据:
    docker run --rm -v <卷名称>:/volume -v /宿主机路径:/backup busybox tar -xzvf /backup/postgres_volume_backup.tar.gz -C /volume
    
  3. 启动 PostgreSQL 容器:
    docker start <容器名称或ID>
    

总结

  • 逻辑备份:使用 pg_dumppg_restore,适合单个数据库备份。
  • 物理备份:直接备份数据目录或 Docker 卷,适合全量备份。

根据需求选择合适的方法,并定期测试备份文件的恢复能力,以确保数据安全。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com