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. 【SQL】INTERVAL YEAR TO MONTH 和 INTERVAL DAY TO SECOND

    INTERVAL YEAR TO MONTH: 作为年和月的时间间隔存储 INTERVAL DAY TO SECOND: 作为天.小时.分和秒的时间间隔存储(DAY,HOUR,MINUTE,SECON ...

  2. DNN结构演进History—CNN-GoogLeNet :Going Deeper with Convolutions

    抄袭了一片文章,进行少量修改:http://www.gageet.com/2014/09203.php       作者:Christian Szegedy( google )  刘伟(北卡罗来纳  ...

  3. C# 检测字符串是否为数字

    long n; 1. ], ].All(char.IsDigit); //识别空字符时候 会认为是数字 string str0 = ""; string str1 = " ...

  4. react性能调谐与diff算法

    一个页面其实就相当于是一颗dom树,里面有很多它的子节点,然后你每次去操作一个事件,它都会生成一个虚拟dom,它会跟上一个虚拟dom进行比对,这里运用的算法叫做diff算法,当它找到需要改变的组件的时 ...

  5. android studio: 为现有项目添加C++支持

    刚开始创建项目的时候并没有勾选“include C++ support” 选项: 后期增加步骤: 1.拷贝已有支持C++项目的CMakeLists.txt文件到现有项目的app目录下: 2.在app/ ...

  6. 分别用for循环,while do-while以及递归方法实现n的阶乘!

    分别用for循环,while do-while以及递归方法实现n的阶乘! 源码: package book;import java.util.Scanner;public class Access { ...

  7. java环境搭建心得

     右击此电脑,点击属性, 在打开的电脑系统对话框里发电机i直接点击左侧导航里的[高级系统设置]在打开的电脑系统属性对话框里直接点击下面的[环境变量] 打开环境变量对话框后,直接点击系统变量下面的新建, ...

  8. SVN仓库导入文件

    分两种: 1.导入文件版本库从0开始 (适合新项目) 2.将其他SVN服务器中的版本库导入进来,版本库继承原SVN服务器的(适合SVN版本库迁移) 第一种: #mkdir –p /home/code/ ...

  9. onunload与onbeforeunload事件解析 标签: 浏览器 2017-04-10 09:46 45人阅读 评论(0)

    注:只测试了chrome和IE浏览器的表现情况 onunload事件 //JS Document window.onunload = onunload_message; function onunlo ...

  10. 【2】数据采集 - urllib模块

    python2环境下关于urllib2的使用可以学习这篇文章.本文主要针对python3环境下使用urllib模块实现简单程序爬虫. 链接:https://www.jianshu.com/p/3183 ...