我正在使用 docker swarm 运行 Spring Boot 应用程序,并且我使用 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 | 日志:无法从客户端接收数据:对等方重置连接
我无法理解或发现这样做的原因。我很感激任何想法。
编辑:
我们意识到,在测试应用程序时,它也会抛出这样的错误:
SQLTransientConnectionException: HikariPool-1 - 连接不可用,请求在 937517 毫秒后超时
谢谢。
当询问 Gitlab 支持如何在内部部署的 Gitlab 上进行 3TB 备份时,他们回答使用我们的工具来生成 tarball。
这在所有层面上对我来说都是错误的。这个 tarball 包含 postgres 转储、docker 图像、repo 数据、GIT LFS 等配置等等。将 TB 的静态数据与 KB 非常动态的数据一起备份是不正确的。然后是问题,我们想每小时做一次备份。
题
我真的很想从其他人那里知道他们是如何做到的,以获得一致的备份。
Linux 上的 ZFS 对我来说没问题,如果这是解决方案的一部分。
我们每晚使用 pg_dump 来制作数据库的快照。我们用一个简单的命令就做了很长时间
pg_dump -Fc database_name
这大约需要一个小时,并生成一个 30+GByte 的文件。
我们怎样才能加快速度?
stackoverflow 指出我“属于服务器故障”,所以交叉发布。
我对 PostgreSQL 没有一个好的 Linux GUI 管理和开发工具感到沮丧。
与仅限 Windows 的 PostgreSQL Maestro 和 EMS PostgreSQL 管理器相比,pgAdmin III 是有缺陷且无法使用的……嗯,软件。
phpPgaAmin 看起来并不乐观。
EMS PostgreSQL 管理器可以在 Wine 下工作,但这样的设置有很多问题。
要求是:
等等。
有任何想法吗?
postgresql linux database-administration graphical-user-interface
正如标题所指出的,当我尝试使用 PostgreSQL 从命令行连接到 PostgreSql 数据库时出现此错误。
客户端机器是 Ubuntu 11.10 x86_64 并且 PostgreSQL 库来自版本 9.1
服务器是 PostgreSql 8.3。
这是我执行的命令:
psql -U postgres -d my_database -h 192.168.0.161 -p 5432 -c "select * from xxyy"
Run Code Online (Sandbox Code Playgroud)
当我使用sudoor时,我得到了相同的结果su postgres。
可悲的是,我可以毫无问题地使用pgAdmin.
任何提示?
我已经使用PostgreSQL的文档来设置它,例如这个配置:
>>> cat /proc/meminfo
MemTotal: 16345480 kB
MemFree: 1770128 kB
Buffers: 382184 kB
Cached: 10432632 kB
SwapCached: 0 kB
Active: 9228324 kB
Inactive: 4621264 kB
Active(anon): 7019996 kB
Inactive(anon): 548528 kB
Active(file): 2208328 kB
Inactive(file): 4072736 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 0 kB
SwapFree: 0 kB
Dirty: 3432 kB
Writeback: 0 kB
AnonPages: 3034588 kB
Mapped: 4243720 kB
Shmem: 4533752 kB
Slab: 481728 kB
SReclaimable: 440712 kB
SUnreclaim: 41016 kB
KernelStack: 1776 kB …Run Code Online (Sandbox Code Playgroud) 您将如何检查您的 postgresql 数据库实例是否需要更多 RAM 内存来处理其当前工作数据?
我正在为某些任务构建 Bash 脚本。其中一项任务是从同一个 bash 脚本中创建一个 MySQL 数据库。我现在正在做的是创建两个变量:一个用于存储用户名,另一个用于存储密码。这是我的脚本的相关部分:
MYSQL_USER=root
MYSQL_PASS=mypass_goes_here
touch /tmp/$PROY.sql && echo "CREATE DATABASE $DB_NAME;" > /tmp/script.sql
mysql --user=$MYSQL_USER --password="$MYSQL_PASS" < /tmp/script.sql
rm -rf /tmp/script.sql
Run Code Online (Sandbox Code Playgroud)
但是总是收到一个错误,说没有密码的用户 root 访问被拒绝,我做错了什么?我需要为 PostgreSQL 做同样的事情。
在 Postgres 中,我在名为 的数据库中创建了下表testing:
CREATE TABLE category_google_taxonomy (
category_id integer references category ON UPDATE CASCADE ON DELETE CASCADE,
google_taxonomy_id integer references google_taxonomy ON UPDATE CASCADE ON DELETE CASCADE
);
Run Code Online (Sandbox Code Playgroud)
当我尝试填充表格时:
INSERT INTO category_google_taxonomy (category_id, google_taxonomy_id) VALUES
(1,7),
(2,12);
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
ERROR: permission denied for schema public
LINE 1: SELECT 1 FROM ONLY "public"."category" x WHERE "category_id"...
^
QUERY: SELECT 1 FROM ONLY "public"."category" x WHERE "category_id" OPERATOR(pg_catalog.=) $1 FOR SHARE OF x
Run Code Online (Sandbox Code Playgroud)
我读了一点,最终ALL PRIVILEGES出于愤怒而同意,但它仍然不起作用:
testing=# GRANT ALL …Run Code Online (Sandbox Code Playgroud) 我试图在 Postgres 中设置只读用户,但他们无法登录。我不确定下一步要采取什么措施来解决这个问题。
当我尝试以用户 XXXX 登录时,出现错误 - psql: FATAL: password authentication failed for user "XXXX"
查看日志文件,我看到以下几行:
< 2014-05-20 10:22:24.830 NZST >FATAL: password authentication failed for user "XXXX"
< 2014-05-20 10:22:24.830 NZST >DETAIL: Connection matched pg_hba.conf line 104: "host DATABASENAME XXXX 10.0.0.0/8 md5"
Run Code Online (Sandbox Code Playgroud)
当然,我已经尝试重置密码 - 多次,但无济于事。我试过从 md5 更改为密码,但没有用。有趣的是,将身份验证机制设置为“信任”确实有效。
我正在使用 Postgres 9.3。
我无法删除此用户来重置它 - 我收到错误消息“错误:无法删除角色“XXXX”,因为某些对象依赖于它详细信息:数据库 DATABASENAME 的权限”
如果我创建一个新用户,该新用户连接到数据库就没有问题。(我在 pg_hba.conf 中复制了相应的行并修改了用户名)
发出命令“将 DBNAME 上的所有内容授予 XXXX”似乎没有任何区别。
当我执行 \ddp 命令时,我得到
Default access privileges
Owner | Schema | Type | Access privileges
----------+--------+----------+-------------------
postgres | public …Run Code Online (Sandbox Code Playgroud)