热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

Postgresql数据库管理常见问题

一.Postgresql的小常识1)Postgresql数据库在WINDOWS环境下是以一个进程一个连接的方式来处理连接的。2)Postgresql数据库判断相应的数据库程序是否启动是通过数据库的数据目录中是否存在postgresql.pid文件作为条件,如果存在则认为该数据库程序已经启

一.Postgresql 的小常识

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

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

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

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

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

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

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 足矣。


推荐阅读
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文详细介绍了IBM DB2数据库在大型应用系统中的应用,强调其卓越的可扩展性和多环境支持能力。文章深入分析了DB2在数据利用性、完整性、安全性和恢复性方面的优势,并提供了优化建议以提升其在不同规模应用程序中的表现。 ... [详细]
  • 优化联通光猫DNS服务器设置
    本文详细介绍了如何为联通光猫配置DNS服务器地址,以提高网络解析效率和访问体验。通过智能线路解析功能,域名解析可以根据访问者的IP来源和类型进行差异化处理,从而实现更优的网络性能。 ... [详细]
  • 本文详细分析了JSP(JavaServer Pages)技术的主要优点和缺点,帮助开发者更好地理解其适用场景及潜在挑战。JSP作为一种服务器端技术,广泛应用于Web开发中。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 在计算机技术的学习道路上,51CTO学院以其专业性和专注度给我留下了深刻印象。从2012年接触计算机到2014年开始系统学习网络技术和安全领域,51CTO学院始终是我信赖的学习平台。 ... [详细]
  • 深入理解OAuth认证机制
    本文介绍了OAuth认证协议的核心概念及其工作原理。OAuth是一种开放标准,旨在为第三方应用提供安全的用户资源访问授权,同时确保用户的账户信息(如用户名和密码)不会暴露给第三方。 ... [详细]
  • Valve 发布 Steam Deck 的新版 Windows 驱动程序
    Valve 最新发布了针对 Steam Deck 掌机的 Windows 驱动程序,旨在提升其在 Windows 环境下的兼容性、安全性和性能表现。 ... [详细]
  • PyCharm下载与安装指南
    本文详细介绍如何从官方渠道下载并安装PyCharm集成开发环境(IDE),涵盖Windows、macOS和Linux系统,同时提供详细的安装步骤及配置建议。 ... [详细]
  • Linux 系统启动故障排除指南:MBR 和 GRUB 问题
    本文详细介绍了 Linux 系统启动过程中常见的 MBR 扇区和 GRUB 引导程序故障及其解决方案,涵盖从备份、模拟故障到恢复的具体步骤。 ... [详细]
  • 优化版Windows 10 LTSC 21H2企业版:适用于低内存设备
    此版本为经过优化的Windows 10 LTSC 21H2企业版,特别适合低内存配置的计算机。它基于官方版本进行了精简和性能优化,确保在资源有限的情况下依然能够稳定运行。 ... [详细]
  • 解决Linux系统中pygraphviz安装问题
    本文探讨了在Linux环境下安装pygraphviz时遇到的常见问题,并提供了详细的解决方案和最佳实践。 ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • CMake跨平台开发实践
    本文介绍如何使用CMake支持不同平台的代码编译。通过一个简单的示例,我们将展示如何编写CMakeLists.txt以适应Linux和Windows平台,并实现跨平台的函数调用。 ... [详细]
  • 在Linux系统中配置并启动ActiveMQ
    本文详细介绍了如何在Linux环境中安装和配置ActiveMQ,包括端口开放及防火墙设置。通过本文,您可以掌握完整的ActiveMQ部署流程,确保其在网络环境中正常运行。 ... [详细]
author-avatar
小白也坚强_177
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有