我有一个我创建的 postgres 数据库,需要远程部署。从在线阅读我了解到,要做到这一点,我需要修改以下文件:
pg_hba.conf
配置文件
从我读到的我需要修改它们并以某种方式将它们添加到我的数据库中?
我的问题是:
如何修改这两个文件以在线部署数据库?我阅读了文档,但它对我的理解来说太复杂了。(即需要什么以及为什么?)
如何将它们在线添加到我的数据库中?我的想法是创建本地数据库的数据库转储,然后将转储推送到远程计算机上的新数据库上,但这两个文件如何放入其中?应该放在哪里?我找不到这方面的详细信息。
笔记。我以前从未做过分布式编程,我的问题可能很幼稚,但我真的不知道如何进行。
我使用的是 osX 操作系统,但将在远程计算机上使用 linux。
我对 SP(存储过程)和 UDF(用户定义函数)的使用感到困惑。通常,也可以在数据库之外的程序中编写代码。
是否有任何一般建议来决定何时使用它们?
我在哪里可以看到 pgAdmin III 中表的确切行数?
我知道在哪里可以找到近似的行数:
我也知道我可以SELECT COUNT(*) FROM my_table。但是我想知道是否可以在 pgAdmin III 的 GUI 中的某处找到确切的行数,就像我们可以查询前 100 行一样。
在 4 个 Debian 8 Jessie 服务器上,我有 PostgreSQL 9.4.3 master + 3 slaves。在 master 上的大量数据更改后,slave 日志显示此错误:
LOG: started streaming WAL from primary at 182/0 on timeline 1
FATAL: could not receive data from WAL stream: ERROR: requested WAL segment 000000010000018200000000 has already been removed
我需要哪些步骤来恢复/重建从站?
我有一个带有父子关系表的 PostgreSQL 数据库 (9.2)。我有一个查询,用于查找具有多个父节点的节点。
以下查询有效并返回正确的结果:
SELECT node,parents FROM
(
SELECT nr.child AS node, COUNT(nr.parent) AS parents
FROM node_relation nr
GROUP BY nr.child
) AS count WHERE parents > 1;
Run Code Online (Sandbox Code Playgroud)
结果集:
node | parents
--------+---------
n21174 | 2
n8635 | 2
(2 rows)
Run Code Online (Sandbox Code Playgroud)
表定义为:
Table "public.node_relation"
Column | Type | Modifiers
-------------+-----------------------+---------------
child | character varying(50) | not null
parent | character varying(50) | not null
Indexes:
"node_relation_pkey" PRIMARY KEY, btree (child, parent)
Run Code Online (Sandbox Code Playgroud)
我重新编写了查询以不使用子选择:
SELECT child AS node, COUNT(parent) AS parents …Run Code Online (Sandbox Code Playgroud) postgresql performance group-by postgresql-9.2 query-performance
我们有使用Golang、PostgreSQL和sqlx(适配器、连接池)的Web 应用程序,每个请求需要 1 到 8 个查询,有时 1 个事务需要 5-8 个选择和 5-8 个插入查询。
我们已经将 PostgreSQL 设置max_connections为 1024,然后是 4096,但是它开始交换,所以我们将它们减少到 64(这是交换前的限制)。
我们的 RAM 是 2GB,我们将 PostgreSQL 配置working_mem为 16MB、temp_buffers8MB、shared_buffers800MB、effective_cache_size 1536MB(这个配置根本不交换)。
每天 00:00 到 02:35 每秒大约有 18 个请求,每秒大约有 8 个错误,此时每小时只有 10 个事务成功,其他事务失败,错误消息如下:
除了缓存只读页面(因为页面每分钟可以更新10次左右)或升级机器之外,如何克服这个问题?
是否可以从另一个 plpgsql 函数创建一个新函数?像这样的东西:
CREATE OR REPLACE FUNCTION func_test()
RETURNS VOID AS
$BODY$
BEGIN
CREATE OR REPLACE FUNCTION func_test2()
RETURNS INT AS
BEGIN
$$
SELECT 1;
$$
END
END
$BODY$
LANGUAGE plpgsql;
Run Code Online (Sandbox Code Playgroud)
当我执行上面的代码时,我得到:
Run Code Online (Sandbox Code Playgroud)ERROR: unexpected end of function definition at end of input LINE 13: $BODY$`
今天我在PostgreSQL 9.5上发现了一些奇怪的东西。(我不知道这是否是因为测试版。)当我想获取数据时,我会从查询中获取旧的和已删除的数据。VACUUM FULL然后我做,然后我得到正确的数据(这是空的)。
我在这里错过了什么吗?PostgreSQL 返回旧数据的原因可能是什么?
注意:自动真空是ON.
postgresql concurrency transaction isolation-level postgresql-9.5
我正在尝试将我的 PostgreSQL 9.4 数据库升级到 PostgreSQL 9.5,但每次运行时sudo pg_upgradecluster 9.4 main我都会收到此错误:
Stopping old cluster...
Disabling connections to the old cluster during upgrade...
Restarting old cluster with restricted connections...
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = "en_US.UTF-8",
LC_ALL = (unset),
LC_CTYPE = "UTF-8",
LANG = "en_US.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
Error: The locale requested by the environment is invalid.
Error: Could …Run Code Online (Sandbox Code Playgroud) 我想让我的数据库中的所有外键都可以延迟。但是不可能改变现有的约束。所以我需要删除并再次添加每个外键。如何自动完成?
postgresql ×10
ddl ×2
functions ×2
concurrency ×1
foreign-key ×1
group-by ×1
performance ×1
pgadmin ×1
plpgsql ×1
replication ×1
scalability ×1
transaction ×1
upgrade ×1