nEST's SPACE-Blog

    コンピュータ、ミニベロ、旅行などが主なテーマの日記帳です

    PostgreSQLのデータベースにアクセスしているセッションを切断する

     
    突然のDARK SOULS2 DLC延期にもめげずに更新。
    今回はPostgreSQLの覚え書き。

    ●環境:PostgreSQL8.4.21

    リネームしようとしたデータベースに誰かが接続している場合など、下記のエラーによりSQL処理が中断する事がある。
    ERROR:データベース"SampleDatabase"は他のユーザからアクセスされています
    DETAIL:他にこのデータベースを使っている?個のセッションがあります。
    このような場合は対象のデータベースにアクセスしているセッションのPIDを確認した後、該当セッションを手動で切断してやればよい。

    ●特定のデータベースにアクセスしているセッションのPIDを調べるSQL

    現在実施中の処理内容や開始時間を確認できるビュー:pg_stat_activity」に対してSelect文を実行し、PIDの格納されている列「procpid」の値を求める。
    また、ビュー:pg_stat_activityの詳細は「コチラのページ」が非常に参考になる。

    実行例.
    # select procpid,datname from pg_stat_activity where datname='SampleDatabase';

    procpid| datname
    --------+--------------
    11111 | SampleDatabase

    ●データベースにアクセスしている任意のセッションを切断するSQL

    前の手順で確認したprocpidを指定し、セッションを切断する。

    実行例.
    # select pg_terminate_backend (11111);

    pg_terminate_backend
    ----------------------
     t
    (1 行 )
    上記SQLの実行後に先のSQL「# select procpid,datname from pg_stat_activity where datname='SampleDatabase';」を再度実行し、該当のprocpidがヒットしなければ成功。

     
     
    関連記事
    スポンサーサイト
    1. 2014/09/25(木) 00:03:01|
    2. PostgreSQL
    3. | トラックバック:0
    4. | コメント:0
    <<失ってはじめてわかるモノ | ホーム | pcAnywhere販売終了について>>

    コメント

    コメントの投稿


    管理者にだけ表示を許可する

    トラックバック

    トラックバック URL
    http://nestblog.blog.fc2.com/tb.php/86-36a71df9
    この記事にトラックバックする(FC2ブログユーザー)

    プロフィール

    管理人NEST

    Author:管理人NEST
    nEST's SPACEへようこそ。
    書きたい事を適当に書き連ねています。
    HPもよろしく。

    最新記事

    最新コメント

    最新トラックバック

    月別アーカイブ

    カテゴリ

    未分類 (1)
    GAME (20)
    雑記 (44)
    PostgreSQL (5)
    Windows (35)
    サイト運営 (6)
    MANGA (1)
    スマートフォン (19)
    Oracle (3)
    健康 (2)
    Linux (14)
    仮想化 (2)
    車 (7)
    ミニベロ (8)
    自転車旅行 (2)
    自転車パーツ・ウェア (1)
    自転車イベント (2)

    ブログ用カウンター

    検索フォーム

    RSSリンクの表示

    リンク

    このブログをリンクに追加する

    Powered By FC2ブログ

    今すぐブログを作ろう!

    Powered By FC2ブログ