进入到Postgresql下的bin文件夹,会看到很多的exe文件,这就是PostgreSQL内置的工具了.里面会找到pg_dump.exe.咱们实际使用的就是这个.linux
用法:sql
1. cd C:\Program Files\PostgreSQL\9.3\bin 2. pg_dump -h localhost -U postgres kar > C:\kar.bak 3. psql -h localhost -U postgres -d KunlunApple < C:\kar.bak
1.开始-运行-cmd 弹出dos控制台,而后进入PostgreSQL安装目录bin下,如上面第一条命令.数据库
2.备份windows
pg_dump -h 164.82.233.54 -U postgres databasename > C:\databasename.bak bash
指令解释:markdown
如上面第二条进行备份.less
3.恢复工具
psql -h localhost -U postgres -d KunlunApple < C:\kar.bakpost
指令解释:ui
以上全部的是针对windows.
Linux:
在linux里依然有效。有一个值得注意的是:若是直接进入PostgreSQL的安装目录bin下,执行命令,可能会出现 找不到pg_dump,psql 的现象,咱们在能够这样:
备份
/opt/PostgreSQL/9.0/bin/pg_dump -h 164.82.233.54 -U postgres databasename > databasename.bak
恢复:
/opt/PostgreSQL/9.0/bin/psql -h localhost -U postgres -d databasename < databasename.bak
打开 pg_hba.conf
修改
host all all 0.0.0.0/0 md5
在windows2003安装失败,报警告,而且没有postgresql服务
problem running post-install step.Installation may not complete correctly
the database cluster initialisation failed
http://forums.enterprisedb.com/posts/list/3984.page
这我的是PostgreSQL 9.3.5
http://my.oschina.net/congqian/blog/135590
这我的是postgresql-windows-9.2.4版本.
都是和权限有关系.
后来咨询了下实施的同事,
1.安装前,若是安装过,请卸载,并删除postgresql的目录
2.安装前,建立好你要安装到的目录,好比 D:\xxx\postgresql 目录.
右键postgresql文件夹,设置user有控制权限
3.安装过程当中,选择Locale选择 chinese singnapore
4.按常规安装便可成功.
发生这种状况的缘由在于某些 PostgreSQL 说依赖的库依赖于 user32.dll ,而 user32.dll 要从"Desktop Heap"中分配内存。"Desktop Heap"用于为每一个登录会话分配内存,每一个非交互式会话大约分配 512KB ,同时每一个 postgres.exe 进程消耗大约 3.2KB 的"Desktop Heap",这样大约 125 链接就差很少能够耗尽所有的"Desktop Heap"空间。不过这种状况不会发生在从命令行运行的场合,由于命令行是交互式登录会话,一般只须要 3MB 大小的"Desktop Heap"就能够了。 http://support.microsoft.com/kb/184802
要解决这个问题,你必须经过修改注册表中的 SharedSection 值来增长非交互式"Desktop Heap"的尺寸,具体方法参见微软知识库中的文章。须要注意的是,设置过高的值有可能致使系统没法启动。
新建bat文件,使用如下脚本
@ECHO OFF @setlocal enableextensions @cd /d "%~dp0" SET PGPATH=D:\db\postgresql\bin\ SET SVPATH=E:\DatabaseBackup\ SET PRJDB=dbname SET DBUSR=postgres FOR /F "TOKENS=1,2,3 DELIMS=/ " %%i IN ('DATE /T') DO SET d=%%i-%%j-%%k SET DBDUMP=%PRJDB%_%d%.bak @ECHO OFF %PGPATH%pg_dump -h localhost -U postgres %PRJDB% > %SVPATH%%DBDUMP% echo Backup Taken Complete %SVPATH%%DBDUMP% forfiles /p %SVPATH% /d -5 /c "cmd /c echo deleting @file ... && del /f @path"