【SIYIYE原创】PostgreSQL数据库 使用及贴士(不定期更新)

    • siyiye
      siyiye
      铜牌
      从: 2010.02.26 帖子: 16.489
      收集整理资料,外加自己摸索的一些经验,与大家做个分享

      解决重装PostgreSQL不能安装的方法

      先进入windows里的控制面板,在左上角切换到经典视图,然后点右边的管理工具—>计算机管理—>本地用户和组点开—>用户-->右键点选删除postgres用户,然后就可以重装PostgreSQL了。
      此外,XP的secondary logon服务必须打开
      删除相关服务:http://www.vslan.com/thread-1466-1-1.html


      关闭PostgreSQL后台自动运行减少内存占用

      PostgreSQL常驻系统一般会耗费60M内存空间,下面我教大家一个设置方法。

      右键“我的电脑”-->管理-->服务-->在服务窗口下找到PostgreSQL Database Server,右键,选属性 -->把启动类型这项改为手动。

      PT3软件在启动的时候会自动启动PostgreSQL无需手动启动,但是HM就需要手动启动PostgreSQL了,在开始菜单栏里找到PostgreSQL在它的菜单里有两个控制程序 Start Serviec(启动数据库) 和Stop Serviec(关闭数据库),在你运行HM前先启动数据库再运行HM软件,这样你就可以自己控制PostgreSQL的启动和关闭了,一切都在你的控制之下。
  • 20 回复
    • siyiye
      siyiye
      铜牌
      从: 2010.02.26 帖子: 16.489
      出现:password authentication failed for user "administrator"

      用pgAdmin III建立一个新数据库:



      PostgreSQL 安装报错 Error reading file postgresql.conf 的解决办法

      有老兄用英文写的很清楚了: http://101oio.javaeye.com/blog/481571 Please don't select "default" in locale when you are using no-English version windows, or you will the following error
      所以,在Default local时,请选择Chinese - HongKong这类的。
      Pass:传言data目录默认需要放到NTFS的分区,如果不是,要执行一下 \PostgreSQL\8.4\bin\Initdb.exe
    • siyiye
      siyiye
      铜牌
      从: 2010.02.26 帖子: 16.489
      用pgAdmin III整理PostgreSQL数据库

      选中需要整理的数据库,右键--->维护--->


      确定即可。


      除做vacuum外,还可以删除日志节约空间:
      PostgreSQL的data目录下pg_log文件夹下的log文件都可以删除。

      youus补充:所有带log的目录内的文件,包括pg_clog,pg_log,pg_xlog,注意保留目录。

      这个我没有亲自测试,大家可以自行尝试,但是一定要记得先备份!!!

      只能删除pg_log目录下所有以文本形式保存的所有文件,删除pg_clog和pg_xlog会导致SQL崩溃,血的教训------------shangduan
    • siyiye
      siyiye
      铜牌
      从: 2010.02.26 帖子: 16.489
      Postgresql 数据库维护常见问题

      一.Postgresql 的小常识

      1)Postgresql 数据库在WINDOWS环境下是以一个进程一个连接的方式来处理连接的。

      2)Postgresql 数据库判断相应的数据库程序是否启动是通过数据库的数据目录中是否存在postgresql.pid文件作为条件,如果存在则认为该数据库程序已经启动,当然也因为这样个设计导致不少问题(可能在LINUX下面没有啥问题)。

      3)每次创建一个Postgresqll数据库的时候,如果不指定区域(比如:中国,美国等),会默认的把当前区域信息作为数据库的区域信息。

      二.数据库启动失败的原因

      1.日志信息其中有一段日志内容为:无法创建继承的套接字,错误代码 10022 。之后去检测了是否有程序占用了端口(默认的5432),未找到任何程序占用该端口,也没有发现什么特别的异常,百思不得其解。之后把机器上的360安全卫士包括保险箱都卸载后再次启动数据库成功。

      2.提示和上一个错误同样的日志信息,机器上没有任何的杀毒软件,无奈中想起了是否系统中有错误,用金山清理专家的LSP查看工具查看后的确提示有异常信息,之后恢复到初始状态,再次启动数据库后成功。同事的机器上安装有深信服的VPN程序,后来终于找到了源头,的确是因为该程序修改了LSP。

      另外一个案例:因为客户那边的磁盘一般是FAT32的文件系统,所以我们程序安装时,采用手动安装PostgreSQL的形式安装数据库,但初始化数据库群成功并且成功注册了系统服务后,发现PostgreSQL的服务总是启动不了,提示服务启动又停止了,然后在系统时间查看器里发现报的错误是:Could not create inherited socket, 错误编码为10022

      解决方法:
      运行netsh winsock reset,重启电脑,OK!

      3.日志信息为:没有权限访问...目录。因为当前的数据库启动用户不存在WINDOWS用户信息中,或者有该用户信息但是的确该用户的权限不足来访问该数据库目录等。解决的办法,创建一个postgres用户(WINDOWS用户),并且分配足够的权限来启动数据库;或者使用服务的方式来启动数据库,这样数据库就以SYSTEM的权限启动,对基本的目录都有足够的访问权限。

      4.日志信息大概为:没有找到xxx文件夹[或目录](这个文件夹是数据库的数据目录下一个文件夹)。有时候以为数据库的数据目录里的某个没有文件的文件夹其实是多余的,就把那个文件夹给删除了,之后启动数据库的时候一直无法找到该文件夹,数据库就会一直报错。解决的办法很简单,在数据目录下建一个需要的名称的文件夹即可。

      5.日志信息大概为:已经有一个进程启动。原因是可能由于计算机断电或者postgresql数据库程序被强行关闭的时候导致,由于postgresql数据库判断是否有同一个数据库已经运行是通过该数据库的数据目录下的postgresql.pid文件进行确认的,每次启动数据库都会生成该文件,关闭的时候会删除该文件。所以由于上述问题导致数据库无法启动,只要找到相应的数据库数据目录把该文件删除再启动即可。

      6.数据库程序作为WINDOWS服务启动的时候出现提示:本地计算机上的xxx服务启动又停止了。一些服务自动停止,如果他们没有什么可做的,例如:“性能日志和警报”服务。第一次看到这个提示的时候一头雾水,这个提示根本不知道是什么意思,只好去看数据库的日志文件,发现是作为服务的时候启动数据库中填写的数据库数据目录的地址不正确,一般用命令行启动数据库的时候,如果数据目录和数据库的bin目录在同一个目录下,直接用 start -w -D "../data" 即可启动,但是作为服务的时候,寻找的数据目录是以windows/system32为原始的默认目录,所以必须在创建服务的时候填写数据目录的绝对地址。当然导致启动服务失败提示该不知道所云的信息的原因非常多,基本上查看日志文件即可得到真正的错误信息。

      7.数据库在简体中文版的WINDOWS XP下能启动,在日语或者其它某些语言下无法启动,这个问题也研究了不少时间,最后发现是由于创建数据库的时候的区域是当时创建数据的的区域(中国),但是又不能直接改为日本的区域,postgresql 的帮助文档上说明区域的信息在创建的时候已经被固定了,无法修改,但是又想让创建的一个数据库同时能在多个区域下甚至在多语言版本的WINDOWS下使用,多次尝试后发现创建的时候使用英语版本的语言(英国或者美国的区域)创建的数据库可以在多语言平台下运行。

      8.在WINDOWS 2000 和 2003 下,数据库程序启动还是会失败,提示信息大概为:权限不足。 已经分配了管理员权限的用户给启动Postgresql作为启动用户还是无法解决,经过尝试后发现,启动postgresql使用具有SYSTEM权限的程序启动即可,当然最好的方案是把postgresql作为服务启动,这样问题就解决了。

      三.数据库配置文件的简单配置

      1.CONNECTIONS AND AUTHENTICATION 连接和认证

      1) listen_addresses 默认为'localhost',只有本地的用户可以访问数据库,一般我们都需要设置为 '*',让远程的计算机也可以访问

      2) port 默认为 5432 ,一般不太需要改动

      3)max_connections 允许的最大连接数,在WINDOWS下一般能有100个连接同时连接过来计算机的压力已经是非常大了,所以基本上不需要设置超过100个

      2.RESOURCE USAGE (except WAL) 资源消耗

      1) shared_buffers 共享内存,设置大一点的共享内存有效能提高数据库更新的性能,一般开启128MB或者更大

      3.ERROR REPORTING AND LOGGING 错误报告和日志

      1)log_destination 日志记录方式,一般就用改默认的即可

      2)redirect_stderr 把错误日志重定向到文件中,作为维护的其中一个手段,就是需要获取日志信息,所以最好是设置为 on

      3)log_directory 日志文件的保存目录,可以是绝对路径或者相对路径,相对路径是以数据库的数据目录为标准

      4)log_filename 日志文件名,不仅仅可以按照特定的文件名保存,还可以使用%符号声明随时间而变的文件名。一般建议使用'postgresql-%a.log',这样会记录一周的日志信息,每天一个日志。

      5)log_truncate_on_rotation 这个选项将导致 PostgreSQL 覆盖而不是附加到任何同名的现有日志文件上,有时候我们需要设置为 on , 因为如果不停的创建新的日志文件,将会使得硬盘的空间被极大的消耗,所以需要到配置的时间后重新复写到同名日志文件中。

      6)log_rotation_age 一个日志文件的最大生存期,安装上面的配置这里配置为 1d (一天),这样每一天的内容只在一个文件里保存。

      7)log_rotation_size 一个日志文件的最大日志量。是以日志文件的文件大小作为判断条件,一般设置 10MB 足矣。
    • likejing0731
      likejing0731
      铜牌
      从: 2010.03.23 帖子: 79
      安装完了之后显示Problem running post-install step. Installation may not complete correctly . Failed to start the database server
      请问怎么解决?我是刚刚重做完系统出现的安装错误。数据库是安装上了,但是却连接不上HM,可能是数据库没有安装全?
    • siyiye
      siyiye
      铜牌
      从: 2010.02.26 帖子: 16.489
      楼上请按以下方法解决问题:

      在Default local时,
      安装时,database locale设置不能选default,请选择Chinese或请选择Chinese - HongKong这类的。

      如果安装过程中出现错误,重新安装前需要删除原有的安装路径下内容,否则,会导致重复出错问题
    • caoqx
      caoqx
      铜牌
      从: 2007.08.14 帖子: 23.819
      这样的贴怎么没有置顶? :D
    • pp0618
      pp0618
      铜牌
      从: 2010.04.22 帖子: 111
      hm一直用得好好的。今天开电脑,hm提示:The following error occurred when trying to open the database: Failed to establish a connection to '127.0.0.1'.
      我卸载了所有360的软件,但还是不行。
      进去pgAdmin怎么都启动不了
      昨天晚上还在用,今天一开电脑就不行了,什么原因啊?请问还有什么办法解决啊?
    • siyiye
      siyiye
      铜牌
      从: 2010.02.26 帖子: 16.489
      ls的数据库没起来啊

      能否到“事件查看器”---“应用程序”

      把相关的出错信息贴出来?
    • lovebrood
      lovebrood
      铜牌
      从: 2010.02.28 帖子: 475
      我的数据库有6个G,而且还是在C盘。
      最近在发愁呢。
      我又不想重装系统。
      有没有办法整下?
      盼斑竹回复!
    • ttjjboy
      ttjjboy
      铜牌
      从: 2009.05.31 帖子: 4.205
      pm扩大系统盘size
    • shangduan
      shangduan
      铜牌
      从: 2008.11.29 帖子: 8.498
      原作: lovebrood
      我的数据库有6个G,而且还是在C盘。
      最近在发愁呢。
      我又不想重装系统。
      有没有办法整下?
      盼斑竹回复!
      你把SQL卸了,然后划分一个专区用来安装SQL,再导入牌局就可以了.6G应该没多少万手牌.
      顶多导一天可以导完了.
    • benjamin0711
      benjamin0711
      铜牌
      从: 2008.10.04 帖子: 236
      刚重装了系统。。安装后HM还可以运行。但吃饭的时候就关了。。回来就无法运行了。hm提示:The following error occurred when trying to open the database: Failed to establish a connection to '127.0.0.1'.
      这个问题怎么处理



      现在数据库下栽那个版本?还是8.3那个吗
    • benjamin0711
      benjamin0711
      铜牌
      从: 2008.10.04 帖子: 236
      数据库真的是有问题。。。

      HM无法运行提示。。。突然PT3也无法运行了。同样类似的提示。。

      今天才重的系统。怎么处理解决啊。。。
    • shangduan
      shangduan
      铜牌
      从: 2008.11.29 帖子: 8.498
      原作: benjamin0711
      刚重装了系统。。安装后HM还可以运行。但吃饭的时候就关了。。回来就无法运行了。hm提示:The following error occurred when trying to open the database: Failed to establish a connection to '127.0.0.1'.
      这个问题怎么处理



      现在数据库下栽那个版本?还是8.3那个吗
      360可能把SQL的自动启动服务这个功能给关了,你需要手动启动这个服务

      "开始"->"程序"->"PostgreSQL 8.3"->"启动服务"
    • cynabal
      cynabal
      铜牌
      从: 2011.07.03 帖子: 162
      我在WIN64位的系统里面安装出现了这个问题

      error 1935.An error occurred during the installation of assembly
      'microsoft. VC90.ATL,version="9.0.30729.1",publickeyToken="1fc8b3b9a1e18e3b',processorArchitecture="amd64",type="win32".
      please refer to help and support for more information. HRESULT:0x80070BC9

      求解啊~
    • shangduan
      shangduan
      铜牌
      从: 2008.11.29 帖子: 8.498
      Hi,cynabal

      请你下载Win 64版本的SQL
    • 179353248
      179353248
      铜牌
      从: 2011.11.17 帖子: 133
      the password specified was incorrect . please enter the corret password for the postgres windows user account

      安装SQL后输入密码时出现的
    • ww2824wangwei
      ww2824wangwei
      铜牌
      从: 2010.12.26 帖子: 882
      原作: 179353248
      the password specified was incorrect . please enter the corret password for the postgres windows user account

      安装SQL后输入密码时出现的
      出现这个问题,应该是你的电脑安装过SQL数据库,但是又卸载掉了,但是卸载过后SQL在你的电脑新添加的数据账户没有删除造成的,如果你知道用户名和密码,可以直接登录,如果不知道,在控制面板里的账户选项中删除老的SQL账户就可以了,再次安装的时候就没有这个提示了。
    • patricklove
      patricklove
      铜牌
      从: 2012.05.08 帖子: 21
      原作: shangduan
      原作: benjamin0711
      刚重装了系统。。安装后HM还可以运行。但吃饭的时候就关了。。回来就无法运行了。hm提示:The following error occurred when trying to open the database: Failed to establish a connection to '127.0.0.1'.
      这个问题怎么处理



      现在数据库下栽那个版本?还是8.3那个吗
      360可能把SQL的自动启动服务这个功能给关了,你需要手动启动这个服务

      "开始"->"程序"->"PostgreSQL 8.3"->"启动服务"


      版主你好。。。我出现了一模一样的问题,但是按你说的这样没有解决问题啊。。。。还是不能运行,然后再次点那个启动服务的时候那个对话框一弹就没有了,也不知道什么情况,我还把360都卸载了也不行,求指教了
    • 1
    • 2