有一天,我的 Postgresql 服务器停止工作。检查日志。它以某种方式关闭了。
\n\nroot@ip_address:/# tail /var/log/postgresql/postgresql-10-main.log\n2020-02-19 06:47:49.215 CET [23497] LOG: received smart shutdown request\n2020-02-19 06:47:49.477 CET [23497] LOG: worker process: logical replication launcher (PID 23512) exited with exit code 1\n2020-02-19 06:47:49.482 CET [23507] LOG: shutting down\n2020-02-19 06:47:49.546 CET [23497] LOG: database system is shut down\nRun Code Online (Sandbox Code Playgroud)\n\n当我跑步时,
\n\nroot@ip_address:/# psql\npsql: could not connect to server: No such file or directory\n Is the server running locally and accepting\n connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?\nRun Code Online (Sandbox Code Playgroud)\n\n它抱怨没有文件和目录。所以我检查了我是否postgresql跑步。
root@ip_address:/# …Run Code Online (Sandbox Code Playgroud) 我正在尝试在PersistentVolumeClaimGKE 中部署 Postgres。根据此处的描述(请参阅 参考资料PGDATA),建议在安装外部卷时创建一个子目录。所以,这就是我对 PG 部署所做的事情:
spec:
containers:
- name: postgres-dev
image: "postgres:12.1"
imagePullPolicy: IfNotPresent
ports:
- containerPort: 5432
env:
- name: PGDATA
value: "/var/lib/postgresql/data/pgdata"
volumeMounts:
- name: postgres-persistent-storage-dev
mountPath: "/var/lib/postgresql/data/pgdata"
volumes:
- name: postgres-persistent-storage-dev
persistentVolumeClaim:
claimName: postgres-pvc-dev
Run Code Online (Sandbox Code Playgroud)
/pgdata我在 中创建子目录/postgresql/data,这将是 Postgres 数据的原始挂载点。
但是当我尝试部署 Postgres pod 时,它因退避错误而停止,并且收到以下事件:
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 20s default-scheduler Successfully assigned default/postgres-dev-7f549754d-nm2lf to gke-cluster-pool-1-4ce1e4d6-m33c
Normal SuccessfulAttachVolume 15s attachdetach-controller AttachVolume.Attach …Run Code Online (Sandbox Code Playgroud) 无论出于何种原因,我们的数据库不尊重 GRANT 命令。以下是新创建用户的示例。
pddbtest=> create user test_user login;
CREATE ROLE
Run Code Online (Sandbox Code Playgroud)
然后验证用户还没有架构权限
pddbtest=> SELECT rolname, has_schema_privilege(rolname, 'public', 'usage') from pg_roles where rolname='test_user';
rolname | has_schema_privilege
-----------+----------------------
test_user | f
(1 row)
Run Code Online (Sandbox Code Playgroud)
然后授予许可
pddbtest=> grant usage on schema public to test_user;
GRANT
Run Code Online (Sandbox Code Playgroud)
然后读取权限现在是否存在(不存在)
pddbtest=> SELECT rolname, has_schema_privilege(rolname, 'public', 'usage') from pg_roles where rolname='test_user';
rolname | has_schema_privilege
-----------+----------------------
test_user | f
(1 row)
Run Code Online (Sandbox Code Playgroud)
即使授予架构权限后(不会返回任何错误),数据库仍然会认为该权限未授予。(如果我之后在架构中的所有表上添加选择授权,则在尝试查询任何表时仍然会收到架构权限被拒绝的错误)
(搜索路径是“$user”,如果该信息相关则公开)
编辑:这是 SELECT version() 的输出;和 \dn+ 根据要求:
PostgreSQL 10.7 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.9.3, 64-bit
List of …Run Code Online (Sandbox Code Playgroud) 我正在将https://github.com/bitnami/charts/tree/master/bitnami/postgresql部署到 k8s 中,并想知道如何自动化执行以下操作
我已经看到了extraDeploy https://github.com/bitnami/charts/blob/master/bitnami/postgresql/values.yaml#L43
参数,但这似乎会创建一个 k8s 特定资源(不触及 pg)。
我利用的唯一想法extraDeploy是创建一个作业,部署一个自定义 pod,该 pod 将连接到 pg 并创建数据库、角色和密码...
谢谢!
除了性能之外,在同一台服务器上设置 Postgresql-8.4 和 MySQL 并并行运行它们是否有任何配置或安装风险?
服务器正在运行 Debian etch。
谢谢
我将 postgres 数据目录移到了一个单独的分区,效果很好。该目录归 postgres 用户和 postgres 组所有。
d-wx------ 11 postgres postgres 4.0K 2010-06-11 08:28 data/
我把自己加到群里了
> sudo addgroup me postgres
> groups me
me : me adm dialout cdrom plugdev lpadmin admin sambashare postgres
并授予该组对目录中所有内容的读取和执行权限。
sudo chmod -R g+rx ./data
d-wxr-x--- 11 postgres postgres 4.0K 2010-06-11 08:28 data/
但是我还是不能CD或LS的目录。
> ls data
ls: cannot open directory data: Permission denied
我犯了什么初学者错误?
我有一个在 RAID5 SSD 阵列上运行的数据库。这会扼杀它的性能吗?当我连续进行多次插入时,整个计算机开始阻塞。甚至像 Firefox 这样的东西也开始出现故障。在我的带有传统硬盘驱动器的功能较弱的计算机上,具有相同数据库版本、架构和数据的插入运行平稳。这可能是原因,还是其他一些因素?
我想将 postgresql 恢复到原来的空状态。
在 Ubuntu 上:
$ sudo service postgresql stop
$ sudo apt-get purge postgresql*
Run Code Online (Sandbox Code Playgroud)
其次是
$ sudo apt-get install postgresql
Run Code Online (Sandbox Code Playgroud)
我想要什么,但有没有更残酷的方式来做同样的事情?
我真正想做的是检查我是否可以从头开始重新创建我的数据库。
这是我正在做的事情的分步说明
postgresql_enable="YES" 到/etc/rc.confsudo /usr/local/etc/rc.d/postgresql onsestart。但是,在所有这些步骤之后,我仍然收到消息:
postgres 无法访问服务器配置文件 "/usr/local/pgsql/data/postgresql.conf": No such file or directory
我错过了什么步骤?
我正在建立一个网站,并且正在考虑将 PostgreSQL 用于数据库。但我真的只想设置它并忘记它。PostgreSQL 的这种“一劳永逸”心态的可能性有多大?如果不现实,我应该执行什么样的维护任务?
编辑:我在这里找到了有用的信息:http : //www.postgresql.org/docs/9.1/static/maintenance.html
postgresql ×10
kubernetes ×2
ubuntu ×2
bitnami ×1
chmod ×1
database ×1
freebsd ×1
helm ×1
installation ×1
mysql ×1
permissions ×1
raid ×1
ssd ×1
unix ×1