Postgres文件所有者更改造成异常处理
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Postgres文件所有者更改造成异常处理,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3820字,纯文字阅读大概需要6分钟。
内容图文
![Postgres文件所有者更改造成异常处理](/upload/InfoBanner/zyjiaocheng/566/0c41a3f603e140deaa65f0842f9eb163.jpg)
Postgres文件所有者更改造成异常处理 本地一台测试机,被同事一不小将根目录下所有文件的属主都改成了root( chown -R root:root /,这是个坑爹而且危险的操作),postgres数据库是用其他用户安装的,上面还有其他应用,这里简单说下postgres数据库的恢复过程
Postgres文件所有者更改造成异常处理
本地一台测试机,被同事一不小将根目录下所有文件的属主都改成了root( chown -R root:root /,这是个坑爹而且危险的操作),postgres数据库是用其他用户安装的,上面还有其他应用,这里简单说下postgres数据库的恢复过程。
1.环境
OS:CentOS 6.2
DB:postgres 9.2.4
2.异常现象
a.数据库进程没了
b.日志情况
[postgresql@localhost pg_log]$ tail -f postgresql-2013-05-06_000000.csv
2013-05-06 17:11:21.923 CST,"test","testdb",664,"172.25.10.1:13906",51876c10.298,3,"idle",2013-05-06 16:38:40 CST,37/0,0,WARNING,57P02,"terminating connection because of crash of another server process","The postmaster has commanded this server process to roll back the current transaction and exit, because another server process exited abnormally and possibly corrupted shared memory.","In a moment you should be able to reconnect to the database and repeat your command.",,,,,,,""
2013-05-06 17:11:21.921 CST,"test","testdb",2633,"172.25.10.88:45681",5187730e.a49,3,"idle",2013-05-06 17:08:30 CST,14/0,0,WARNING,57P02,"terminating connection because of crash of another server process","The postmaster has commanded this server process to roll back the current transaction and exit, because another server process exited abnormally and possibly corrupted shared memory.","In a moment you should be able to reconnect to the database and repeat your command.",,,,,,,""
.....
2013-05-06 17:11:21.926 CST,,,24842,,5162b7b7.610a,8,,2013-04-08 20:27:35 CST,,0,LOG,00000,"all server processes terminated; reinitializing",,,,,,,,,""
2013-05-06 17:11:21.955 CST,,,24842,,5162b7b7.610a,9,,2013-04-08 20:27:35 CST,,0,LOG,42501,"could not open file ""postmaster.pid"": Permission denied",,,,,,,,,""
2013-05-06 17:11:22.011 CST,,,24842,,5162b7b7.610a,10,,2013-04-08 20:27:35 CST,,0,PANIC,42501,"could not open control file ""global/pg_control"": Permission denied",,,,,,,,,""
3.恢复过程
a.首先改回用户权限
[root@localhost ~]#chown -R postgresql:postgresql /var/postgres
[root@localhost ~]#chown -R postgresql:postgresql /data/pgdata
b.重新启动
[postgresql@localhost pg_log]$ pg_start
server starting
[postgresql@localhost pg_log]$ FATAL: could not open lock file "/tmp/.s.PGSQL.lock": Permission denied
could not open control file ""global/pg_control"": Permission denied
重新启动的时候发现数据库仍然不能起来,但是这里给出了一个信息,tmp下socket文件权限不够
返回到root用户下授权,再启动
[root@localhost home]#cd /tmp
[root@localhost tmp]#ls -a .s.PGSQL*
.s.PGSQL.5432 .s.PGSQL.5432.lock
[root@localhost tmp]#chown postgresql:postgresql ./.s.PGSQL*
[root@localhost tmp]#su - postgresql
[postgresql@localhost ~]$ pg_start
--还是报上面的错误,因为socket文件是本地通信文件,故先删除再启动DB,平时没事不要手贱去删
[root@localhost tmp]#rm -f ./.s.PGSQL*
[postgresql@localhost ~]$ pg_start
server starting
[postgresql@localhost ~]$ LOG: could not bind Unix socket: Address already in use
HINT: Is another postmaster already running on port 5432? If not, remove socket file "/tmp/.s.PGSQL.5432" and retry.
WARNING: could not create Unix-domain socket
c.登陆检查
[postgresql@localhost ~]$ psql
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
[postgresql@localhost ~]$ psql -h 192.168.10.38
Password:
psql (9.2.4)
Type "help" for help.
postgres=# \q
检查了一下,刚才启动的时候在tmp下面socket文件没有生成,导致psql登陆直接报错。若想psql能直接登陆,再重启一下DB,socket文件会随着服务器的启动而生成。
内容总结
以上是互联网集市为您收集整理的Postgres文件所有者更改造成异常处理全部内容,希望文章能够帮你解决Postgres文件所有者更改造成异常处理所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。