zoukankan      html  css  js  c++  java
  • 把pgboucer做成postgresql服务

    把pgbouncer启动命令加入到postgresql服务配置里面。这样方便操作

    vi /etc/init.d/postgresql

    加入如下红色命令。路径换成你的pgbouncer安装目录

    case $1 in
      start)
        echo -n "Starting PostgreSQL: "
        test -e "$PG_OOM_ADJUST_FILE" && echo "$PG_MASTER_OOM_SCORE_ADJ" > "$PG_OOM_ADJUST_FILE"
        su - $PGUSER -c "$DAEMON_ENV $DAEMON -D '$PGDATA' &" >>$PGLOG 2>&1
        su - $PGUSER -c "/路径/pgbouncer/bin/pgbouncer -d /路径/pgbouncer/conf/pgbouncer.ini"
        echo "ok"
        ;;
      stop)
        echo -n "Stopping PostgreSQL: "
        su - $PGUSER -c "$PGCTL stop -D '$PGDATA' -s -m fast"
        pkill -9 pgbouncer
        echo "ok"
        ;;
      restart)
        echo -n "Restarting PostgreSQL: "
        su - $PGUSER -c "$PGCTL stop -D '$PGDATA' -s -m fast -w"
        test -e "$PG_OOM_ADJUST_FILE" && echo "$PG_MASTER_OOM_SCORE_ADJ" > "$PG_OOM_ADJUST_FILE"
        su - $PGUSER -c "$DAEMON_ENV $DAEMON -D '$PGDATA' &" >>$PGLOG 2>&1
        su - $PGUSER -c "/路径/pgbouncer/bin/pgbouncer -d /路径/pgbouncer/conf/pgbouncer.ini"
        echo "ok"
        ;;
      reload)
            echo -n "Reload PostgreSQL: "
            su - $PGUSER -c "$PGCTL reload -D '$PGDATA' -s"
            echo "ok"
            ;;
      status)
        su - $PGUSER -c "$PGCTL status -D '$PGDATA'"
        ;;

    加入后。以后重启服务器。postgresql服务启动后。然后 pgbouncer也启动了。

    好这里我们测试下

    [root@iZ236bfrzgoZ pgbouncer]# vi /etc/init.d/postgresql
    [root@iZ236bfrzgoZ pgbouncer]# ps -ef|grep pgbouncer
    postgres 6625 1 0 20:35 ? 00:00:00 /alidata/local/pgbouncer/bin/pgbouncer -d /alidata/local/pgbouncer/conf/pgbouncer.ini
    root 18568 29466 0 21:05 pts/1 00:00:00 grep --color=auto pgbouncer
    [root@iZ236bfrzgoZ pgbouncer]# pkill -9 pgbouncer
    [root@iZ236bfrzgoZ pgbouncer]# ps -ef|grep pgbouncer
    root 18674 29466 0 21:05 pts/1 00:00:00 grep --color=auto pgbouncer
    [root@iZ236bfrzgoZ pgbouncer]# service postgresql start
    Starting PostgreSQL: 2016-11-04 21:05:17.651 18772 LOG File descriptor limit: 65535 (H:65535), max_client_conn: 1000, max fds possible: 1190
    2016-11-04 21:05:17.652 18772 LOG Stale pidfile, removing
    ok
    [root@iZ236bfrzgoZ pgbouncer]# ps -ef|grep pgbouncer
    postgres 18789 1 0 21:05 ? 00:00:00 /alidata/local/pgbouncer/bin/pgbouncer -d /alidata/local/pgbouncer/conf/pgbouncer.ini
    root 18917 29466 0 21:05 pts/1 00:00:00 grep --color=auto pgbouncer
    [root@iZ236bfrzgoZ pgbouncer]#

    这里能看到pgbouncer被强制结束掉后,我们用servcie postgresql start  命令启动,pgbouncer也启动了,打开数据库。能正常打开

    以上红色命令可以换成如下命令进行 postgresql+pgbouncer服务管理
    检测配置文件
    /usr/local/pgbouncer/bin/pgbouncer -v /data/pgbouncer/pgbouncer.ini
    启动:
    /usr/local/pgbouncer/bin/pgbouncer -d /data/pgbouncer/pgbouncer.ini
    重启:
    /usr/local/pgbouncer/bin/pgbouncer -R -d /data/pgbouncer/pgbouncer.ini  【慎用,吃过一次亏,它会自动把userlist.txt删掉后再启动,然后导致程序连不上数据库】
    停止:
    psql -p 6432 pgbouncer -h 127.0.0.1 -U postgres-c 'shutdown'  【这里会要求密码,如果图方便把密码也加上,但是不安全】
    加载配置:
    psql -p 6432 pgbouncer -h 127.0.0.1 -U postgres -c 'reload'  【这里会要求密码】
  • 相关阅读:
    halcon机器视觉工程开发思路
    创建子窗口新线程-线程间操作无效:从不是创建控件的线程访问它
    c#多个按钮执行同一类事件-按钮按下和弹起
    winform子窗口与父窗口的交互-使用委托与事件
    winform子窗口调用父窗口的控件及方法-一般调用
    Lambda表达式的用法
    c#WinForm中TeeChart控件的注册和使用
    c#实现串口通信
    [Revit]开始:编写一个简单外部命令
    [Revit]Autodesk Revit 二次开发整理(资料、准备工作和环境搭建)
  • 原文地址:https://www.cnblogs.com/fangyuan303687320/p/6031669.html
Copyright © 2011-2022 走看看