postgresql如何备份数据库
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了postgresql如何备份数据库相关的知识,希望对你有一定的参考价值。
参考技术A postgresql中可以使用pg_dump来备份数据库。pg_dump是用于备份PostgreSQL数据库的工具。它可以在数据库正在使用的时候进行完整一致的备份,并不阻塞其它用户对数据库的访问。用法:
pg_dump [选项]... [数据库名字]
一般选项:
-f, --file=FILENAME output file or directory name
-F, --format=c|d|t|p output file format (custom, directory, tar, plain text)
-v, --verbose 详细模式
-Z, --compress=0-9 被压缩格式的压缩级别
--lock-wait-timeout=TIMEOUT 在等待表锁超时后操作失败
--help 显示此帮助信息, 然后退出
--versoin 输出版本信息, 然后退出
示例:
备份数据库,指令如下:
pg_dump -h 164.82.233.54 -U postgres databasename > C:databasename.bak
开始-运行-cmd 弹出dos控制台;然后 在控制台里,进入PostgreSQL安装目录bin下:
cd C:Program FilesPostgreSQL9.0bin
最后执行备份指令:
pg_dump -h 164.82.233.54 -U postgres databasename > C:databasename.bak
指令解释:
pg_dump 是备份数据库指令,164.82.233.54是数据库的ip地址(必须保证数据库允许外部访问的权限哦~),当然本地的数据库ip写 localhost;
postgres 是数据库的用户名;databasename 是数据库名。
> 意思是导出到C:databasename.bak文件里,如果没有写路径,单单写databasename.bak文件名,那么备份文件会保存在C: Program FilesPostgreSQL9.0bin 文件夹里。
推荐学习《Python教程》。
如何备份一些带有数据的表和一些表只有模式 PostgreSQL
【中文标题】如何备份一些带有数据的表和一些表只有模式 PostgreSQL【英文标题】:How to backup some tables with data and some tables only schema PostgreSQL 【发布时间】:2011-07-28 13:59:00 【问题描述】:我想转储一个数据库。
我有三张桌子:
表1 表2 表3
从 table1 我想要架构和数据。
从 table2 和 table3 我只想要架构。
我该怎么做?
【问题讨论】:
“不起作用”不是有效的 PostgreSQL 错误消息。 我使用参数“--inserts”解决了“从标准输入复制”的问题 【参考方案1】:仅从几个表中获取数据:
pg_dump myDatabase --inserts -a -t table1 -t table2 > backup.sql;
pg_dump myDatabase --inserts -a -t seq1 -t seq2 > backupSequences.sql;
参数说明:
-a, --data-only 只转储数据,不转储架构
-t, --table=TABLE 只转储指定的表
--将转储数据作为 INSERT 命令插入,而不是 复制
这就是我想要的:)
谢谢大家!
【讨论】:
请注意,如果您碰巧正在运行 pg -t 参数。您可以使用多个转储命令解决此问题,但解决重建的约束依赖关系是一个问题。【参考方案2】:使用pg_dump,它同时具有仅模式和模式+数据输出。
【讨论】:
以上是关于postgresql如何备份数据库的主要内容,如果未能解决你的问题,请参考以下文章
Postgresql 数据库,如何进行数据备份以及导入到另外的数据库