PostgreSQL导出导入

导出常用方法

pg_dumpall:适合导出cluster中所有业务库

pg_dump:适合单个库、schema级、表级导出

copy:适合单表或带条件sql结果导出(可导出为csv或txt格式)


一、 pg_dumpall
pg_dumpall可以转储cluster里的所有数据库(postgres、template0、template1除外)到一个sql文件,通过对cluster里的每个数据库调用pg_dump实现。pg_dumpall会dump出所有数据库公用的全局对象(即角色和表空间), 而pg_dump不会,注意工具版本,低版本pg_dumpall不能用于高版本db。

#导出整个cluster
pg_dumpall -h localhost -U postgres -f /data/bak/entire_cluster.sql

#仅备份角色和表空间定义:
pg_dumpall -h localhost -U postgres --port=5432 -f myglobals.sql --globals-only

#仅备份角色定义
pg_dumpall -h localhost -U postgres --port=5432 -f myroles.sql --roles-only
详细参考 PostgreSQL: Documentation: 15: pg_dumpall

二、 pg_dump
pg_dump 只会导出表及数据、函数等。数据库和用户的创建需要提前在目标库建立。注意工具版本,低版本pg_dump不能用于高版本db。

1. 导出
#导出指定库(不含create database语句)
pg_dump -h连接串 -U读写用户 库名 > dbname.sql

#导出指定库(包含create database语句)
pg_dump -h连接串 -U读写用户 -C 库名 > dbname.sql

#仅导出指定库结构
pg_dump -h连接串 -U读写用户 -s 库名 > dbname.sql

#导出指定库,结果以自定义压缩格式输出
pg_dump -h连接串 -U读写用户 -F c -b -v 库名 > dbname.backup

#导出特定schema(仅结构,不包含数据)
pg_dump -h连接串 --schema=待导出schema名 --schema-only 库名 > fin_rw.sql

#导出特定schema(包含数据)
pg_dump -h连接串 --schema=待导出schema名 库名 > fin_rw.sql

#导出指定库中hr和payroll两个schema中的所有数据,结果以自定义压缩格式输出
pg_dump -h连接串 -U读写用户 -F c -b -v -n hr -n payroll 库名 > hr_payroll.backup

#导出指定库中除public schema以外的所有数据,结果以自定义压缩格式输出
pg_dump -h连接串 -U读写用户 -F c -b -v -N public 库名 > all_sch_except_pub.backup

#导出特定的表
pg_dump -h连接串 -U读写用户 -t mytab 库名 > dbname.sql

#导出某个db中所有以“pay”开头的表
pg_dump -h连接串 -U读写用户 -t *.pay* 库名 > dbname.sql

详细参考   PostgreSQL: Documentation: 15: pg_dumpall

2、 导入
#postgres用户执行
psql -dmydb -f db.sql

#或登录数据库后运行脚本
\i db.sql

三、 COPY 与 \copy
语法

#导出
COPY { table_name [ ( column_name [, ...] ) ] | ( query ) }
TO { 'filename' | PROGRAM 'command' | STDOUT }
[ [ WITH ] ( option [, ...] ) ]

#导入
COPY table_name [ ( column_name [, ...] ) ]
FROM { 'filename' | PROGRAM 'command' | STDIN }
[ [ WITH ] ( option [, ...] ) ]

WITH csv:导入csv格式数据
HEADER:不导入第一行
encoding:指定编码

1. txt格式

导出txt文件

psql -ddb_name -Uuser_name -W
#执行
COPY 表名 copy TO '/home/postgres/test.txt'
#或者
\copy test_copy to '/home/postgres/test.txt'

导入txt文件

psql -ddb_name -Uuser_name -W

COPY 表名 copy FROM '/home/postgres/test.txt'
#或
\copy test_copy from '/home/postgres/test.txt'


备注:COPY是sql命令,需要superuser权限,性能更好;\copy是元命令,不需要superuser权限

2. csv格式

导出csv文件

把products表导出成csv文件

psql -ddb_name -Uuser_name -W

COPY products TO '/path/to/output.csv' WITH csv;

可以导出指定的列

psql -ddb_name -Uuser_name -W

COPY products (name, price) TO '/path/to/output.csv' WITH csv;

也可以配合查询语句

psql -ddb_name -Uuser_name -W -c "COPY (select * from temp_0524 where id='xxx') TO STDOUT with csv header" > home/postgres/temp_0524.csv
#或者
psql -dplatform -Ubom_rw -W


COPY (select * from temp_0524 where id='xxx') TO 'home/postgres/temp_0524.csv' with csv header

导入csv文件

跟上面的导出差不多,只是把TO换成FROM

注意导入前最好用ultra edit等工具将文件编码设置为UTF-8,传到linux服务器后再用vi -b检查下有没有乱码,否则非常容易出现奇奇怪怪的报错。

psql -ddb_name -Uuser_name -W

COPY products FROM '/path/to/input.csv' WITH csv;

不导入第一行,指定编码为UTF-8

\copy tmp_3 FROM '/data/tmp_3.csv' WITH csv HEADER encoding 'UTF-8';


关于pg_dump的源码实现分析,可以查看  PgSQL · 源码分析· pg_dump分析

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

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

相关文章

C#面:Sleep() 和 Wait() 有什么区别

Sleep() 和 Wait() 是两个不同的方法,用于控制线程的执行。 Sleep() 方法: 是线程类 Thread 的静态方法,它使当前线程暂停执行一段时间。 Sleep() 方法接受一个参数,表示线程暂停的时间长度,单位是毫秒。 在暂停期…

C++ 11新特性之语法甜点4

概述 C 11中引入了许多简化编程工作的语法上的新特性,我们暂且美其名曰:“语法甜点”。书接上篇,我们继续介绍C 11中的这些“语法甜点”,也是最后一篇关于“语法甜点”的文章。 语法甜点16:新的字符串字面值 C 03提供了…

VitePress-13- 配置-title的作用详解

作用描述 1、title 是当前站点的标题;2、默认值是 :VitePress;3、当使用默认主题时,会直接展示在 页面的【导航条】中;4、一个特殊的作用 : 会作为单个页面的默认标题后缀!除非又指定了【title…

WSL下如何使用Ubuntu本地部署Vits2.3-Extra-v2:中文特化修复版(新手从0开始部署教程)

环境: 硬: 台式电脑 1.cpu:I5 11代以上 2.内存16G以上 3.硬盘固态500G以上 4.显卡N卡8G显存以上 20系2070以上 本案例英伟达4070 12G 5.网络可连github 软: Win10 专业版 19045以上 WSL2 -Ubuntu22.04 1.bert-Vits2.3 Extra-v2:…

CSP-201912-1-报数

CSP-201912-1-报数 知识点总结 整数转化为字符串#include <string> string str_num to_string(num);字符串中查找是否包含字符‘7’&#xff1a;str_num.find(7) 未找到返回-1找到返回返回该字符在字符串中的位置&#xff08;即第一次出现的索引位置&#xff09; #i…

腾讯云4核8G服务器够用吗?容纳多少人同时访问?

腾讯云4核8G服务器支持多少人在线访问&#xff1f;支持25人同时访问。实际上程序效率不同支持人数在线人数不同&#xff0c;公网带宽也是影响4核8G服务器并发数的一大因素&#xff0c;假设公网带宽太小&#xff0c;流量直接卡在入口&#xff0c;4核8G配置的CPU内存也会造成计算…

java nio零拷贝

零拷贝是一种计算机执行IO操作的优化技术&#xff0c;其核心目标是减少数据拷贝次数&#xff0c;从而提高系统性能。它主要体现在以下几个方面&#xff1a; 1. **定义与原理**&#xff1a;零拷贝字面上的意思包括“零”和“拷贝”。其中&#xff0c;“拷贝”是指数据从一个存储…

西工大计算机学院复试问题整理

1. DMA DMA是一种无须CPU参与就可以让外设与系统内存之间进行双向数据传输的硬件机制1&#xff0c;而中断是指CPU在执行程序的过程中&#xff0c;出现了某些突发事件时必须暂停执行当前的程序&#xff0c;转去处理突发事件1。两者的主要区别是&#xff1a; 中断方式是在每个数据…

读千脑智能笔记11_保存人类遗产

1. 智能生物通常能延续多久 1.1. SETI和METI计划的可行性在很大程度上取决于智能生物通常能延续多久 1.1.1. 搜寻地外文明&#xff08;以下简称SETI&#xff09;计划的目标 1.1.1.1. 这是一个力图寻找宇宙其他地方智能生物存在证据的研究项目 1.1.1.2. SETI计划旨在寻找含有…

[NSSCTF]-Web:[SWPUCTF 2021 新生赛]easy_sql解析

查看网页 有提示&#xff0c;参数是wllm&#xff0c;并且要我们输入点东西 所以&#xff0c;我们尝试以get方式传入 有回显&#xff0c;但似乎没啥用 从上图看应该是字符型漏洞&#xff0c;单引号字符注入 先查看字段数 /?wllm2order by 3-- 没回显 报错了&#xff0c;说明…

顺序表、链表(ArrayList、LinkedList)

目录 前言&#xff1a; 顺序表&#xff08;ArrayList&#xff09;&#xff1a; 顺序表的原理&#xff1a; ArrayList源码&#xff1a; 的含义&#xff1a;​编辑 ArrayList的相关方法&#xff1a;​编辑 向上转型List&#xff1a; 练习题&#xff08;杨辉三角&#x…

修改GI文件的权限

参考文档&#xff1a; How to check and fix file permissions on Grid Infrastructure environment (Doc ID 1931142.1) -- 验证二进制文件的权限 [gridnode19c01 ~]$ cluvfy comp software -n node19c01 -verbosePerforming following verification checks ...Software …

tokio tcp通信

引入crate tokio { version "1.35.1", features ["full"] } 服务端 use std::time::Duration; use tokio::{io::{AsyncBufReadExt, AsyncWriteExt},net::{tcp::{OwnedReadHalf, OwnedWriteHalf},TcpListener, TcpStream,},sync::mpsc, };#[tokio::ma…

轻薄型工业平板亿道EM-T195,续航持久高达10小时

时尚而坚固的 10.1英寸EM-T195触摸屏平板电脑融合了高耐力和无与伦比的适应性&#xff0c;可抵御极端天气条件和多重冲击&#xff0c;借助强大的联发科8核处理器&#xff0c;它可以从容面对任何工作挑战。 其读取能力&#xff08;2D 成像器&#xff09;结合其坚固性&#xff0…

跟着cherno手搓游戏引擎【24】开启2D引擎前的项目总结(包括前置知识汇总)

前置技术&#xff1a; vs属性解释&#xff1a; MSBuild的入门完整教程&#xff08;包学包会&#xff09;-CSDN博客 配置界面&#xff1a; c动态链接和静态链接&#xff1a; 隐藏的细节&#xff1a;编译与链接_哔哩哔哩_bilibili 【底层】动态链接库(dll)是如何工作的&…

探索现代Web前端开发框架:选择最适合你的工具

在当今快速发展的Web开发领域&#xff0c;前端开发框架的选择显得尤为关键。这些框架可以帮助我们更高效地构建出交互性强、性能卓越的用户界面。本文将带你了解几个当前最受欢迎的Web前端开发框架&#xff0c;并帮助你根据自己的需求选择最合适的工具。 1. React React由Fac…

2.10日学习打卡----初学RocketMQ(一)

2.10日学习打卡 对于MQ(Message queue)消息队列的一些解释可以看我原来写的文章 初学RabbitMQ 各大MQ产品比较 一.RocketMQ概述 发展历程 RocketMQ概念术语 生产者和消费者 生产者负责生产消息&#xff0c;一般由业务系统负责生产消息&#xff0c;消费者即后台系统&…

无人机遥感技术应用分析,无人机遥感系统测绘技术详解

由于无人机具有机动快速、使用成本低、维护操作简单等技术特点,因此被作为一种理想的飞行平台广泛应用于军事和民用各个领域。尤其是进入二十一世纪以后,许多国家将无人机系统的研究、开发、应用置于优先发展的地位,体积小、重量轻、探测精度高的新型传感器的不断问世,也使无人…

解决挂梯子 无法正常上网 的问题

方法&#xff1a; 打开 控制面板 &#x1f449; 网络和Internet &#x1f449; Internet选项 &#x1f449; 连接 &#x1f449; 局域网设置 &#x1f449; 代理服务器 &#x1f449; 取消选项 有问题可参考下图

中科大计网学习记录笔记(九):DNS

前言&#xff1a; 学习视频&#xff1a;中科大郑烇、杨坚全套《计算机网络&#xff08;自顶向下方法 第7版&#xff0c;James F.Kurose&#xff0c;Keith W.Ross&#xff09;》课程 该视频是B站非常著名的计网学习视频&#xff0c;但相信很多朋友和我一样在听完前面的部分发现信…