PostgreSQL 备份与恢复

PostgreSQL自带一个客户端pgAdmin里面有个备份恢复选项也能对数据库进行备份 恢复还原但最近发现数据库慢慢庞大的时候经常出错备份的文件过程中出错的几率那是相当大手动调节灰常有限。所以一直寻找完美的备份恢复方案。


梦里寻他千百度伊人却在灯火阑珊处...其实PostgreSQL内置不少的工具寻找的备份恢复方案就在其中pg_dumppsql。这两个指令在数据库的安装目录下比如我自己本地安装的路径形如C:\Program Files\PostgreSQL\9.0\然后进入到bin文件夹会看到不少的exe文件这就是PostgreSQL内置的工具了。里面会找到pg_dump.exepsql.exe两个文件。我们怎么用他们


用法

备份数据库指令如下

view plain print ?
  1. pg_dump -h 164.82.233.54 -U postgres databasename > C:\databasename.bak  

开始-运行-cmd 弹出dos控制台然后 在控制台里进入PostgreSQL安装目录bin下

cd C:\Program Files\PostgreSQL\9.0\bin

最后执行备份指令

view plain print ?
  1. pg_dump -h 164.82.233.54 -U postgres databasename > C:\databasename.bak  

指令解释如上命令pg_dump 是备份数据库指令164.82.233.54是数据库的ip地址必须保证数据库允许外部访问的权限哦~当然本地的数据库ip写 localhostpostgres 是数据库的用户名databasename 是数据库名。> 意思是导出到C:\databasename.bak文件里如果没有写路径单单写databasename.bak文件名那么备份文件会保存在C:\Program Files\PostgreSQL\9.0\bin 文件夹里。


恢复数据库指令如下

view plain print ?
  1. psql -h localhost -U postgres -d databasename <  C:\databasename.bak  

指令解释如上命令psql是恢复数据库命令localhost是要恢复到哪个数据库的地址当然你可以写上ip地址也就是说能远程恢复必须保证数据库允许外部访问的权限哦~postgres 就是要恢复到哪个数据库的用户databasename 是要恢复到哪个数据库。<  的意思是把C:\databasename.bak文件导入到指定的数据库里。

以上所有的是针对windows而言的如果在linux下会不会有效



在linux里依然有效。有一个值得注意的是如果直接进入PostgreSQL的安装目录bin下执行命令可能会出现 找不到pg_dumppsql的现象我们在可以这样

备份


view plain print ?
  1. /opt/PostgreSQL/9.0/bin/pg_dump -h 164.82.233.54 -U postgres databasename > databasename.bak  


恢复


view plain print ?
  1. /opt/PostgreSQL/9.0/bin/psql -h localhost -U postgres -d databasename < databasename.bak  


你可能感兴趣的:(备份,PostgreSQL,恢复)