Articles of postgresql

ubuntu – 获取空文件目录的大小

我正在testing一个平面devise,而不是sql db,它使用一个嵌套的文件目录结构。 首先,我正在考虑将数据存储在文件中,但是每个文件不超过40个符号,所以为什么打开文件的时候可以从文件名中读取所有内容?但是现在我无法find真正的文件存储空间与sql表相比的差异。 我尝试了杜find它总是只显示目录大小和0B的文件.. 有没有办法获得文件的实际大小? 或者至less手动计算,或猜测? 不知道我的云使用的文件系统,我猜ext4 ..操作系统是Ubuntu 14.04 编辑: 从我所了解的回应中,唯一要使用磁盘空间的是目录本身。 那是4Kb的最小值。 每个目录应该有大约300个空文件。 如果一个inode消耗至less256B,将目录膨胀到76.8Kb,但目录仍然只有4Kb。 另一件事我试图找出是SQL表和这个平坦的设置之间的区别。 当我执行 SELECT pg_size_pretty(pg_total_relation_size('table_name')); 在表中有300条logging(而不是一个string的名称是5个字段 – 6 pk:1x ForeignKey,1xCharfield最大20 len,2x FloatField,1x IntegerField)响应说,16Kb大小。 这是postgresql 9.3和django 1.8.6。 将这些数据存储在一个SQL表格和一个空文件的名称之间真的可以有60Kb的差异吗? 或者目录不会由于inode而变得臃肿,我保存12Kb? 如果你想知道为什么我想这么多几kb,设置应该以后可以容纳100K用户与这些空文件或dblogging100x300 ..所以这是一个真正的数据GB的问题.. 🙂

docker群数据库连接重置由对等

我正在运行与docker群的春季启动应用程序,我使用postgres的数据库。 当我将它们都作为docker服务运行时,数据库连接会一直随机失败(正如您可以在时间戳中看到的那样),如日志所示: 2017-10-26T 17:14:15 .200415747Z app-db.1.1ayo6h8ro1og@scw-c2964a | 日志:无法从客户端接收数据:连接重置由对等 2017-10-26T 17:43:36 .481718562Z app-db.1.1ayo6h8ro1og@scw-c2964a | 日志:无法从客户端接收数据:连接重置由对等 2017-10-26T 17:43:56 .954152654Z app-db.1.1ayo6h8ro1og@scw-c2964a | 日志:无法从客户端接收数据:连接重置由对等 2017-10-26T 17:44:17 .434171472Z app-db.1.1ayo6h8ro1og@scw-c2964a | 日志:无法从客户端接收数据:连接重置由对等 2017-10-26T 17:49:04 .154174253Z app-db.1.1ayo6h8ro1og@scw-c2964a | 日志:无法从客户端接收数据:连接重置由对等 我无法理解或发现原因。 我会很感激任何想法。 编辑: 我们意识到,在testing应用程序时,它也会抛出这样的错误: SQLTransientConnectionException:HikariPool-1 – 连接不可用,请求在937517ms后超时 谢谢。

Postgres 9.5-main.pg_stat_tmp:没有这样的文件或目录

几个月前我遇到了这个问题,根据情况不同(因为忘记了细节)的情况下,这里我们再次。 如果你谷歌这个问题有很多类似的post,但没有一个似乎达到了一个令人满意的结论。 除非它只是基于权限,我正在努力看到这一点。 我正在停止并从Debian init.d脚本启动postgres服务,如果需要恢复数据库,将运行该脚本。 它停止没有问题: systemctl stop postgresql 还原操作运行平稳(远程托pipepgbackrest,stanza备份): sudo -u postgres bash -c "pgbackrest –log-level-console=info –stanza=$stanza –delta restore" 然后,启动操作只是挂起,没有debugging或logging生成: systemctl start postgresql 如果我用一个直接调用postgres来replacesystemctl的调用: sudo -u postgres bash -c "/usr/lib/postgresql/9.5/bin/postgres -D /var/lib/postgresql/9.5/main -c config_file=/etc/postgresql/9.5/main/postgresql.conf 我得到以下错误(请忽略时间戳,这只是我正在使用的testing框): 2016-11-03 17:30:27 UTC [2511-3] FATAL: could not open directory "/var/run/postgresql/9.5-main.pg_stat_tmp": No such file or directory 接下来需要指出的是,Postgres 9.5和9.6在系统上并存,而9.6实例通过systemctl调用(启动所有configuration的集群)停止并启动,所以如果是权限的话,为什么要9.5失败? 如果真的需要做的就是创build这个文件,那么我认为没有错误的原因,或者错误也许是红鲱鱼? TEST-RIG-postgres@CIE-4096:/root$ […]

使用DataGrip从外部连接到Postgres RDS

我已经在AWS上设置了Postgres RDS实例。 使其可公开访问,安全组允许内部和外部的所有stream量。 但是我仍然无法从外部networking连接(使用DataGrip)。 连接到jdbc:postgresql://name.abcd.eu-west-1.rds.amazonaws.com:5432 / mydb失败。 主机名.abcd.eu-west-1.rds.amazonaws.com是不知名的。 [08001]连接尝试失败。 我从AWS控制台复制了端点,并使用创build实例时input的用户名和密码。 我究竟做错了什么?

用Postgres和SSLconfigurationHaproxy tcp

我试图configurationHaproxy来反向代理一个postgres服务器。 我必须和客户有沟通。 我无法在haproxy中configurationssl终止(正如我为其他http服务所做的那样),因为它不被支持,所以我在postgres上激活ssl并安装了让我们encryption证书。 在本地networking上,直接访问(没有Haproxy),这是工作正常,但与Haproxy不是。 Haproxy很好的接收连接,但不传递给postgres(使用tcpdump进行检查)。 我激活健康检查(请参阅configuration)来find问题,但现在我得到了健康检查的错误。 Server sql-backend/pg_experimental_server is DOWN, reason: Layer6 invalid response, info: "SSL handshake failure", check duration: 1ms. 0 active and 0 backup servers left. 0 sessions active, 0 requeued, 0 remaining in queue. 所以每当我尝试连接,我得到了(我没有检查相同): ROUTER_IP [05/Nov/2017:23:09:06.193] sql-01 sql-01/<NOSRV> -1/-1/0 0 SC 0/0/0/0/0 0/0 configuration: frontend sql-01 bind *:5432 mode tcp option […]

psql:FATAL:主机“”,用户“root”,数据库“root”,closuresSSL的pg_hba.conf条目

在我们的Linux服务器上,我们有PostgreSQL数据库 当我们键入 – psql -l 我们得到 psql: FATAL: no pg_hba.conf entry for host "[local]", user "root", database "postgres", SSL off 我们需要在/var/lib/pgsql/data/pg_hba.conf中设置以解决这个问题?

如何将postgres结果插入到shellvariables中

我想在variables中设置所有这些语法 su -l postgres -c "psql -c \"CREATE DATABASE graphite WITH OWNER graphite\"" CREATE DATABASE 所以我写了这个 res=$( su -l postgres -c "psql -c \"CREATE DATABASE graphite WITH OWNER graphite\"" ) CREATE DATABASE 但$res是空的 echo $res 我也试图添加" "但没有成功。 如何插入结果 su -l postgres -c "psql -c \"CREATE DATABASE graphite WITH OWNER graphite\"" 到一个shellvariables?

MS-excel不接受postgresql服务器证书

我正在尝试将我的MS-excel连接到postgresql 9.6 首先,它给我错误,它没有所需的库。 所以我下载了ngpsql。 之后,它给了我错误,它不能接受服务器证书。 DataSource.Error: TlsClientStream.ClientAlertException: CertificateUnknown: Server certificate was not accepted. Chain status: A certificate chain processed, but terminated in a root certificate which is not trusted by the trust provider. 所以,我执行了以下步骤。 1 – 获得postgres服务器证书( /etc/ssl/certs/ssl-cert-snakeoil.pem )并将其转换为.crt文件。 2 – 将其复制到我的窗口,并使用此页面在我的窗口上安装证书 http://www.cs.virginia.edu/~gsw2c/GridToolsDir/Documentation/ImportTrustedCertificates.htm 3 – 它说import是成功的。 但是我仍然得到同样的错误。 它说服务器名称在证书中没有提到。 如何制作正确的服务器证书?

如何为phpMyAdmin和phpPgAdminconfigurationFail2ban?

我configuration了Fail2ban禁止所有的ip试图通过SSHlogin到我的服务器,它工作得很好。 现在我想保护“ http://example.com/phpmyadmin/ ”和http://example.com/phppgadmin/ “从stream氓也。 我试图configurationFail2ban禁止所有那些将尝试蛮力MySQL和Postgresql密码(从phpmyadmin和默认的MySQL调用,相同的posgresql)。 为了达到这个目的,我使用了这个configuration的[apache-auth]filter: [apache-auth] enabled = true port = http,https logpath = /var/log/apache*/*error.log 不幸的是,它根本不工作。 即使密码错误,我也可以尝试尽可能多的尝试。

如何创buildPostgreSQL触发器来插入另一列的值?

这是我的情况:我有一个PostgreSQL表用于存储电子邮件地址,有时电子邮件地址包含地址扩展名,如[email protected] ,我想创build一个触发器来存储地址没有扩展到另一列。 SQL列:电子邮件,email_raw(没有地址扩展名)。 我尝试过这个function和触发器,但它不工作: 创build或replacefunctionstrip_addr_extension()RETURNS TRIGGER AS $$ 开始 IF(NEW.email LIKE'%+%')THEN NEW.email_raw:= split_part(NEW.email,'+',1)|| '@'|| split_part(NEW.email,'@',-1); 其他 NEW.email_raw:= NEW.email; 万一; 返回新; 结束; $$ LANGUAGE plpgsql; CREATE TRIGGER maddr_email_raw 之前插入maddr 为每一行 执行过程strip_addr_extension(); 当我插入一个新的logging,它会引发错误: SQL> insert into maddr(email)values('[email protected]'); 错误:函数split_part(bytea,unknown,integer)不存在 LINE 1:SELECT split_part(NEW.email,'+',1)|| '@'|| split_part(NE … ^ 提示:没有函数匹配给定的名称和参数types。 您可能需要添加明确的types转换。 QUERY:SELECT split_part(NEW.email,'+',1)|| '@'|| split_part(NEW.email,'@',-1) CONTEXT:PL / pgSQL函数strip_addr_extension()第4行赋值 有什么问题,我该如何解决? 谢谢。 🙂