一.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 足矣。
相关推荐
**PostgreSQL数据库驱动详解** PostgreSQL数据库驱动是用于连接和操作PostgreSQL数据库系统的重要软件组件。这个驱动程序允许应用程序与PostgreSQL服务器进行通信,执行SQL查询,读取和写入数据,以及管理数据库的...
在Java编程中,连接PostgreSQL数据库是常见的任务,特别是在开发基于Java的应用程序时。PostgreSQL是一种功能丰富的开源关系型数据库管理系统,它支持多种标准(如SQL:2008),并提供了许多高级特性,比如事务处理、...
本篇文章将详细讲解如何进行PostgreSQL数据库的自动化单机主从部署,以实现数据的安全备份和高可用性。 首先,理解"主从部署"的概念至关重要。主从复制(Master-Slave Replication)是一种常见的数据库高可用解决...
【标题】"postgresql空间数据库NN"涉及的知识点主要围绕PostgreSQL数据库系统以及其在处理空间数据方面的应用。PostgreSQL是一种开源的对象关系型数据库管理系统(ORDBMS),它支持丰富的数据类型,包括支持地理空间...
以下是在医疗领域中MySQL和PostgreSQL数据库应用的详细比较。 首先,目前MySQL 5.7和PostgreSQL 9.6都原生支持JSON数据类型。JSON数据类型在医疗领域变得尤为重要,因为它能够更好地处理病历中的半结构化数据。尽管...
**PostgreSQL数据库** 在信息化社会,数据库是存储和管理数据的核心工具,而PostgreSQL作为一款开源的对象关系型数据库管理系统(ORDBMS),以其强大的功能、稳定性及灵活性深受开发者喜爱。本文将带你从入门到精通...
基于Golang和PostgreSQL数据库的家族管理系统提供了一种高效、安全的方式来存储和检索家族成员信息,同时便于扩展和维护。本文将深入探讨这个系统的核心技术栈和关键设计思路。 首先,Golang(也称为Go)是Google...
VFront是一款功能强大的数据库前端管理工具,专为MySQL和PostgreSQL数据库设计,它采用PHP语言开发,能够提供直观且用户友好的界面,帮助用户轻松执行常见的数据库操作。VFront v0.95c是该软件的一个版本,包含了多...
社区还提供大量的官方和非官方文档,包括FAQ(常见问题解答)和README文件等,帮助用户更好地理解和使用PostgreSQL。 此外,PostgreSQL的稳定性在各种基准测试中得到了验证,例如Wisconsin Benchmark。性能方面,...
8. **日志管理**:日志记录是数据库维护的关键部分,工具可能内置了日志系统,记录所有重要的操作和错误,便于追踪问题和审计。 9. **数据迁移**:在数据库升级或系统迁移时,数据迁移是必不可少的。工具可能支持将...
使用场景及目标:帮助读者从零开始在Linux环境下安装和配置PostgreSQL数据库,并掌握常见的安全配置和优化技巧,提升数据库性能和安全性。 其他说明:本文不仅提供了详细的命令和配置步骤,还解释了每个步骤的目的和...
4. 数据库管理:Postgresql数据库的安装、配置、维护、备份和恢复是数据库管理员必须掌握的技能。了解配置文件 pg_hba.conf 和 postgresql.conf 的设置对于数据库的正常运行至关重要。 5. 高级特性:包括但不限于表...
【PostgreSQL数据库安装与管理】 PostgreSQL是一种开源的关系型...理解这些过程对于管理和维护PostgreSQL数据库至关重要。在实践中,还需要根据具体需求进行调整,例如添加或配置额外的插件,以实现更高级的功能。
### PostgreSQL日常维护、监控、排错、优化 #### 一、SQL审计 ...通过上述知识点的学习和实践,可以有效地提高PostgreSQL数据库系统的稳定性和性能,为企业级应用提供强大的数据支持和服务保障。
标题 "postgresql-9.0.3.rar" 指示我们正在处理PostgreSQL数据库管理系统的一个特定版本,即9.0.3。PostgreSQL是一个开源的关系型数据库系统,以其强大、稳定和灵活的特性受到广大开发者的青睐。这个压缩包可能包含...
这个安装程序是专为在Windows环境中运行PostgreSQL数据库服务器而设计的。 PostgreSQL 的特点和优势: 1. 开源:PostgreSQL 是一款免费的数据库系统,遵循GNU General Public License(GPL)协议,允许用户自由...
本书详细分析了这些常见问题,并提供了预防措施和解决方案,帮助读者识别并消除潜在的性能瓶颈。 #### 3. 资源管理和配置 高效的资源管理对 PostgreSQL 的性能至关重要。书中讲解了如何合理配置数据库服务器的硬件...