【问题总结】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;如何实…

iptables 命令

清除规则 iptables -D INPUT 2 iptables -D OUTPUT 2 默认规则 iptables -P INPUT DROP iptables -P INPUT ACCEPT iptables -P OUTPUT DROP iptables -P OUTPUT ACCEPT 添加规则 iptables -A INPUT -s 192.168.80.11 -j ACCEPT iptables -A INPUT -s 192.168.80.11 -j D…

k8s 对外服务之 Ingress

//Ingress 简介 service的作用体现在两个方面&#xff0c;对集群内部&#xff0c;它不断跟踪pod的变化&#xff0c;更新endpoint中对应pod的对象&#xff0c;提供了ip不断变化的pod的服务发现机制&#xff1b;对集群外部&#xff0c;他类似负载均衡器&#xff0c;可以在集群内外…

函数和控制流

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

7.运算符优先级

优先级运算符顺序1小括号 &#xff08;&#xff09; 2一元运算符 -- &#xff01; 3算数运算符先* / %后 -4关系运算符> > < <5相等运算符 &#xff01; &#xff01;6逻辑运算符先&&后||7赋值运算符8逗号运算符&#xff0c; 一…

Simulink仿真模块 - Data Store Read

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

Ceph的部署与应用

文章目录 Ceph的部署与应用一.存储基础1.单机存储设备(1)DAS&#xff08;直接附加存储&#xff0c;是直接接到计算机的主板总线上去的存储&#xff09;(2)NAS&#xff08;网络附加存储&#xff0c;是通过网络附加到当前主机文件系统之上的存储&#xff09;(3)SAN&#xff08;存…

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的基本语法、面向对象编程和其他核心概念。这将有助于更好地理解…

webpack学习

1.webpack 项目-----》装载器------》插件------》浏览器 loader&#xff1a;将浏览器不能识别的文件转化为html&#xff0c;js&#xff0c;css 插件&#xff1a;对文件进行处理像压缩&#xff0c;合并等 入口&#xff1a; 出口&#xff1a; 创建webpack webpack init -y webp…

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…

js代码优化

感觉有点基础&#xff0c;不过还是记一下&#xff0c;遇到了至少有话说 语言特性 避免全局查找&#xff1a;在JavaScript中&#xff0c;全局变量的查找会比局部变量更耗时。因此&#xff0c;尽量将常用的变量存储为局部变量&#xff0c;以减少作用域链的查找时间。 避免过度使…

蓝桥杯上岸每日N题第三期(一)!!!

大家好 我是寸铁&#x1f4aa; 考前需要刷大量真题,大家一起相互监督&#xff0c;每日做N题&#xff0c;一起上岸吧✌️ ~ 冲刺蓝桥杯省一模板大全来啦 &#x1f4a5; ~ 蓝桥杯4月8号就要开始了 &#x1f64f; ~ 还没背熟模板的伙伴们背起来 &#x1f4aa; &#x1f4aa; &…

0基础学C#笔记03:进制转换

文章目录 前言一、十进制转二进制、八进制、十六进制1、类方法:使用Convert类方法ToString2、自己写:二、二进制、八进制、十六进制转十进制1、使用Convert类方法ToInt322、自己写经验总结扩展延伸1.十六进制转浮点数2、浮点数转十六进制数前言 首先我们知道在计算机当中所有…

uni-app 用法总结

1、跳转页面 this.$tab.navigateTo(/pages/mine/info/index) 2、接收跳转页面的参数 this.$tab.navigateTo(/pages/mine/info/index?abcccc) 获取页面传递的参数 this.$route.query.abc 3、动态设置导航标题 uni.setNavigationBarTitle({ // 接收到的title标题 …

基于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…