POSTGRESQL 完美备份还原

1.POSTGRESQL 完美备份还原

进入到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

  • pg_dump 是备份数据库指令,
  • 164.82.233.54是数据库的ip地址(必须保证数据库容许外部访问的权限,若是是本地能够用localhost)
  • postgres 是数据库的用户名;
  • databasename 是数据库名。
  • > 意思是导出到C:\databasename.bak文件里,若是没有写路径,单单写databasename.bak文件名,那么备份文件会保存在PostgreSQL\9.3\bin文件夹里。

如上面第二条进行备份.less

3.恢复工具

psql -h localhost -U postgres -d KunlunApple <  C:\kar.bakpost

指令解释:ui

  • psql是恢复数据库命令
  • 164.82.233.54是数据库的ip地址(必须保证数据库容许外部访问的权限,若是是本地能够用localhost)
  • postgres 是数据库的用户名;
  • databasename 是要恢复到哪一个数据库
  • <   的意思是把C:\databasename.bak文件导入到指定的数据库里

以上全部的是针对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

 

2. POSTGRESQL 开放外网IP访问

打开 pg_hba.conf

修改

host  all  all  0.0.0.0/0   md5

3.windows server 2003安装失败--the database cluster initialisatio

在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.按常规安装便可成功.

 

3.PostgreSQL 始终不能同时接受超过大约 125 个链接


发生这种状况的缘由在于某些 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"的尺寸,具体方法参见微软知识库中的文章。须要注意的是,设置过高的值有可能致使系统没法启动。 

 

4.PostgreSQL 自动备份,并删除10天前的备份文件的windows脚本.

新建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" 

 

相关文章
相关标签/搜索