Postgres文件所有者更改造成异常处理

php中文网
发布: 2016-06-07 14:58:35
原创
1850人浏览过

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用户下授权,再启动

拍我AI
拍我AI

AI视频生成平台PixVerse的国内版本

拍我AI 353
查看详情 拍我AI

[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文件会随着服务器的启动而生成。

 

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号