Articles of postgresql

在Linux上使用特定磁盘进行数据库caching

我正在为〜200GB数据库(包括数据和索引)运行Postgres实例。 它位于Google Compute Engine服务器上。 我的磁盘选项是networking块存储或本地SSD。 我想知道是否可以使用本地SSD作为数据库的caching层。 networking块存储是持久的,但是具有相对较慢的读/写和低IOPS。 本地固态硬盘具有高吞吐量读/写和高IOPS,但是实际上是瞬态的并且不能在closures实例的情况下存活。 我想我可以运行两个Postgres实例:networking块存储上的主服务器,以及本地SSD上的只读副本。 但是,就像Linux自动使用可用的RAM作为磁盘caching,我不知道是否可以告诉Linux使用本地SSD作为慢速networking块存储的caching。 有谁知道如何去做呢?

使用postgres后端对pdns进行性能调优

我正在为我的托pipe基础​​架构设置新的DNS服务器。 服务器应作为权威服务器而不是parsing器。 基本设置如下: 两台服务器,运行带有postgres 9.5的PDNS 4.0.4和通用的pdns-postgres后端。 这两个数据库configuration为复制,使用postgres的stream式复制function,效果很好。 然而,performance似乎相当低。 我使用dnsperf工具testing了它,并且每秒获得大约2000个查询。 当使用绑定后端testingpdns安装程序时,我每秒获得大约15000(!)个查询。 所以看来数据库是问题。 这是我到目前为止所尝试的: 禁用stream式复制 通用的postgre性能调整(修改caching大小等) testing辅助服务器的性能是可比的 我意识到postgres后端正在使用预处理语句的事务: postgres@pdns LOG: statement: BEGIN postgres@pdns LOG: execute stmt1504086123588763: SELECT content,ttl,prio,type,domain_id,disabled::int,name,auth::int FROM records WHERE disabled=false and type=$1 and name=$2 postgres@pdns DETAIL: parameters: $1 = 'SOA', $2 = 'example.com' postgres@pdns LOG: statement: COMMIT 这提出了这个问题,如果这可能是performance不佳的原因? AFAIK(但我真的没有数据库的专家),在事务中使用准备好的语句是无用的性能明智的,只提供保护,防止SQL注入,或者我错了吗? 问候 基督教

OpenNMS在centos 6.9上显示以下错误

我在CentOS 6.9上安装OpenNMS 20.X版本 Postgrelsql-9.2 Java 1.8 一切已按照本文档安装https://hostingwikipedia.com/setup-opennms-centos-6/ Java已经与OPENNMS集成,但是当我使用下面的命令重新启动openNMS时,它会显示下面的错误。 [root@localhost ~]# sudo /etc/init.d/opennms start /etc/init.d/opennms: OpenNMS not configured. /opt/opennms/etc/configured does not exist. You need to run the installer to set up the database. In most cases, it is enough to run: /opt/opennms/bin/install -dis For details, see the install guide at: http://www.opennms.org/index.php/QuickStart#Initialize_OpenNMS_and_the_Database [root@localhost ~]# 然后,我重新启动我的postgresql数据库已经很好使用下面的命令 [root@localhost ~]# […]

postgresql不绑定到docker组成的IP

我正在尝试使用docker-compose运行一个postgresql9.5容器(docker 17.06,compose 1.16 compose-file v2): postgis: build: context: ./postgis environment: ALLOW_IP_RANGE: "0.0.0.0/0" healthcheck: test: ["CMD", "nc", "-zv", "localhost", "5432"] interval: 30s timeout: 10s retries: 5 container_name: postgis networks: vpcbr: ipv4_address: 10.10.10.3 我正在使用桥接networking来构build组合 postgresql设置可以在这里find https://github.com/kartoza/docker-postgis 有一个start.sh脚本和set-postgis.sh,那些修改过的pg_hba.conf使用0.0.0.0(接受一切) host all all 0.0.0.0/0 md5 我的postgresql.conf正在监听所有的IP: listen_addresses = '*' 我试图将listen_address设置为10.10.10.3甚至0.0.0.0(?),但似乎没有任何工作,postgresql不会bing到组成的IP,postgresql 只能在本地主机 有什么我可以忽略?

如何在Azure PostgreSQL中创build一个只读用户?

我如何在Azure PostgreSQL中创build一个只读用户? 在我的本地postgres安装,我可以运行这些命令来创build一个只读的用户: CREATE USER spqr1 WITH ENCRYPTED PASSWORD 'password'; REVOKE CONNECT ON DATABASE postgres FROM PUBLIC; CREATE DATABASE mydb; REVOKE CONNECT ON DATABASE mydb FROM PUBLIC; GRANT CONNECT ON DATABASE mydb TO spqr1; \connect mydb REVOKE ALL PRIVILEGES ON SCHEMA public FROM PUBLIC; GRANT USAGE ON SCHEMA public TO spqr1; 当我在Azure PostgreSQL数据库上运行这些命令时,新用户spqr1拥有我不想要的权限:他们可以连接到postgres数据库,并在mydb创build表。 在我的本地机器上,新用户没有这些权限。 在我看来,有一个默认用户azure_superadmin已经授予PUBLIC连接到postgres数据库的权限,以及在任何公共模式中创build表的权限。 […]

如何在同一台机器上访问多个odoo实例上的单个数据库

我想安装Odoo 10 src两个实例,但希望通过两个实例访问相同的一个或多个数据库。 例如。 Database1应该被odoo 1&2同时访问。 原因。 一个实例我需要运行PC,而另一个实例希望通过移动浏览器访问移动支持附加组件。 我要安装两个或更多的实例,但不知道共享postgresql数据库。

postgresql psql:无法连接到服务器:没有这样的文件或目录

首先,我想先说最相关的答案在这里 。 当我尝试运行以下是我得到的: $ sudo -u postgres psql psql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"? 我也可以通过运行下面的第一个命令来确认服务器启动并退出。 下面的第二个命令确认服务器启动但立即退出, $ sudo service postgresql restart $ sudo service postgresql status ● postgresql.service – PostgreSQL RDBMS Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: […]

设置PGDATA自动启动postgres服务器

我想让我的PostgreSQL数据库启动。 但目前需要运行以下内容: 1号航站楼: sudo su – posgresql cd /usr/lib/postgresql/9.6/bin/ ./postgres -D /usr/local/pgsql/data 2号航站楼: $ sudo -u postgres psql 我宁愿只需要运行terminal2,我不确定为什么terminal1没有自动完成。 我可以通过运行确认PGDATA未被设置: $ pg_ctl start -l logfile pg_ctl: no database directory specified and environment variable PGDATA unset Try "pg_ctl –help" for more information. 我在postgres手册中发现了一些有用的说明,我应该把/usr/local/pgsql/bin/pg_ctl start -l logfile -D /usr/local/pgsql/data到/etc/rc.d/rc.local或/etc/rc.local但在Ubuntu 16.04上都不存在这些目录。 我觉得我错过了一个简单的命令来设置PGDATA,这将自动启动我的服务器。 但是我不知道它是什么或者我应该存储这个命令的文件。

Postgres连接速度慢

Ubuntu服务器上的Postgres 9.5。 通过公共互联网从Mac连接。 连接和执行某些操作(如列表数据)需要永久(如10-30秒)。 Postgres正在监听所有接口(一个IP4和一个IP6)。 连接SSL和密码。 (使用或不使用SSL缓慢)。 我试着把log_hostname = off。 这没有帮助。 从服务器运行nslookup是快速和正确的。 这怎么会麻烦?

CREATE EXTENSION postgis使用/usr/lib/libgdal.so.1失败:undefined symbol:sqlite3_column_table

问题: postgres=# CREATE EXTENSION postgis; LOG: statement: CREATE EXTENSION postgis; ERROR: could not load library "/usr/lib/postgresql/9.5/lib/rtpostgis-2.3.so": /usr/lib/libgdal.so.1: undefined symbol: sqlite3_column_table_name` 我做了什么: 新增Postgres官方PPA – http://apt.postgresql.org/pub/repos/apt xenial-pgdg/main 安装Postgis – sudo apt-get install postgresql-9.5-postgis-2.3 我也卸载libgdal和它的依赖( sudo apt-get remove –purge libgdal1i ),然后像上面那样重新安装postgis 。 还是一样的错误。 我在一个VirtualBox中安装了干净的Ubuntu,并安装并运行正常。 版本: Ubuntu – Ubuntu 16.04.3 LTS Postgres – 9.5.9-1.pgdg16.04 + 1 Postgis – 2.3.3 […]