Questions tagged «postgresql»

PostgreSQL的所有版本。如果该上下文很重要,请添加其他特定于版本的标记,例如postgresql-11。

2
PostgreSQL检查点会发生什么?
这是我的检查点日志的一部分: 2014-03-26 11:51:29.341 CDT,,,18682,,532854fc.48fa,4985,,2014-03-18 09:15:24 CDT,,0,LOG,00000,"checkpoint complete: wrote 15047 buffers (1.4%); 0 transaction log file(s) added, 0 removed, 30 recycled; write=68.980 s, sync=1.542 s, total=70.548 s; sync files=925, longest=0.216 s, average=0.001 s",,,,,,,,,"" 2014-03-26 11:56:05.430 CDT,,,18682,,532854fc.48fa,4987,,2014-03-18 09:15:24 CDT,,0,LOG,00000,"checkpoint complete: wrote 16774 buffers (1.6%); 0 transaction log file(s) added, 0 removed, 31 …
22 postgresql 

5
PostgreSQL:如何仅从数据库备份一个模式并在另一台服务器上还原它
我有一个名为“ A”的数据库,其中有两个模式“ B”和“ C”。我想在另一台服务器上备份和还原架构“ B”吗?不知道该怎么做,因为我是Postgres的新手。我是否必须在名称为“ A”的新服务器上创建新的数据库,然后在其上还原模式“ B”。请帮助命令。 --- 来自对彼得回答的评论的信息: 我想备份和还原架构“ B” +数据。其次,我忘了提到在Ubuntu 12.04上运行的Postgresql 9.1

2
当数据“自然可分区”时,跨机器对PostgreSQL进行分区的现代方法是什么?
此问题是从Stack Overflow 迁移而来的,因为可以在Database Administrators Stack Exchange上回答。 迁移 7年前。 在进入“ NoSQL”领域几年后,现在我遇到了一个本质上非常“关系”的问题。今天,我看到的数据存储区与以往完全不同。诸如Riak之类的事情以一种无法忍受的单点故障,“需要维护的停机”之类的方式宠坏了我。当然,(或者我希望),我还没有完全失去理智。这是一个个人项目,尚未(或尚未)有很高的要求。 大多数分片解决方案都没有给我我想要的东西(至少乍一看),可能是因为我的问题很“容易”解决。至少在概念层面(忽略RDBM本身带来的限制)。 我有少量的“共享”数据,可以自由复制。它没有硬一致性的要求。可以将其存储在类似发电机的数据库中,并且可以无限扩展。但是,如果可能的话,我仍然想使用一个数据库。 我有很多“每用户”数据。那就是-很多用户,每个用户拥有绝对合理大小的数据,确实适合存储在单个PostgreSQL节点上。我们正在谈论的最多是数千条记录。 我永远不需要查询跨用户,也不需要跨用户原子性。 这听起来非常容易实现。至少当我用“ NoSQL眼睛”看时。 这是我幼稚的入门想法: 在极端情况下,我可以将整个用户序列化为Riak中的单个键/值。当然,对数兆字节的数据进行持续的反序列化会很慢,这就是我考虑使用PostgreSQL的原因。很多Riak K / V都是不行的,因为我需要每个用户数据内的原子性/事务性。 我可以为每个用户使用一个SQLite数据库,并使用GlusterFS之类的文件来实现冗余/可用性。如果我无法使用PostgreSQL找到同样好的东西,这可能就是我要选择的解决方案。优点:可以很好地缩小/放大比例;缺点:我比SQLite更喜欢PostgreSQL的类型和严格性 因此,理想情况下,我将从PostgreSQL分片解决方案中请求什么: 自动在每个用户的数据(在不同的计算机上)周围保留几个副本。能够按用户/分片动态切换主节点(如果先前的主节点出现故障)。 通过添加/删除服务器节点,可以动态放大/缩小规模。通常就像Riak一样能够做到。 不需要我的应用程序知道与哪些节点以及何时与之对话。

1
如何使用pgAdmin3连接到Ubuntu上的远程PostgreSQL数据库?
我正在尝试在Ubuntu计算机上设置PostgreSQL数据库。我希望能够使用pgAdmin3从远程计算机访问它。我该如何设置? 我已经使用以下命令在Ubuntu上安装了PostgreSQL数据库: sudo apt-get install postgresql 我/etc/postgresql/9.1/main/pg_hba.conf有这行: host all all all password 因此它应该接受来自所有IPv4地址的连接,并且应该以明文形式发送密码(这是出于开发原因)。 如果运行此命令以查看正在运行的服务: sudo netstat -tulpn 我可以看到这些行,这表明PostgreSQL在默认端口上接受连接: tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN 3561/postgres 当我尝试从同一本地网络上的远程计算机连接到该PostgreSQL服务器时,出现以下错误消息: 服务器不听 服务器不接受连接:连接库报告 无法连接到服务器:连接被拒绝服务器是否在主机“ 10.0.1.7”上运行并接受端口5432上的TCP / IP连接? 我用作用postgres户名,没有密码。但我也尝试过使用postgres密码。在本地服务器上,我可以使用以下命令登录: sudo -u postgres psql postgres 如何使用pgAdmin3从远程计算机连接到在Ubuntu上运行的PostgreSQL数据库?

2
如何设置Postgresql数据库以将日期永久显示为“ MDY”
如何在不运行的情况下将数据库设置为将“日期”显示为“ MDY”: SET datestyle = "ISO, MDY"; 每次我尝试访问它?我正在使用Postgresql版本9.1,Ubuntu 12.04。在安装数据库时,我的系统语言环境设置为en_CA.utf8,最近我将其更改为en_US.utf8。 show lc_CTYPE 返回:-> "en_CA.UTF-8" 但 show LC_CoLLATE 返回:-> "en_CA.UTF-8"

1
有没有一种好的方法可以为postgres表中的每个记录运行触发器?
我有一个无法控制某些表设计的系统(通过Slony-I复制),所以我有一系列我们称为“影子表”的系统,在其中我从复制表中提取了一些信息,并将其存储在所需的已处理表单中,同时去除要忽略的记录。 现在,设置新副本后,我运行更新并将其值设置回自身(例如UPDATE tablename SET field=field),以强制触发器运行,但是其中一些表是数百万条记录,并且在增长,并且可能需要30分钟。(然后还有真空)。 有没有更好的方法来触发它,或者有某种方式编写一个函数以使其能够与传入的输入或NEW依赖于调用上下文一起工作?我不愿意保留两个不同的功能,因为我已经看到太多次更新了一个功能,而另一个没有更新。

3
LIKE如何实施?
谁能解释一下LIKE运算符如何在当前数据库系统(例如MySQL或Postgres)中实现?还是让我参考一些解释它的参考文献? 天真的方法是检查每条记录,在感兴趣的字段上执行正则表达式或部分字符串匹配,但是我有一种感觉(希望),这些系统做得更聪明。

3
如何为国际数据库选择排序规则?
我正在设计一个数据库,该数据库将以不同的语言存储数据(使用UTF-8),所以我认为显示查询结果的最佳方法是在查询过程中根据用户的语言对其进行排序(因为不止一种正确的方法),如下所示: SELECT a < b COLLATE "de_DE" FROM test1; 假设这是处理国际数据的正确方法,这是数据库本身的最佳整理方法?PostgreSQL文档说: C和POSIX归类均指定“传统C”行为,其中仅将ASCII字母“ A”至“ Z”视为字母,并且严格按字符代码字节值进行排序。 我认为这是这种情况下的最佳选择,还是我错了? (奖金问题:在查询本身中选择排序规则是否太慢?)。

1
Postgresql的字符大小限制
postgresql中各种数据类型的大小限制是多少?我在某处看到character varying(n),varchar(n) n必须在1到10485760之间。是这样吗? 什么是有效的尺寸character(n),char(n)和text?

1
活动连接数和剩余连接数
我想获取有关一段时间内连接峰值数量的统计信息。 我知道这种pg_stat_activity观点,select count(*) from pg_stat_activity但我认为这种方法不是很聪明。 还有其他视图或表格可以提供我需要的信息吗?

3
在热备用服务器上运行pg_dump?
免责声明:我承认还没有尝试过,但是我不确定我是否知道它是否无法正常工作,所以我想问一下。 我想pg_dumpall从运行流复制的热备用服务器(通过)运行每晚备份作业,以避免将该负载放在主服务器上。我只看到有人遇到过一些麻烦,例如在这里和这里,但很少有指导。只要备份保持一致(应该是一致的),只要备份稍微落后于主数据库就可以。 我的问题是: 我是否真的要这样做,还是应该在主服务器上完成备份?为什么? 在备用数据库上进行转储时,需要哪些设置以及正确使用该过程的步骤?例如,我必须在备份期间停止复制吗?

2
在另一个SELECT的WHERE子句中使用SELECT
我已经在libpq上为PostrgreSQL创建了一个远程应用程序草案。它的性能很好,但是我已经介绍了该应用程序的一般功能。对于我产生的每个最终业务结果,碰巧我调用了40 select子句(通过tcpip)。 我对SQL Server的回忆使我想起尽量减少远程应用程序与数据库之间的交互次数。分析了我的选择之后,我认为可以SELECT使用联接将这个数目减少到3个子句。但是我不记得SELECT在另一个中使用a的结果的语法SELECT。 例如: SELECT * FROM individual INNER JOIN publisher ON individual.individual_id = publisher.individual_id WHERE individual.individual_id = 'here I would like to use the results of a another select' 这另SELECT一种可能是简单的: SELECT identifier FROM another_table WHERE something='something' 这是简化的表格布局,针对不同的item_types减少了很多次...(3种完全不同的类型,因此对3种SQL查询进行了优化)。 table passage id_passage PK business_field_passage bytea table item id_item PK id_passage …

1
为什么NOT IN与包含NULL的集合总是返回FALSE / NULL?
我有一个查询(针对Postgres和Informix),其中NOT IN包含一个子查询,该子查询在某些情况下返回NULL值,导致该子句(和整个查询)无法返回任何内容。 理解这一点的最好方法是什么?我认为NULL这是没有价值的事情,因此并不期望查询会失败,但是显然,这不是正确的思考方式NULL。

2
我可以选择插入同一未提交事务中的数据吗?
也许这是一个愚蠢的初学者问题,但是我在任何地方都找不到答案。我到处都读到关于的信息Transaction Isolation,它解决了并发事务中数据的可见性。我担心的是一次交易中的行为。 如果我开始交易,请插入一些数据,我是否可以立即选择它们-仍在同一但尚未提交的交易中?如果是,在并发事务的情况下,是否可以像上述事务隔离那样以类似的方式更改此行为? 具体来说,我的目标是PostgreSQL 9.4。

3
在PostgreSQL中,是否存在类型安全的first()聚合函数?
完整问题重写 我在寻找First()聚合函数。 在这里,我发现了几乎可行的方法: CREATE OR REPLACE FUNCTION public.first_agg ( anyelement, anyelement ) RETURNS anyelement LANGUAGE sql IMMUTABLE STRICT AS $$ SELECT $1; $$; -- And then wrap an aggregate around it CREATE AGGREGATE public.first ( sfunc = public.first_agg, basetype = anyelement, stype = anyelement ); 问题在于,当varchar(n)列通过first()函数时,它将转换为简单的varchar(无大小)。尝试以函数RETURNS SETOF anyelement的形式返回查询时,出现以下错误: 错误:查询的结构与函数结果类型不匹配Estado de …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.