postgreSQL备份数据

1、pg_dump 备份单一数据库

pg_dump仅导出数据库结构:
pg_dump -U TestRole1 -s -f TestDb1.sql TestDb1

备份某个database,备份结果以自定义压缩格式输出:
pg_dump -h localhost -p 5432 -U someuser -F c -b -v -f mydb.backup mydb

备份某个database,备份结果以SQL文本方式输出,输出结果中需包括CREATE DATABASE语句:
pg_dump -h localhost -p 5432 -U someuser -C -F p -b -v -f mydb.backup mydb

备份某个database中所有名称以“pay”开头的表,备份结果以自定义压缩个数输出:
pg_dump -h localhost -p 5432 -U someuser -F c -b -v -t *.pay* -f pay.backup mydb

备份某个database中hr和payroll这两个schema中的所有数据,备份结果以自定义压缩格式输出:
pg_dump -h localhost -p 5432 -U someuser -F c -b -v -n hr -n payroll -f hr_payroll.backup mydb

备份某个database中除了public schema中的数据以外的所有数据,备份结果以自定义压缩格式输出:
pg_dump -h localhost -p 5432 -U someuser -F c -b -v -N public -f all_sch_except_pub.backup mydb

将数据备份为SQL文本文件,且生成的INSERT语句是带有字段名列表的标准格式,该文件可以用于将数据导入到低于当前版本的PostgreSQL或者其他支出SQL的非PostgreSQL数据库中(之所有能够实现这种数据移植过程,是因为标准的SQL文本可以在任何支持SQL标准的数据库中执行):
pg_dump -h localhost -p 5432 -U someuser -F p --column-inserts -f select_tables.backup mydb

注:如果输出文件路径中含空格或者其他可能影响命令行正常处理的字符,请在路径两侧加上双引号,比如:"/path with spaces/mydb.backup"。请注意着在PostgreSQL中是一个通用的原则,即当你不确定某段文本是否能正常处理时,都可以加双引号。

从9.1版本开始支持目录格式选项,该选项会将每个表备份为某个文件夹下的一个单独的文件,这样就解决了以其他备份格式备份时可能存在的单个文件大小超出操作系统限制的问题。该选项是生成多个文件的唯一pg_dump备份格式选项。备份时会先创建一个新目录,然后逐个表将一个gzip格式的压缩文件和一个列出所有包含结构的文件填充到该目录中。如果备份开始时发现指定的目录已存在,那么该命令会报错并退出。
目录格式备份:
pg_dump -h localhost -p 5432 -U someuser -F d -f /somepath/a_directory mydb
从9.3版本开始支持并行备份选项--jobs (-j)。如果将其设定为--jobs=3,则后台会有三个线程并行执行当前备份任务。此选项只有在按目录格式进行备份时才会生效,每个写线程只负责写一个单独的文件,因此一定是输出结果为多个独立的文件时才可以并行。
目录格式并行备份:
pg_dump -h localhost -p 5432 -U someuser -j 3 -Fd -f /somepath/a_directory mydb

2、全部备份采用pg_dumpall

pg_dump进行单个数据库的备份,而pg_dumpall备份一个给出的集群中的每个数据库,同时还确保保留象用户和组这样的全局数据状态。使用方法如下:

pg_dumpall -h 192.168.0.XX  -p 5432 -U postgres > db.out

原文地址:https://www.cnblogs.com/hzy168/p/10293399.html

时间: 2024-08-29 22:14:18

postgreSQL备份数据的相关文章

postgresql恢复数据, 自增处理

postgresql恢复数据, 自增处理 pg中有一个自增类型, serial serial类型会创建一个序列, sequence 使用pg_dump备份数据并不会记录sequence的最大值 在恢复数据时, 序列会重建, 起始值为0 解决这个问题, 要么在pg_dump时指定生成insert语句 insert语句会触发sequence, 理所当然的会将序列最大值恢复 默认是copy csv格式 insert的速度 会比copy慢些 要么手动指定序列最大值 我的做法 drop function

Linux-6.5下 MariaDB-10基于LVM快照的备份数据 详解

理解部分: LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性.LVM可以对分区在线扩容,快照,镜像和条带化,功能非常强大.这篇文章的主题就是其中一个功能--快照. 快照(Snapshot)就是关于指定数据集合的一个完全可用拷贝,该拷贝包括相应数据在某个时间点(拷贝开始的时间点)的映像.快照可以是其所表示的数据的一个副本,也可以是数据的一个复制品: 其实

Linux系统crond、rsync、打包备份数据操作实战

Linux系统crond.rsync.打包备份数据操作实战 前面介绍了系统中定时任务.rsync.打包等各种操作,同时也介绍了实际生产环境中的各类案例,今天我们结合这几种功能做一次实战(备份数据) 一:项目背景 某公司WEB服务器数据非常重要,但是如果硬件出现故障,数据就会丢失,人工备份比较费时费力,因些需要进行相关自动备份,并且要备份至指定的备份服务器上 具体备份内容有: 1.网站站点所有目录及相关文件 2.系统相关的配置文件 3.网站的访问日志文件 具体要求如下:(每天0点备份) 1.WEB

Windows使用robocopy、forfiles备份数据

事件描述: 2016.11.14一早,禅道(bug管理系统)启动不了了.经过一天各种折腾都不能正常启动服务,找到数据库目录和备份目录,都是空的.这是服务器在祝我31岁生日快乐吗,不带这么玩的. 下图为正常状态 下图为启动失败状态 自身存在的问题: 由于心里一直没把禅道放在心上,服务器的备份策略从来没有检查过.也没做过"灾难恢复"的测试.以至于出了问题后才想着去了解这个系统,看官方文档,找数据库目录等. 到现在为止也不知道系统是为什么挂的,挂的同时,数据库文件一点影也没了.只能让测试重新

Oracle数据库备份数据缺失的问题

项目中一直在使用Oracle数据库,由于我之前更多的是关注ORM映射框架,几乎没有关注过Oracle特性的东西,很多东西都不知道,而且项目中换数据库的概率几乎为零,所以有必要好好研究一下Oracle.正所谓,不怕不知道,就怕不知道嘛.不然遇到问题,都不知道从哪里下手. 这两天的Oracle学习,收获不小.前几天测试中遇到很多的稀奇古怪的问题,都被很好的解释了.这里就一个典型的例子谈一谈. 就是在测试阶段,看着经理熟练的操作Oracle的各个指令,内心就已经有了一点不平静.经理就是经理,这都是多少

【原创】MySQL和PostgreSQL 导入数据对比

在虚拟机上测评了下MySQL 和 PostgreSQL 的各种LOAD FILE方式以及时间. 因为是虚拟机上的测评,所以时间只做参考,不要太较真, 看看就好了. MySQL 工具: 1. 自带mysqlimport工具. 2. 命令行 load data infile ... 3. 利用mysql-connector-python Driver来写的脚本. PostgreSQL 工具: 1. pgloader 第三方工具. 2. 命令行 copy ... from ... 3. 利用psyco

mysql数据库种类介绍及 mysqldump备份数据

一  Nosql 指的是非关系型数据库,作为传统关系型数据库的一个有效补充,针对特定场景.以高性能和使用便利为目一 的功能特异化的数据库产品 Nosql特点: Noosql数据库存储不需要固定的表结构 1 他不是否定关系数据库,而是作为关系数据库的一个重要补充 2 Nosql为了高性能高并发而产生的 3 Nosql典型产品memcache(纯内存) 一重启就丢数据 redis(持久化缓存)  持久化缓存 mongodb 二  非关系型数据库种类: 1 键值存储数据库 2 列存储数据库 3 面向文

Vbs 清理备份数据-保留数据量

我们前面文章介绍了,通过vbs脚本对文件进行压缩备份,但是通过计划任务备份的话,备份的数据会越来越多,对于我们的磁盘空间利用来说比较浪费,所以我们又通过以下 脚本进行判断,将多余的备份数据清理, 我们需要将D盘下的backup目录下的备份数据只保留3份,其他的删除. 备份数据脚本见上一篇文章. Set dic = CreateObject("scripting.dictionary") set fso=CreateObject("Scripting.FileSystemObj

怎么恢复用mysqldump备份数据和恢复数据

1.备份: 写一个脚本: !/bin/bash` echo 'dump begin' Now=$(date +%d-%m-%Y--%H:%M:%S) //获取当前时间 File=backup-$Now.sql.gz //组成文件名 mysqldump -u zc_test -pzc_test2016 -h test.rtdream.com --port 3307 --all-databases --single-transaction --routines --add-drop-table --