【问题总结】Docker环境下备份和恢复postgresql数据库

目录

文章目录

    • 以从备份恢复forest_resources库为例
      • 一、备份数据库
      • 二、需要还原的数据库准备
        • 1 删除掉远程的库。
        • 2 重新创建一个空的库。可以使用sql
        • 3 找到数据库存放的路径,并将备份文件上传到对应的路径下
      • 三、 进入docker容器内部,执行数据库恢复
      • 附录:一些常用的pgsql操作指令

以从备份恢复forest_resources库为例

一、备份数据库

  1. 在本地windows环境下使用以下指令备份数据库

    {pgsql的安装路径}\bin\pg_dump -h {host} -p {端口} -U postgres -W   {数据库名}  > {备份文件的路径}
    

    比如 D:\javaapp\PGSQL14\bin\pg_dump -h 192.168.3.11 -p 15432 -U postgres -W forest_resources > D:\forestry_res_0718.bak

  2. 输入密码。没有报错就可以等待完成了

    image-20230718174917538

  3. 查看文件已生成

    image-20230718175105135

二、需要还原的数据库准备

第一步和第二步在数据库管理软件上操作也是一样的

1 删除掉远程的库。

DROP DATABASE  forest_resources;

成功如下:

image-20230718175918906

注意删除之前要先备份数据库

报错数据库被占用使用以下sql解决:

image-20230718175718205

SELECT pg_terminate_backend(pg_stat_activity.pid)
FROM pg_stat_activity
WHERE datname='forest_resources' AND pid<>pg_backend_pid();

2 重新创建一个空的库。可以使用sql

createdb  -e -U postgres forest_resources

image-20230718180113669

检查一下是否已创建成功

image-20230718180430724

3 找到数据库存放的路径,并将备份文件上传到对应的路径下

比如演示环境下的路径是这里

/data/docker/pgsql/data/backup

image-20230607101035363

ps:这里的路径是docker映射出来的路径,可以通过查看docker-compose文件来确定位置,或者使用docker inspect命令来查看映射详情

image-20230718180633362

image-20230718180851777

三、 进入docker容器内部,执行数据库恢复

# 查看docker进程
docker ps
#复制 CONTAINER ID  #60d815d5767a   
# 进入docker内部
docker exec -it 60d815d5767a /bin/bash
#进入到以下地址 找到上传的备份文件
cd /var/lib/postgresql/data/backup

找到刚才上传的文件

image-20230718181959846

#postgres@60d815d5767a:~/data/backup$ 
psql -U postgres -d forest_resources < forestry_res.bak

image-20230718182036101

看到开始执行指令,就是开始复制数据库了。

最后记得检查是否成功

附录:一些常用的pgsql操作指令

一些常用的pgsql操作指令:

以下是一些常用的 PostgreSQL CLI 命令

  • psql:连接到 PostgreSQL 数据库并打开交互式命令行界面。
  • createdb:创建一个新的 PostgreSQL 数据库。
  • dropdb:删除一个 PostgreSQL 数据库。
  • pg_dump:导出一个 PostgreSQL 数据库的数据和结构到一个文件。
  • pg_restore:从一个 pg_dump 文件中恢复一个 PostgreSQL 数据库。
  • psql -c:执行一条 SQL 命令并退出。
  • \l:列出所有可用的数据库。
  • \c:连接到另一个 PostgreSQL 数据库。
  • \dt:列出当前数据库中的所有表格。
  • \d table_name:显示指定表格的结构。
  • \q:退出 psql 命令行界面。
  • SELECT:从一个表格中选择数据。
  • INSERT INTO:向一个表格中插入新数据。
  • UPDATE:更新一个表格中的数据。
  • DELETE FROM:从一个表格中删除数据。
  • \timing:在 psql 命令行界面中启用或禁用计时器,以便衡量查询的执行时间。
  • \e:打开默认编辑器以编辑当前命令行中的 SQL 查询。
  • \i filename:从指定的文件中读取 SQL 命令并在 psql 命令行界面中执行它们。
  • \o filename:将查询结果输出到指定的文件中,而不是在 psql 命令行界面中显示它们。
  • \?:列出所有可用的 psql 命令。
  • \h:显示 SQL 命令的帮助信息。
#列出出数据库 
\l #列出表 
\d#切换数据库 
\c test# 退出数据操作
\q

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/4211.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue3统计数值(Statistic)

可自定义设置以下属性&#xff1a; 数值的标题&#xff08;title&#xff09;&#xff0c;类型&#xff1a;string | slot&#xff0c;默认&#xff1a;‘’数值的内容&#xff08;value&#xff09;&#xff0c;类型&#xff1a;string | number&#xff0c;默认&#xff1a;…

AlphaPose复现配置教程

AlphaPose复现配置教程 AlphaPose介绍 AlphaPose是一种准确的多人姿态估计器&#xff0c;这是第一个在COCO数据集上达到70 mAP (75 mAP)和在MPII数据集上达到80 mAP (82.1 mAP)的开源系统。为了匹配跨帧的同一人的姿态&#xff0c;我们还提供了一种高效的在线姿态跟踪器&…

scala学习手册

1. case class学习 样例类模式匹配 1.1 样例类&#xff08;case class&#xff09;适合用于不可变的数据。它是一种特殊的类&#xff0c;能够被优化以用于模式匹配。 case class MetaData(userId: String)case class Book(name: String) {def printBookName(): Unit {printl…

跨网络的通信过程、路由的作用以及默认网关

如下网络拓扑图&#xff0c;交换机0所在的网段为192.168.1.0/24&#xff0c;交换机1所在网段为192.168.2.0/24&#xff0c;且各自有2台主机&#xff1a; 假设PC0&#xff08;192.168.1.10/32&#xff09;要跟PC4&#xff08;192.168.2.11/32&#xff09;通信&#xff0c;如何实…

函数和控制流

专栏简介&#xff1a;本专栏作为Rust语言的入门级的文章&#xff0c;目的是为了分享关于Rust语言的编程技巧和知识。对于Rust语言&#xff0c;虽然历史没有C、和python历史悠远&#xff0c;但是它的优点可以说是非常的多&#xff0c;既继承了C运行速度&#xff0c;还拥有了Java…

Simulink仿真模块 - Data Store Read

Data Store Read:从数据存储中读取数据 在仿真库中的位置为:Simulink / Signal Routing 模型为: 说明 Data Store Read 模块将指定数据存储中的数据复制到其输出中。多个 Data Store Read 模块可从同一个数据存储读取数据。 用来读取数据的源数据存储由 Data Store Memory 模…

vue+element-ui通用后台管理系统(适合新手)

vueelement-ui通用后台管理系统&#xff08;适合新手&#xff09; 1、使用到的技术 使用vue2element-uiaxiosjs-cookielessecharts实现的一个简易的通用后台管理系统&#xff0c;具有很强的可扩展性&#xff0c;修改简单&#xff0c;只要有点前端基础就能看懂&#xff1b; 2…

怎么学习Java数据库连接(JDBC)? - 易智编译EaseEditing

学习Java数据库连接&#xff08;JDBC&#xff09;是掌握Java与数据库交互的关键步骤。以下是学习Java JDBC的一些建议&#xff1a; 先掌握Java基础&#xff1a; 在学习JDBC之前&#xff0c;确保你已经掌握了Java的基本语法、面向对象编程和其他核心概念。这将有助于更好地理解…

Spring、SpringBoot、SpringCloud、SpringCloud Alibaba、Elasticsearch版本对应,附下载地址

1、GitHub Alibaba 发布SpringCloud Alibaba和SpringCloud 、SpringBoot版本 Spring Cloud Alibaba VersionSpring Cloud VersionSpring Boot2022.0.0.0-RC2Spring Cloud 2022.0.03.02022.0.0.0-RC1Spring Cloud 2022.0.03.0.02021.0.5.0*Spring Cloud 2021.0.52.6.132021.0.4…

基于FPGA的softmax函数优化及实现

文章目录 前言优化方案测试数据产生及Matlab结果处理流程工程说明功耗与面积标准softmax函数功耗与面积总结前言 FPGA异构计算是一个趋势,在AI推理、深度学习中广泛使用FPGA进行加速,减小系统延迟。而AI推理中有一个组件被广泛使用,各种网络模型中都有其身影,那就是激活函…

Ceph 应用

Ceph 应用 一、创建 CephFS 文件系统 MDS 接口 1.服务端操作 1&#xff09;在管理节点创建 mds 服务 cd /etc/ceph ceph-deploy mds create node01 node02 node032&#xff09;查看各个节点的 mds 服务 ssh rootnode01 systemctl status ceph-mdsnode01 ssh rootnode02 syst…

人工智能顶会投稿截止时间汇总

一、NeurIPS 1. 会议名称及等级 Annual Conference on Neural Information Processing Systems&#xff08;CCF-A&#xff09;https://dblp.uni-trier.de/db/conf/nips/index.html 2. 投稿时间及接收率 https://neurips.cc/Conferences/2023/CallForPapers#OpenReview 一般…

【C++修炼之路】内存管理

&#x1f451;作者主页&#xff1a;安 度 因 &#x1f3e0;学习社区&#xff1a;StackFrame &#x1f4d6;专栏链接&#xff1a;C修炼之路 文章目录 一、C/C 内存分布二、考题三、C语言动态内存管理方式四、C内存管理方式1、对内置类型2、对自定义类型 五、C对动态管理的升级六…

Html基础知识学习——圣杯布局、margin负值、等高布局(十七)

文章目录 圣杯布局margin负值等高布局 圣杯布局 两边页面固定中间页面宽度随着浏览器大小自适应 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-widt…

mmdetection3.1.0 训练自己的数据集

目录 前言安装mmcv安装mmdetection验证安装数据集转为COCO划分训练集、验证集及测试集安装PaddlePaddle安装PaddleX划分数据集 修改对应文件修改coco.py重新安装修改模型文件 训练测试测试带真值的图像测试不带真值的图像批量测试 错误集锦ValueError: need at least one array…

Kafka

1.定义 Kafka&#xff1a;一个分布式基于发布/订阅模式的消息队列。 发布者发布消息进入队列后&#xff0c;每个订阅者都能在一定时间内获取发布的消息&#xff08;Kafka&#xff1a;消费者通过主动拉取pull队列&#xff09;。 缺点&#xff1a;即使没有消息&#xff0c;消费者…

如何解决VScode远程下载插件不了的问题?如何手动安装插件?

当我们在使用VScode进行远程操作时&#xff0c;在安装我们所需要的一些插件时&#xff0c;可能会出现如下图&#xff0c;一直卡在安装中....明明只有小几十MB&#xff0c;却一连好几个小时都一动不动。像这种情况&#xff0c;就需要我们进行手动安装该插件。 插件网站&#xff…

在云计算环境中,保护Java应用程序可用的有效措施和工具

云计算&#xff08;Cloud&#xff09;技术是近年来计算机科学的一个重要突破。大多数组织已经通过将自己的应用程序移入云平台而获益。不过&#xff0c;如何保证应用程序在第三方服务器上的安全性&#xff0c;是一项艰巨的挑战。 在本文中&#xff0c;我们将重点讨论Java&…

一文带你了解Spring中存入Bean和获取Bean的方式

0. Spring中的五大注解 上图中就是五大类注解对应的层&#xff0c;通过源码可以看到其他四个注解都基于Conponent 1. 存入 Bean Spring既然是一个包含众多工具方法的IoC容器&#xff0c;它是一个控制反转的容器&#xff0c;所以就需要将Bean对象存入到容器中&#xff0c;需要…

使用Jenkins自由风格的软件项目实现接口自动化测试持续集成

这里写目录标题 一、JOB项目配置1、添加描述2、限制项目的运行节点3、源码管理4、构建触发器5、构建步骤6、构建后操作 一、JOB项目配置 1、添加描述 可选选项可填可不填 2、限制项目的运行节点 节点中要有运行环境所需的配置 节点配置教程&#xff1a;https://blog.csdn…