Postgre SQL   发布时间:2022-05-20  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了PostgreSQL 笔记大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

1.POSTGREsql 完美备份还原

进入到Postgresql下的bin文件夹,会看到不少的exe文件,这就是Postgresql内置的工具了.里面会找到pg_dump.exe.我们实际使用的就是这个.

用法:

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.备份

pg_dump-h164.82.233.54-Upostgresdatabasename>C:\databasename.bak

指令解释:

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

如上面第二条进行备份.

3.恢复

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

指令解释:

  • 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
这个人是Postgresql9.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"

大佬总结

以上是大佬教程为你收集整理的PostgreSQL 笔记全部内容,希望文章能够帮你解决PostgreSQL 笔记所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: