PG提供物理备份和逻辑备份(本篇主要讲逻辑备份)
物理备份:WAL热备份
逻辑备份:pg_dump,pg_dumpall,恢复时pg_restore

查看帮助命令:

pg_dump --help

跟MySQL本分以及参数比较像(大小写敏感)

由于我的是用的pgsql操作系统,超级用户本地登录,省略了-h 主机IP 以及-U 用户名

1、备份test 数据库
pg_dump test >testdb.sql 跟MySQL一样,生成的是sql文件

比如我把test数据库恢复成testbak数据库
create database testbak encoding UTF8;
[pgsql@node2 ~]$ psql testbak < /home/pgsql/test.sql
SET
SET
SET
SET
SET
set_config
------------

(1 row)

跟mysql 很类似。

也可以指定格式的备份成*.dmp文件

[pgsql@node2 ~]$ pg_dump -Fc -Upgsql test > testpgsql.dmp

恢复

create database test encoding UTF8;

[pgsql@node2 ~]$ pg_restore -d test testpgsql.dmp

2.想备份psql模式下所有表,但是不包括test2
test=# \d+
List of relations
Schema | Name | Type | Owner | Size | Description
--------+--------------+----------+-------+------------+-------------
pgsql | blog | table | pgsql | 8192 bytes |
pgsql | persons | table | pgsql | 8192 bytes |
pgsql | students | table | pgsql | 8192 bytes |
pgsql | test_view | view | pgsql | 0 bytes |
pgsql | testtab01 | table | pgsql | 211 MB |
public | capitals | table | pgsql | 8192 bytes |
public | cities | table | pgsql | 8192 bytes |
public | duty | table | pgsql | 16 kB |
public | example | table | pgsql | 0 bytes |
public | non_capitals | table | pgsql | 8192 bytes |
public | products | table | pgsql | 8192 bytes |
public | t | table | pgsql | 0 bytes |
public | t1 | table | pgsql | 16 kB |
public | t2 | table | pgsql | 16 kB |
public | t_id_seq | sequence | pgsql | 8192 bytes |
public | test1 | table | pgsql | 20 MB |
public | test2 | table | pgsql | 8192 bytes |
public | weather | table | pgsql | 8192 bytes |
(18 rows)

[pgsql@node2 ~]$ pg_dump -t 'pgsql.t*' -T psql.t2 test > pgsqltest.sql

备份所有数据库test 对象,不包括duty
[pgsql@node2 ~]$ pg_dump -T 'pgsql.duty' test > noduty.sql

在192.168.211.152 上备份,恢复到 192.168.211.154:
test=# create database hl;
CREATE DATABASE

[pgsql@node2 ~]$ pg_dump -h 192.168.211.152 -Upgsql test -Fc > remote_test.dmp
[pgsql@node2 ~]$ ls -lh
total 445M
-rw------- 1 pgsql pgsql 854 Apr 13 23:52 logfile
-rw-rw-r-- 1 pgsql pgsql 80M Jun 12 23:16 noduty.sql
-rw-rw-r-- 1 pgsql pgsql 75M Jun 12 23:14 pgsqltest.sql
-rw-rw-r-- 1 pgsql pgsql 106M Jun 12 23:26 remote_test.dmp
-rw-rw-r-- 1 pgsql pgsql 106M Jun 12 23:06 testpgsql.dmp
-rw-rw-r-- 1 pgsql pgsql 80M Jun 12 22:54 test.sql

testbak=# create database test;
CREATE DATABASE
[pgsql@node2 ~]$ pg_restore -h 192.168.211.152 -Upgsql -C -d test remote_test.dmp
-c, --clean clean (drop) database objects before recreating
-C, --create create the target database

最后,要讲备份的 remote_test.dmp的数据重新加载到一个不是新建的不同名称的数据库 remote中,可以使用下面命令:

createdb -T template0 remote;
pg_restore -d remote remote_test.dmp

从template0而不是template1 创建数据库,确保干净,没有使用-C,而是直接恢复到remote数据库上。

postgresql 备份(pg_dump,pg_restore)的更多相关文章

  1. PgSql备份pg_dump与还原手记pg_restore

    真没有想到,以前一直是PostgreSQL使用者,突然需要库移植又成了头一招了!原来它与mysql命令行操作区别还挺大.不用怕,但绝对要细心,因为数据库操作是网站的核心,一旦出现损坏或丢失,后果就非常 ...

  2. PgSql备份pg_dump与还原手记pg_restore(转)

    可以直接跳转至最后面的示例进行查看 真没有想到,以前一直是PostgreSQL使用者,突然需要库移植又成了头一招了!原来它与mysql命令行操作区别还挺大. 不用怕,但绝对要细心,因为数据库操作是网站 ...

  3. PgSql备份pg_dump与还原手记pg_restore(转)可以直接跳转至最后面的示例进行查看

    PgSql备份pg_dump与还原手记pg_restore(转) 可以直接跳转至最后面的示例进行查看 真没有想到,以前一直是PostgreSQL使用者,突然需要库移植又成了头一招了!原来它与mysql ...

  4. 总结:PgSql备份pg_dump与还原pg_restore

    备份还原方法:pg_dump和pg_restore,先仔细说明这两个命令,再记录我的操作方法. 远程复制scp: #which scp  /usr/bin/scp #rpm -qf /usr/bin/ ...

  5. PostgreSQL备份

    备份与恢复 postgresql自带了两个备份工具: pg_dump:可备份一个指定的database pg_dumpall:可一次性备份所有database数据以及系统全局数据  使用pg_dump ...

  6. postgresql使用pg_dump和pg_restore 实现跨服务器的数据库迁移或备份

    因为业务需求,需要将服务器上的postgre多个数据库的数据整个库得迁移到另一个postgre数据库上. 一般表较少时,会使用postgre 的copy to 和 copy from 命令就能完成表的 ...

  7. PostgreSQL 备份和恢复

    备份和恢复有三种不同的基本方法来备份PostgreSQL数据SQL转储文件系统级备份File system level backup连续归档 1. SQL转储 pg_dump dbname > ...

  8. postgresql备份和恢复

    备份: pg_dump -d m3vg -h localhost -p 5432 -U delta -W -f 1024.dump -F tar 恢复: pg_restore -h localhost ...

  9. PostgreSQL 备份

    # WAL日志: # 我们对数据库的增删改查创建之前先是将sql语句记录在WAL日志中, # 只有日志记录刷新到磁盘后,才能写入数据库文件. # 遵从这个过程,不需要在每个事务提交时都刷新数据页到数据 ...

随机推荐

  1. javascript 基础知识点

    NaN; // NaN表示Not a Number,当无法计算结果时用NaN表示 Infinity; // Infinity表示无限大,当数值超过了JavaScript的Number所能表示的最大值时 ...

  2. 完全掌握vuex

    公司项目中大量的使用了vue,感觉对vue知识的掌握也越来越熟练了,录制视频教程也让我受益匪浅,自己成长的同时,我更希望帮助其他前端小伙伴一起成长.这篇文章我们主要讲解vuex. vuex是一个专门为 ...

  3. 团体程序设计天梯赛-练习集-L1-039. 古风排版

    L1-039. 古风排版 中国的古人写文字,是从右向左竖向排版的.本题就请你编写程序,把一段文字按古风排版. 输入格式: 输入在第一行给出一个正整数N(<100),是每一列的字符数.第二行给出一 ...

  4. kvm迁移

    一.迁移简介 迁移:      系统的迁移是指把源主机上的操作系统和应用程序移动到目的主机,并且能够在目的主机上正常运行.在没有虚拟机的时代,物理机之间的迁移依靠的是系统备份和恢复技术.在源主机上实时 ...

  5. esp32(M5STACK)程序烧写(Ubuntu)

    由于我们的开发环境在Ubuntu上,所以介绍一下如何在Ubuntu上烧写esp32的程序 首先下载esptools   pip install esptool           擦除 sudo es ...

  6. 使用for或while循环来处理处理不确定页数的网页数据爬取

    本文转载自以下网站: Python For 和 While 循环爬取不确定页数的网页  https://www.makcyun.top/web_scraping_withpython16.html 需 ...

  7. python爬虫08 | 你的第二个爬虫,要过年了,爬取豆瓣最受欢迎的250部电影慢慢看

    马上就要过年啦 过年在家干啥咧 准备好被七大姑八大姨轮番「轰炸」了没? 你的内心 os 是这样的 但实际上你是这样的 应付完之后 闲暇时刻不妨看看电影 接下来咱们就来爬取豆瓣上评分最高的 250部电影 ...

  8. python第九周:paramiko多线程、队列

    1.paramiko模块 用处:连接远程服务器并执行相关操作 使用方法: SSHClient:连接远程服务器并执行基本命令 import paramiko #创建SSH对象 ssh = paramik ...

  9. Spring 属性输入和实例化操作_总结

    Spring 之 applicationContext.xml  配置 默认实例化(无参构造) //被实例化对象 package cn.ibbidream.Bean; public class Bea ...

  10. 转载 - kmp next函数 kmp的周期问题,深入了解kmp中next的原理

    出处:http://www.cnblogs.com/wuyiqi/archive/2012/01/06/2314078.html kmp next函数 kmp的周期问题,深入了解kmp中next的原理 ...