标签: postgresql

pg_restore 需要很长时间才能完成。可能是什么问题呢?

pg_restore 需要很长时间才能完成。我已经执行了以下操作

  • service postgresql initdb
  • /etc/init.d/postgresql start
  • 修改/var/lib/pgsql/data/pg_hba.conf后即可使用

    本地所有所有信任

    主机全部 127.0.0.1/32 ident sameuser

    托管所有所有 ::1/128 ident sameuser

  • /etc/init.d/postgresql restart

可能是什么问题呢?

postgresql

4
推荐指数
1
解决办法
1万
查看次数

如何在没有 root 的情况下确定 PostgreSQL 的端口并使其监听端口?

我目前有一个 Python 脚本,需要从 PostgreSQL 数据库获取一些数据。目前它工作正常,但我必须将脚本移动到另一台服务器B。PostgreSQL 数据库将保留在服务器上A

B所以我的 Python 脚本需要从连接到server 的服务器访问 PostgreSQL 数据库A

我尝试过添加host=servera.my.url.de但这给了我

could not connect to server: Connection refused
       Is the server running on host "servera.my.url.de" (141.X.YZ.AB) and
       accepting TCP/IP connections on port 5432?
Run Code Online (Sandbox Code Playgroud)

服务器在吗?

ping servera.my.url.de
PING servera.my.url.de (141.X.YZ.AB) 56(84) bytes of data.
64 bytes from XXXXX (141.X.YZ.AB): icmp_req=1 ttl=58 time=3.76 ms
64 bytes from XXXXX (141.X.YZ.AB): icmp_req=2 ttl=58 time=4.07 ms
64 bytes from XXXXX (141.X.YZ.AB): icmp_req=3 ttl=58 time=5.01 …
Run Code Online (Sandbox Code Playgroud)

postgresql

4
推荐指数
1
解决办法
8341
查看次数

由于另一个服务器进程崩溃而终止连接

我有一个 java 抓取工具,它产生大约 1,500-2,100 个线程,每个线程通过 jdbc 连接到同一个数据库并进行插入。这些螺纹插入的频率很高。

当连接太多时,数据库似乎崩溃了。当所有线程都失去连接时,我总是会产生 210 个线程或连接。以下是在服务器端生成的日志消息。

2015-07-15 20:18:37 UTC [10825-21] LOG:  checkpointer process (PID 13435) was terminated by signal 9: Killed
2015-07-15 20:18:37 UTC [10825-22] LOG:  terminating any other active server processes
2015-07-15 20:18:37 UTC [16836-1] user@db WARNING:  terminating connection because of crash of another server process
2015-07-15 20:18:37 UTC [16836-2] user@db DETAIL:  The postmaster has commanded this server process to roll back the current transaction and exit, because another server process exited abnormally and possibly …
Run Code Online (Sandbox Code Playgroud)

postgresql jdbc

4
推荐指数
1
解决办法
2万
查看次数

如何在 Docker 中在 CentOS 上运行 PostgreSQL?

我跑了centos:7.1.1503然后yum install postgresql。不幸的是,由于 systemd 问题,service postgresql start即使安装后我也无法运行initscripts

Redirecting to /bin/systemctl start  postgresql.service
/usr/sbin/service: line 79: /bin/systemctl: No such file or directory
[root@8109c497195b ~]# yum provides systemctl  
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: centos2.hti.pl
 * extras: centos.komster.pl
 * updates: centos2.hti.pl
systemd-208-20.el7.x86_64 : A System and Service Manager
Repo        : base
Matched from:
Filename    : /bin/systemctl



systemd-208-20.el7_1.2.x86_64 : A System and Service Manager
Repo        : updates
Matched from:
Filename …
Run Code Online (Sandbox Code Playgroud)

postgresql centos systemd docker

4
推荐指数
1
解决办法
7365
查看次数

与本地网络共享 SSH 端口隧道

我已经成功地在本地 linux 服务器上创建了一个到我们的云 postgresql 服务器的 SSH 隧道,使用以下命令:

ssh -N -f -L 5431:localhost:xxxx mycloudserver.com
Run Code Online (Sandbox Code Playgroud)

(其中 xxxx 是远程端口)

使用这个命令我可以通过端口 5431 访问远程 PostgreSQL 数据库,但只能在这个 linux 服务器上。

现在我想与网络上的其他PC“共享”此连接,以便我可以使用ODBC驱动程序连接到linux_server:5431并读取云数据库,而无需在客户端上安装任何SSH软件。使用 iptables 打开端口 5431 不起作用。

iptables -A INPUT -p tcp -s 0/0 --sport 1024:65535 -d 192.168.128.5 --dport 5431 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -s 192.168.128.5 --sport 5431 -d 0/0 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
Run Code Online (Sandbox Code Playgroud)

已经试过了

 ssh -N -f -L 5431:0.0.0.0:xxxx mycloudserver.com
Run Code Online (Sandbox Code Playgroud)

也。隧道已成功构建并在服务器上运行,但我无法“看到”来自客户端的连接。

postgresql linux database odbc ssh-tunnel

4
推荐指数
1
解决办法
7356
查看次数

重启后 /var/run/postgresql 丢失

我设置了 Centos7 机器,但我遇到了 postgres 在重启后无法启动的问题。即使我尝试手动运行该服务,我也会得到

UTC FATAL:  could not create lock file "/var/run/postgresql/.s.PGSQL.5432.lock": No such file or directory
Run Code Online (Sandbox Code Playgroud)

仔细观察,我注意到/var/run/postgresql重新启动后不存在事件。

所以真的有几个问题,因为我在研究中没有找到明确的答案。

/var/run 中的目录是如何以及何时创建的,它是在启动服务时创建的还是什么方式?

什么可能导致此特定问题发生并且在重新启动后不启动 postgres?

我以前从未见过这种行为,尽管平心而论,到目前为止我一直在使用 ubuntu。

谢谢

postgresql centos centos7

4
推荐指数
1
解决办法
8215
查看次数

如何在同一台主机上管理不同版本的PostgreSQL服务器?

我在装有 Ubuntu 14.04 的同一台主机上安装了 PostgreSQL 9.4 和 9.5。我的问题是:

  1. 当我运行时service postgresql start|stop,两个版本都开始/停止。但我想控制做哪一个。
  2. 当我使用psql连接到 PostgreSQL 时,它总是连接到 9.4。但我想控制要做什么服务器。我知道我可以通过不同的端口连接,9.4 为 5432,9.5 为 5433。但我想通过对等身份验证进行连接,即通过 Unix 套接字。

我设法分别为上述两个问题找到了这些线索,但还没有解决我的问题:

  1. 我发现一个命令pg_ctlcluster可以完成这项工作,但我不知道如何指定正确的参数,例如集群名称。我怎么能弄明白?或者你有什么别的办法?
  2. Unix 套接字可以通过unix_socket_directories = '/var/run/postgresql'. 但是两个版本都有相同的配置目录,其中有9.4-main.pg_stat_tmp 9.4-main.pid 9.5-main.pg_stat_tmp 9.5-main.pid不同版本的子目录。当我这样做时psql -h /var/run/postgresql,它只是连接到旧的 9.4 版本。

有人可以帮忙吗?谢谢!

postgresql

4
推荐指数
1
解决办法
5395
查看次数

Ansible:变成两次

我想运行 ansible 以便:

  • 远程用户是“普通”用户

  • ... 谁become的 root 通过sudo来运行一堆任务

  • ... 谁become的 postgres 用户通过su - postgres,从 root 创建一个 PostgreSQL 数据库。

这是 PostgreSQL 世界的典型程序:只能通过sufrom访问的特殊用户root

只有在以 root 身份连接时,才能在 play 中指定 become-ish 参数,因为 CLI 选项会覆盖 play 中定义的任何内容。

除了添加sudo规则或运行之外,是否有更优雅的方法来实现这一目标

command: /usr/bin/su - postgres -c '/bin/createuser -D -R -S myuser

从ansible,告诉它关闭警告?

postgresql ansible ansible-playbook

4
推荐指数
1
解决办法
1827
查看次数

如何从 Google Cloud SQL 调用 pg_dump

我正在寻找一种解决方案来备份我的 Cloud SQL 架构(和 Cloud Storage 文件)。

起初,我尝试使用 Cloud Scheduler 调用 googleapi ( https://cloud.google.com/sql/docs/postgres/import-export/exporting ) 以导出数据库。问题是我需要特定的备份参数,并且需要导出 PostgreSQL 数据库中的特定模式。我的每个客户都有一个模式,我希望能够在不恢复整个数据库的情况下恢复模式。Googleapis 似乎还不支持导出特定模式,这就是我想直接调用 pg_dump 的原因。

在 Cloud SQL 中使用自动备份也存在同样的问题。我无法恢复数据库中的特定架构,并且需要将备份保留至少一个月。

但是,我还没有找到使用云函数等调用 pg_dump 的方法。所以目前我正在考虑使用我自己的 Windows 10 笔记本电脑来调用 pg_dump 并在 Windows 中设置日常任务。我更愿意使用 Google Cloud,而不是我自己的笔记本电脑。

如果有人对如何构建备份基础设施有任何想法,我们将不胜感激。

postgresql backup export google-cloud-sql google-cloud-platform

4
推荐指数
1
解决办法
7458
查看次数

无法将 postgresql_db 模块与 ansible 一起使用

目标服务器:

-bash-4.2$ python -V
Python 2.7.5
-bash-4.2$ pip list | grep psycopg2
psycopg2 (2.8.3)
Run Code Online (Sandbox Code Playgroud)

但如果使用此任务运行 ansible playbook 将失败:

- name: Create repmgr database
  postgresql_db:
    name: repmgr
  become: true
  become_user: postgres
Run Code Online (Sandbox Code Playgroud)

错误:

TASK [db : Create repmgr database] ***************************************************************************
fatal: [192.168.0.1]: FAILED! => {"changed": false, "msg": "Failed to import the required Python library (psycopg2) on db's Python /usr/bin/python. Please read module documentation and install in the appropriate location. If the required library is installed, but Ansible is using the wrong Python …
Run Code Online (Sandbox Code Playgroud)

postgresql python ansible

4
推荐指数
1
解决办法
1万
查看次数