我在 CentOS 7.3 环境下安装了 PostgreSQL 10.1。
服务已启动(postmaster.pid
文件存在于 下/var/lib/pgsql/10/data
),但我需要在pg_hba.conf
.
但是,尝试不同的命令,我得到以下信息:
pg_ctl reload -D /var/lib/pgsql/10/data
bash: pg_ctl: command not found
service postgresql reload
Redirecting to /bin/systemctl reload postgresql.service
Failed to reload postgresql.service: Unit not found.
Run Code Online (Sandbox Code Playgroud) 在 PostgreSQL 9.2.2(Windows 32 位)下,我有一个pg_restore
命令可以系统地导致有关检查点频率的日志警告,例如:
LOG: checkpoints are occurring too frequently (17 seconds apart)
HINT: Consider increasing the configuration parameter "checkpoint_segments".
Run Code Online (Sandbox Code Playgroud)
该数据库大小约为 3.3 Gb,具有 112 个表/160 个视图,并在大约 14 分钟内恢复。
在 a 期间发生这种情况是否正常pg_restore
?
在CentOS v7上使用phpPgAdmin v5.6和PostgreSQL v11.2,当我尝试访问架构中的选项卡时,出现以下错误:Functions
public
ERROR: column p.proisagg does not exist
LINE 18: WHERE NOT p.proisagg
^
HINT: Perhaps you meant to reference the column "p.prolang".
Dans l'instruction :
SELECT
p.oid AS prooid,
p.proname,
p.proretset,
pg_catalog.format_type(p.prorettype, NULL) AS proresult,
pg_catalog.oidvectortypes(p.proargtypes) AS proarguments,
pl.lanname AS prolanguage,
pg_catalog.obj_description(p.oid, 'pg_proc') AS procomment,
p.proname || ' (' || pg_catalog.oidvectortypes(p.proargtypes) || ')' AS proproto,
CASE WHEN p.proretset THEN 'setof ' ELSE '' END || pg_catalog.format_type(p.prorettype, NULL) AS proreturns, …
Run Code Online (Sandbox Code Playgroud) 我需要监控我们数据库中用户的活动。我在中设置了以下参数postgresql.conf
:
log_min_duration_statement = 0
log_connections = on
log_disconnections = on
log_line_prefix = '%t %a %d %h %u |'
Run Code Online (Sandbox Code Playgroud)
但是,我意识到大多数日志文件都填充了postgres
用户执行的语句,这些语句被我为维护任务编写的脚本所使用:重新计算物化视图、pg_dump、pg_restore、将视图提取为列表文件等。结果是每天日志文件大小超过 12 Mb。
有没有办法从日志中排除特定用户的活动?
我有一个 pl/pgsql 函数(见下文),它列出了一些字段并使用动态构造的 UPDATE 命令清除它们的内容。
当我设置时log_statement = 'mod'
,我在执行函数时在日志上看不到任何内容SELECT fnct_clear_temp_fields();
。当我设置log_statement = 'all'
并执行我可以SELECT fnct_clear_temp_fields();
在日志中看到的函数时,但看不到底层的 UPDATE 命令。
有没有办法让 UPDATE 命令也出现在日志中?
有关信息,这里是功能:
CREATE OR REPLACE FUNCTION fnct_clear_temp_fields() RETURNS VOID AS $$
DECLARE
--Put into a cursor a view dynamically listing all user-defined fields beginning with 'temp_'
dataset_1 CURSOR FOR
SELECT
column_name,
table_name
FROM information_schema.tables
NATURAL JOIN information_schema.columns
WHERE
table_schema='public'
AND table_type='BASE TABLE'
AND column_name ~ '^temp_'
ORDER BY table_name,column_name;
--Record variable to go through each line …
Run Code Online (Sandbox Code Playgroud) 我正在尝试更改我已经是所有者的表的所有权。我也是数据库的所有者,并且拥有 PUBLIC 模式的 CREATE 和 USAGE 权限。我收到以下错误消息:
ts_d=> ALTER TABLE table1 OWNER TO user2;
ERROR: permission denied for schema public
Run Code Online (Sandbox Code Playgroud)
如何在不以超级用户身份登录的情况下更改所有权?
PostgreSQL 11
我们在服务器下运行CentOS 7
。最近,我们在日志中发现了几个导致 PostgreSQL 服务器崩溃的警告:
2022-05-09 23:26:29 EDT pg_restore db123 132.132.132.32 postgres ERROR: could not extend file "base/71592268/71621568": No space left on device
2022-05-09 23:26:29 EDT pg_restore db123 132.132.132.32 postgres HINT: Check free disk space.
(...)
2022-05-09 23:26:33 EDT DETAIL: Could not open file "pg_notify/0000": No space left on device.
2022-05-09 23:26:34 EDT LOG: database system is shut down
Run Code Online (Sandbox Code Playgroud)
目录下有几个数据库/var/lib/pgsql/11/data/base/
:
# du -h /var/lib/pgsql/11/data/base/
7.7M /var/lib/pgsql/11/data/base/1
7.7M /var/lib/pgsql/11/data/base/13877
8.1M /var/lib/pgsql/11/data/base/13878
0 /var/lib/pgsql/11/data/base/pgsql_tmp
61M /var/lib/pgsql/11/data/base/852671
166M …
Run Code Online (Sandbox Code Playgroud) postgresql ×7
centos-7 ×2
functions ×2
log ×2
checkpoint ×1
crash ×1
disk-space ×1
dml ×1
permissions ×1
pg-hba.conf ×1
plpgsql ×1
restore ×1