正常情况下,pgsql 停止可以执行一下命令:

bin/pg_ctl stop -s -D pg_data/ -m fast

此命令和 kill -15 PID 效果相同

但是有时候 pgsql 也会抽风,无法通过正常的方式停止,这个时候我们就需要暴力拆解了

kill -9 PID 大法,没有什么进程是可以抵抗的(除了用户权限不对外,基本是遇神杀神,遇佛杀佛哦)

但是kill -9 这个方式太暴力,导致pgsql 在下次启动时,会爆出乱七八糟的错误

例如 PID 已存在的问题

FATAL:  pre-existing shared memory block (key , ID ) is still in use
HINT: If you're sure there are no old server processes still running, remove the shared memory block or just delete the file "post
master.pid".

解决方式是将 pg_data/postmaster.opts 和 pg_data/postmaster.pid 两个文件删除
因为pgsql 在启动时,会去检测是否存在这两个文件

另外在kill -9 强杀进程时,有时候也会误伤数据库的日志文件,这个时候,就会出现以下的问题

LOG:  database system was interrupted; last known up at -- :: CST
LOG: invalid record length at /1A97600
LOG: invalid primary checkpoint record
LOG: invalid record length at /1A97598
LOG: invalid secondary checkpoint record
PANIC: could not locate a valid checkpoint record
LOG: startup process (PID ) was terminated by signal : Aborted
LOG: aborting startup due to startup process failure

解决方式如下
bin/pg_resetxlog -f pg_data/
这个命令应该是恢复pgsql 的日志,有可能会造成pgsql 里面的数据丢失或者损坏,但是你在kill -9 时就应该了解这个风险。

否则呢,你就自己想明白为啥不能 kill -15 吧!!!

pgsql如何重启的更多相关文章

  1. Php7安装pdo_pgsql,pgsql扩展

    通过地址http://pecl.php.net/package/PDO_PGSQL下载PDO扩展包 找到php自带的ext目录里的pgsql库 第二步: 切换目录到pgsql 第三步: 找到phpiz ...

  2. Linux上安装postgres 10.5

    由于接触了华为的elk大数据平台,里面封装的是postgres ,就想着安装一下,熟悉一下postgres数据. 安装包下载:https://www.postgresql.org/ftp/source ...

  3. 问题解决:psql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

    错误提示: psql: could not connect to server: No such file or directory Is the server running locally and ...

  4. centos7 安装pgsql

    1.添加prm安装源(或者从官网下载) PostgreSQL官网地址:https://yum.postgresql.org/ yum install https://download.postgres ...

  5. php5.5.7添加pgsql,pdo_pgsql,swoole

    一:下载php源码sudo wget cn2.php.net/distributions/php-X.X.X.tar.gz 二:解压 tar xzf /php-X.X.X.tar.gz 三:进入源码e ...

  6. 【PgSQL安装(含配置)】PostgreSQL简称PgSQL,是1980以加利福尼亚大学开发的DBMS,严格遵守标准SQL。

    [下载地址]http://www.enterprisedb.com/products-services-training/pgdownload#windows …………………………………………………… ...

  7. pg_ctl -- 启动、停止、重启 PostgreSQL

    pg_ctl 名称 pg_ctl -- 启动.停止.重启 PostgreSQL 语法 pg_ctl start [-w] [-s] [-D datadir] [-l filename] [-o opt ...

  8. pgadmin-linux-centos7.3-连接pgsql

    每次远程连接linux-centos上面的pgsql的时候,需要修改ip,命令如下: -->cd /var/lib/pgsql/data -->vi pg_hba.conf 添加ip如下, ...

  9. 【干货总结】:可能是史上最全的MySQL和PGSQL对比材料

    [干货总结]:可能是史上最全的MySQL和PGSQL的对比材料 运维了MySQL和PGSQL已经有一段时间了,最近接到一个数据库选型需求,于是便开始收集资料整理了一下,然后就有了下面的对比表 关键词: ...

随机推荐

  1. ByteBuf(图解1)

    目录 源码工程 写在前面 Netty ByteBuf 优势 手动获取与释放ByteBuf 自动获取和释放 ByteBuf 方式一:TailHandler 自动释放 方式二:SimpleChannelI ...

  2. android DownloadManager.getInputStream返回null的一种情况

    将下载操作的代码放到一个新的子线程中来执行.

  3. Machine Learning in Action(5) SVM算法

    做机器学习的一定对支持向量机(support vector machine-SVM)颇为熟悉,因为在深度学习出现之前,SVM一直霸占着机器学习老大哥的位子.他的理论很优美,各种变种改进版本也很多,比如 ...

  4. 记录下 hubot相关

    适配器工厂https://hubot.github.com/docs/adapters/ 自己写适配器https://hubot.github.com/docs/adapters/developmen ...

  5. Python GIL、线程锁、信号量及事件

    GIL是什么? GIL并不是Python的特性,它是在实现Python解析器(CPython)时所引入的一个概念.就好比C++是一套语言(语法)标准,但是可以用不同的编译器来编译成可执行代码.有名的编 ...

  6. Grunt 自动编译 Less 文件配置

    1.安装Grunt http://www.gruntjs.net/getting-started 2.编辑 package.json 文件 { "name": "Grun ...

  7. Linux 修改所属组与所属人

    1.chown work /test/* 修改test文件夹下所有文件的所属人(owner)为work 2.chgrp work /test/* 修改test文件夹下所有文件的所属组(group)为w ...

  8. BZOJ_2002_[Hnoi2010]Bounce 弹飞绵羊_LCT

    BZOJ_2002_[Hnoi2010]Bounce 弹飞绵羊_LCT Description 某天,Lostmonkey发明了一种超级弹力装置,为了在他的绵羊朋友面前显摆,他邀请小绵羊一起玩个游戏. ...

  9. windows下多进程加协程并发模式

    好久没更新博客了.正好最近要整理一下最近这段时间做过的项目以及学习python的一些心得.如标题所示,今天就来说说windows下多进程加协程并发模式.其实网上还是蛮多在linux下的多进程加协程并发 ...

  10. 安装和配置Rose HA

    安装和配置Rose HA 1.1.1 安装Rose HA 将roseha的三个安装文件拷贝到/data/install, 便于两台主机的安装. 在没有安装Rose HA 之前,分别修改hosts文件将 ...