pg_dump 是一个用于备份PostgreSQL数据库的工具.
该工具生成的转储格式可以分为两种,
脚本 : 其中脚本格式是包含许多SQL命令的纯文本格式 (常用)
归档文件: 需要重建数据库就必须和pg_restore工具一起使用
下面按照这两种方式进行备份恢复操作。
环境简介:
操作对象:数据库为xzfb; 表lottu,lottu01
[postgres@oracle2 ~]$ psql -U lottu -d xzfb
psql (9.5.0)
Type "help" for help.
xzfb=> \d+
List of relations
Schema | Name | Type | Owner | Size | Description
--------+---------+-------+-------+------------+-------------
public | lottu | table | lottu | 8192 bytes |
public | lottu01 | table | lottu | 8192 bytes |
(2 rows)
xzfb=> select * from lottu;
v_id | v_name
------+---------
1001 | lottu
1002 | rax
1003 | vincent
1003 | vincent
(4 rows)
xzfb=> select * from lottu01;
id
------
1001
1002
(2 rows)
1. 生成脚本方式来备份,恢复
备份整个数据库xzfb
先介绍-c参数; 相当于是对对象先删除;后创建的功效。
[postgres@oracle2 ~]$ pg_dump -c -f backup/xzfb.sql xzfb -- 可以替换 pg_dump -c xzfb > ./backup/xzfb.sql
[postgres@oracle2 ~]$ ll
total 36
drwxrwxr-x 2 postgres postgres 4096 Jan 28 14:35 backup
-rwxrwxr-x 1 postgres postgres 2273 Jan 27 14:27 config.sh
drwx------ 19 postgres postgres 4096 Jan 27 16:28 data
drwxrwxr-x 2 postgres postgres 4096 Jan 28 00:00 log
-rwxrwxr-x 1 postgres postgres 930 Jan 27 16:45 lottu.sh
-rw-rw-r-- 1 postgres postgres 5087 Jan 27 16:40 master.log
-rwxrwxr-x 1 postgres postgres 797 Jan 27 12:57 remove.sh
-rwxrwxr-x 1 postgres postgres 2043 Jan 27 16:35 start.sh
[postgres@oracle2 ~]$ cd backup
[postgres@oracle2 backup]$ ll
total 8
-rw-rw-r-- 1 postgres postgres 1571 Jan 28 14:35 xzfb01.sql
-rw-rw-r-- 1 postgres postgres 1964 Jan 28 14:41 xzfb.sql
恢复整个数据库xzfb ;由于备份的是脚本;可以直接psql执行即可。
[postgres@oracle2 ~]$ dropdb -U postgres xzfb
[postgres@oracle2 ~]$ createdb -U postgres -O lottu -D lottu -e xzfb
CREATE DATABASE xzfb OWNER lottu TABLESPACE lottu;
[postgres@oracle2 ~]$ psql -U lottu -d xzfb
psql (9.5.0)
Type "help" for help.
xzfb=> \d
No relations found.
从这里可以看出xzfb库已经删除了已创建;里面是没有表关联现在执行 psql -U lottu -d xzfb < ./backup/xzfb.sql 进行恢复
[postgres@oracle2 backup]$ psql -U lottu -d xzfb < xzfb.sql
进入数据库可以看到数据已经回来了
[postgres@oracle2 backup]$ psql -U lottu -d xzfb
psql (9.5.0)
Type "help" for help.
xzfb=> \d
List of relations
Schema | Name | Type | Owner
--------+---------+-------+-------
public | lottu | table | lottu
public | lottu01 | table | lottu
(2 rows)
xzfb=> select * from lottu;
v_id | v_name
------+---------
1001 | lottu
1002 | rax
1003 | vincent
1003 | vincent
(4 rows)
对 表的数据也可以这样恢复;这里不简介了;大家备份的脚本可以查看下;里面就是在psql能运行的脚本。
2. 备份格式为 归档文件的备份,恢复
首先介绍下
参数-F: p(plain): 纯文本格式的SQL脚本文件(缺省)。c(custom): 输出适合于pg_restore的自定义归档格式。 这是最灵活的格式,它允许对装载的数据和对象定义进行重新排列。这个格式缺省的时候是压缩的。t(tar): 输出适合于 pg_restore的tar归档文件。使用这个归档允许在恢复数据库时重新排序和/或把数据库对象排除在外。同时也可以在恢复的时候限制对哪些数据进行恢复。
[postgres@oracle2 ~]$ pg_dump -U postgres -Fc xzfb > ./backup/xzfb02.dump --备份
[postgres@oracle2 ~]$ dropdb -U postgres xzfb --删库操作
[postgres@oracle2 ~]$ createdb -U postgres -O lottu -D lottu -e xzfb --建库操作
[postgres@oracle2 ~]$ pg_restore -U postgres -d xzfb ./backup/xzfb02.dump > ./backup/dump01.log 2>&1 --恢复操作
[postgres@oracle2 ~]$ psql -U lottu -d xzfb
psql (9.5.0)
Type "help" for help.
xzfb=> \d
List of relations
Schema | Name | Type | Owner
--------+---------+-------+-------
public | lottu | table | lottu
public | lottu01 | table | lottu
(2 rows)
xzfb=> select * from lottu;
v_id | v_name
------+---------
1001 | lottu
1002 | rax
1003 | vincent
1003 | vincent
(4 rows)
恢复OK;恢复详细步骤看./backup/dump01.log内容;
跟上面备份,恢复没什么两样
[postgres@oracle2 ~]$ pg_dump -U postgres -Ft xzfb > ./backup/xzfb03.tar
[postgres@oracle2 ~]$ pg_restore -U postgres -d xzfb ./backup/xzfb03.tar > ./backup/dump02.log 2>&1
参考文献:对pg_dump参数详解:
- Linux下MySQL的简单操作
Linux下MySQL的简单操作 更改mysql数据库root的密码 首次进入数据库是不用密码的: [root@localhost ~]# /usr/local/mysql/bin/mysql -ur ...
- x01.MagicCube: 简单操作
看最强大脑,发现魔方还是比较好玩的,便买了一个,对照七步还原法,居然也能成功还原. 为什么不写一个魔方程序呢?在网上找了找,略作修改,进行简单操作,还是不错的,其操作代码如下: protected o ...
- js简单操作Cookie
贴一段js简单操作Cookie的代码: //获取指定名称的cookie的值 function getCookie(objName) { var arrStr = document.cookie.spl ...
- GitHub学习心得之 简单操作
作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 前言 本文对Github的基本操作进行了总结, 主要基于以下文章: http://gitre ...
- Linq对XML的简单操作
前两章介绍了关于Linq创建.解析SOAP格式的XML,在实际运用中,可能会对xml进行一些其它的操作,比如基础的增删该查,而操作对象首先需要获取对象,针对于DOM操作来说,Linq确实方便了不少,如 ...
- Linux 中 Vi 编辑器的简单操作
Linux 中 Vi 编辑器的简单操作 Vi 编辑器一共有3种模式:命名模式(默认),尾行模式,编辑模式.3种模式彼此需要切换. 一.进入 Vi 编辑器的的命令 vi filename //打开或新 ...
- python(pymysql)之mysql简单操作
一.mysql简单介绍 说到数据库,我们大多想到的是关系型数据库,比如mysql.oracle.sqlserver等等,这些数据库软件在windows上安装都非常的方便,在Linux上如果要安装数据库 ...
- ZooKeeper系列3:ZooKeeper命令、命令行工具及简单操作
问题导读1.ZooKeeper包含哪些常用命令?2.通过什么命令可以列出服务器 watch 的详细信息?3.ZooKeeper包含哪些操作?4.ZooKeeper如何创建zookeeper? 常用命令 ...
- ORACLE的安装与网页版创建表空间的简单操作以及PLsql的简单操作
1.oracle的安装: 安装简单易学,在这里不做解释.下载看装包后耐心等待,注意安装目录不要有中文字符,尽量按照指定目录进行安装.安装完成后会占用有大约5g的内存. 如果要卸载oracle,需要用其 ...
随机推荐
- UICollection 重排 和汉字拼音
http://nshint.io/blog/2015/07/16/uicollectionviews-now-have-easy-reordering/ NSMutableString *str = ...
- vmware 共享文件夹 win7 centos6
1. 安装 vmware-tools 1). 右击虚拟机 -- 安装vmware-tools 2). 挂载 mnt /dev/cdrom /mnt 3). yum -y install gcc gcc ...
- maven 一好用的仓库镜像
<mirror> <id>ibiblio.org</id> <name>ibiblio Mirror of http://repo1.maven.org ...
- Lock file left by a different patch, OPatch will not try re-using the lock file.
OPatch在打补丁的过程中被中断,重新执行后报以下错误: UtilSession failed: Lock file left by a different patch, OPatch will n ...
- NET4.5之初识async与await
这是两个关键字,用于异步编程.我们传统的异步编程方式一般是Thread.ThreadPool.BeginXXX.EndXXX等等.把调用.回调分开来,代码的逻辑是有跳跃的,于是会导致思路不是很清晰的问 ...
- 发现前端框架 bui-min.js
http://www.builive.com/apps/default/main.html#menu/code http://www.builive.com/demo/grid-plugin.php# ...
- oracle导sql脚本
在plsql里,新建命令窗口,输入如下命令 @d:\test.sql
- ajax提交含有html数据时的处理方法
这两天在做一个文章内修改的功能,由于前端选用的Extjs控件库,于是就使用Ext.form.HtmlEditor. 在使用ajax提交数据的时候,需要提交包含有html代码的数据.这时候问题就来了,不 ...
- C++之路进阶——bzoj2199(奶牛议会)
F.A.Qs Home Discuss ProblemSet Status Ranklist Contest ModifyUser gryz2016 Logout 捐赠本站 Notice:由于本OJ ...
- 使用streaming window函数统计用户不同时间段平均消费金额等指标
场景 现在餐厅老板已经不满足仅仅统计历史用户消费金额总数了,他想知道每个用户半年,每个月,每天,或者一小时消费的总额,来店消费的次数以及平均金额. 给出的例子计算的是每5秒,每30秒,每1分钟的用户消 ...