postgresql|数据库|恢复备份的时候报错:pg_restore: implied data-only restore的处理方案

本文涉及的产品
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
云原生数据库 PolarDB PostgreSQL 版,企业版 4核16GB
推荐场景:
HTAP混合负载
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
简介: postgresql|数据库|恢复备份的时候报错:pg_restore: implied data-only restore的处理方案

一,

前情回顾

某次在使用pg_dump命令逻辑备份出来的备份文件对指定的几个表恢复的时候,报错pg_restore: implied data-only restore  

当然,遇到问题首先就是百度了,但好像没有什么明确的解决方案,具体的报错命令和报错信息如下:

[postgres@node1 ~]$ pg_restore -Upostgres -v -x  -d   pgbench -t ds.dr_route_ds -t ds.dr_task_active_ds 2023-08-02T04_00-ds.dump 
pg_restore: connecting to database for restore
pg_restore: implied data-only restore

第二行表示pg_restore 命令已经正确连接到数据库,数据库名称是pgbench,准备开始备份

第三行表示    暗示恢复命令是仅恢复数据,然后就没有然后了!!!!

what  fa?

二,

问题分析和解决方案

仔细观察这个备份命令,发现是-d 数据库名称  -t 模式名称.该模式下的表名 -t 模式名称.该模式下的表名 -t 模式名称.该模式下的表名

OK,将模式名称去掉,发现可以正常的恢复了

postgres@node1 ~]$ pg_restore -Upostgres -v -x -a  -d   pgbench -t dr_route_ds -t dr_task_active_ds 2023-08-02T04_00-ds.dump 
pg_restore: connecting to database for restore
pg_restore: processing data for table "dr.dr_route_ds"
pg_restore: processing data for table "dr.dr_task_active_ds"
pg_restore: processing data for table "ds.dr_route_ds"
pg_restore: processing data for table "ds.dr_task_active_ds"

但出现了一个问题,pgbench这个数据库下有两个scheme,也就是两个模式,两个模式有同样的两张表,我现在只想恢复ds模式下的这两张表的数据,并不想恢复dr模式下的这两张表的数据

因此,最终的恢复命令为加 -n参数,-指定ds模式:

[postgres@node1 ~]$ pg_restore -Upostgres -v -x -a  -d   pgbench -n ds -t dr_route_ds -t dr_task_active_ds 2023-08-02T04_00-ds.dump 
pg_restore: connecting to database for restore
pg_restore: processing data for table "ds.dr_route_ds"
pg_restore: processing data for table "ds.dr_task_active_ds"

####注:

  • 参数-v 是显示恢复的过程,通常此参数是必加的
  • 参数-a 是只覆盖恢复数据不检查对象是否存在,比如,要恢复的表已存在,这个不检查,只把表数据覆盖到表内
  • 参数-x 如果逻辑备份文件内有包含权限的对象,例如用户什么的,使用此参数的时候将不执行相关操作,例如,某个用户的创建在此逻辑备份文件内,但不会执行,也不会检查
  • 参数-d 指定要恢复到哪个数据库内,也就是目标数据库
  • 参数-n 指定目标数据库下的scheme,也就是模式名称
  • 参数-t  指定要恢复的表的表名
  • 最后,逻辑备份文件前面不要加任何参数
相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
相关文章
|
17天前
|
存储 SQL 关系型数据库
|
11天前
|
SQL 存储 关系型数据库
关系型数据库PostgreSQL学习
【7月更文挑战第4天】
412 2
|
14天前
|
存储 SQL 监控
关系型数据库备份与恢复基础
【7月更文挑战第1天】
19 2
|
16天前
|
运维 数据管理 数据库
数据管理DMS产品使用合集之遇到报错:数据库账号没有权限执行,该如何排查
阿里云数据管理DMS提供了全面的数据管理、数据库运维、数据安全、数据迁移与同步等功能,助力企业高效、安全地进行数据库管理和运维工作。以下是DMS产品使用合集的详细介绍。
20 2
|
17天前
|
Java Devops API
阿里云云效操作报错合集之云效页面提示数据库保存不进去,该怎么办
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
6天前
|
关系型数据库 数据库 RDS
利用DTS将自建mysql5.7版本数据库迁移至对应rds报错
利用DTS将自建mysql5.7版本数据库迁移至对应rds报错
29 0
|
10天前
|
SQL 关系型数据库 MySQL
Navicate,数据库,Mysql,改表,4月29日Finished - Unsuccessfully,导出数据不妨,右键,备份一下Mysql数据库的内容,你想导入和导出数据不如,用查询的方式去做
Navicate,数据库,Mysql,改表,4月29日Finished - Unsuccessfully,导出数据不妨,右键,备份一下Mysql数据库的内容,你想导入和导出数据不如,用查询的方式去做
|
17天前
|
数据库
宝塔如何备份数据库
宝塔如何备份数据库
|
9天前
|
存储 关系型数据库 MySQL
探索MySQL:关系型数据库的基石
MySQL,作为全球最流行的开源关系型数据库管理系统(RDBMS)之一,广泛应用于各种Web应用、企业级应用和数据仓库中
|
6天前
|
关系型数据库 MySQL 网络安全
Mysql 数据库主从复制
在MySQL主从复制环境中,配置了两台虚拟机:主VM拥有IP1,从VM有IP2。主VM的`my.cnf`设置server-id为1,启用二进制日志;从VM设置server-id为2,开启GTID模式。通过`find`命令查找配置文件,编辑`my.cnf`,在主服务器上创建复制用户,记录二进制日志信息,然后锁定表并备份数据。备份文件通过SCP传输到从服务器,恢复数据并配置复制源,启动复制。检查复制状态确认运行正常。最后解锁表,完成主从同步,新用户在从库中自动更新。
908 6
Mysql 数据库主从复制