当前位置: 首页 > news >正文

PostgreSql dump导入问题集合

PostgreSql dump导入问题集合

删除数据库无法删除问题

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

版本检查

pg_restore -l D:/suian/vrms2_backup.dump > D:/suian/vrms22list.txt

打开 list.txt,搜索目标表(如 test.user)的条目:

...
5; 3079 16505 TABLE public users postgres
6; 3079 16510 TABLE test user postgres   # 目标条目
7; 3079 16515 INDEX test user_pkey postgres
...

dump 导出

  • 推荐使用 pg_dump -Fc:生成高效压缩的 .dump 文件,支持选择性恢复。
pg_dump -Fc -U postgres -h localhost -p 5432 -d test -f /backups/test_backup.dump

dump导入

sql导入

psql -h <远程主机> -p <端口> -U <用户名> -d <目标数据库名> -f <dump文件路径>
psql -h 192.168.1.100 -p 5432 -U postgres -d mydb -f /path/to/backup.sql

dump导入

pg_restore -h <远程主机> -p <端口> -U <用户名> -d <目标数据库名> <dump文件路径>
pg_restore -h 192.168.1.100 -p 5432 -U postgres -d mydb /path/to/backup.dump
pg_restore -h 127.0.0.1 -p 5434 -U postgres -d vrms2 --no-owner --no-acl D:/suian/vrms2_backup.dump

创建数据库

数据库不存在
psql -h <主机> -U postgres -c "CREATE DATABASE mydb;"

约束文件

;
; Archive created at 2025-04-16 20:56:48
;     dbname: test
;     TOC Entries: 14
;     Compression: -1
;     Dump Version: 1.13-0
;     Format: CUSTOM
;     Integer: 4 bytes
;     Offset: 8 bytes
;     Dumped from database version: 10.21
;     Dumped by pg_dump version: 10.21
;
;
; Selected TOC Entries:
;
2804; 1262 16393 DATABASE - test postgres
3; 2615 2200 SCHEMA - public postgres
2805; 0 0 COMMENT - SCHEMA public postgres
1; 3079 12924 EXTENSION - plpgsql 
2806; 0 0 COMMENT - EXTENSION plpgsql 
197; 1259 16399 TABLE public book postgres
196; 1259 16394 TABLE public user postgres
2798; 0 16399 TABLE DATA public book postgres
2797; 0 16394 TABLE DATA public user postgres
2675; 2606 16403 CONSTRAINT public book book_pkey postgres
2673; 2606 16398 CONSTRAINT public user user_pkey postgres

对于custom(pg_backup_custom.c)格式,文件头中有两个和版本相关的内容,一个是服务器的版本、一个是程序的版本,这两个版本标识的作用如下:

1 服务器的版本:表示本导出导入工具、所连接的数据库服务器的版本。如果服务器的版本低于7.1,则不支持。可以阅读代码中的_check_database_version函数。服务器的版本可以决定导出程序在读出数据(从系统表读出数据)的内容和格式。可以借鉴:getOperators、getTables等get系列的函数
2 程序的版本:标识本导出文件,是被pg_dump的哪个版本的程序导出的。

除了以上2种版本号外,PoatgresSQL的导出导入工具还支持:
3 在ArchiveHandle结构中,有“version”的属性, 标识数据格式的版本。这样,不同版本导出的文件,也许可以有不同的格式,在pg_restore做恢复的时候,可以根据程序版本识别数据格式,进而支持对于数据文件的兼容。可以读ReadHead函数了解起作用。

相关文章:

  • 两个 STM32G0 I2C 通信异常的案例分析
  • Python实现贪吃蛇三
  • 软考 系统架构设计师系列知识点 —— 设计模式之创建者模式
  • OpenCv高阶(六)——图像的透视变换
  • Python 赋能区块链金融——从零构建智能交易系统
  • 生物信息与自动化控制1 - 传感器数据采集与PID 算法的应用
  • 使用Vue 3与.NET 8.0通过SignalR实现实时通信,并结合JWT身份验证
  • 十、自动化函数+实战
  • youtube视频和telegram视频加载原理差异分析
  • Uniapp 使用Android studio进行离线打包
  • 小白工具视频转 3GP,多格式转换与数据安全的完美结合,在线使用
  • 责任链模式(Chain of Responsibility Pattern)
  • python-将文本生成音频
  • React 入门教程:构建第一个 React 应用
  • 嵌入式C语言进阶(二+)内存管理补充版
  • nvm切换node版本后,解决npm找不到的问题
  • Web前端 (CSS篇)
  • MyBatis:SpringBoot结合MyBatis、MyBatis插件机制的原理分析与实战
  • Shell编程之正则表达式与文本
  • Tomcat大版本升级教程
  • wordpress交易排行榜/seo优化顾问服务阿亮
  • 公司网站建设对公司的重要性/东莞网络科技公司排名
  • 国土分局网站建设方案/中国十大流量网站
  • 湖南省住房和城乡建设厅网站/什么软件可以排名次
  • 萌兔网站做代销可靠吗/360优化大师下载官网
  • 如何做网站优化seo/申请一个网站需要多少钱