加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

PostgreSQL 笔记

发布时间:2020-12-13 18:18:59 所属栏目:百科 来源:网络整理
导读:1.POSTGRESQL 完美备份还原 进入到Postgresql下的bin文件夹,会看到不少的exe文件,这就是PostgreSQL内置的工具了.里面会找到pg_dump.exe.我们实际使用的就是这个. 用法: 1. cd C:Program FilesPostgreSQL9.3bin2.pg_dump -h localhost -U postgres kar C

1.POSTGRESQL 完美备份还原

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

用法:

1. 
cd C:Program FilesPostgreSQL9.3bin

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文件名,那么备份文件会保存在PostgreSQL9.3bin文件夹里。

如上面第二条进行备份.

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:xxxpostgresql 目录.

右键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:dbpostgresqlbin
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"

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读