postgresql 启动与停止操作
启动和停止数据库服务器
service方式
servicepostgresql-10start servicepostgresql-10stop servicepostgresql-10status
pg_ctl方式
pg_ctlstart-D[data所在路径] pg_ctlstop-D[data所在路径]
三种形式:-m指定模式
smart模式:会等待活动的事务提交结束,并等待客户端主动断开连接之后关闭数据库服务
fast模式:会回滚所有的活动的事务,并强制断开客户端的连接然后关闭数据库(默认就是使用fast相当于Oracle中的immediate模式关闭)
immediate模式:会立即终止所有服务器进程,当下一次数据库启动的时候会首先进入恢复状态(相当于使用kill工具杀死进程[此方式不会干净的关闭数据库且会造成数据丢失])
pg_ctlstatus-D[data所在路径]
使用postmasterpostgres程序启动数据库
/usr/pgpsql-10/bin/postgres-D[data所在路径] kill-sigterm`head-1/usr/pgpsql-10/data/postmaster.pid`
如果要在操作系统启动时就启动PG,可以在/etc/rc.d/rc.local文件中加以下语句:
/usr/pgsql-10/bin/pg_ctlstart-l/usr/pgsql-10/log/pg_server.log-D/usr/pgsql-10/data
补充:postgresql服务无法启动,日志中报如下错误
1、postgresql服务无法启动,日志中报如下错误,磁盘空间足够。
无法找到来自源PostgreSQL的事件ID0的描述。本地计算机上未安装引发此事件的组件,或者安装已损坏。可以安装或修复本地计算机上的组件。
1、使用pg_controldata查找nextoID和nextXID
2、重置事物日志
pg_resetxlog-onextOID-xNextXID-fpgdata的目录
重启数据库即可启动,优麒麟重启数据库:servicepostgresqlrestart
C:\ParkServer\pgsql\bin>pg_controldata.exe–helppg_controldata
显示PostgreSQL数据库簇控制信息.
使用方法:
选项:[-D]DATADIR数据目录-V,–version输出版本信息,然后退出
?,–help显示帮助信息,然后退出
如果没有指定数据目录(DATADIR),将使用环境变量PGDATA.
报告错误至pgsql-bugs@postgresql.org.
C:\ParkServer\pgsql\bin>pg_controldata.exe-Dc:\ParkServer\pgsql\data
备注:
cd/usr/lib/postgresql/9.5/bin下有pg_controldatapg_resetxlog
locatepg_controldata可以全系统搜索
sudosupostgres才能访问/var/lib/postgresql/9.5/main
/etc/postgresql/9.5/main下查看postgresql.conf文件data目录
cd/var/log/postgresql可以查看数据库的日志
tail-f/var/log/syslog Insecuredirectoryin$ENV{PATH}whilerunningwith-Tswitchat/usr/bin/pg_ctlclusterline463. echo$PATH
查看所有路径的权限,权限太大的,都要改小
chmod755/usr chmod755/bin chmod755/sbin chmod755/snap
sudoservicepostgresqlstart
即可。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持毛票票。如有错误或未考虑完全的地方,望不吝赐教。