このセクションで説明する関数は、PostgreSQLインストールの制御と監視に使用されます。
構成設定機能
次の表は、ランタイム設定パラメーターのクエリと変更に使用できる関数を示しています。
構成設定機能
関数 | 説明 | 例 (s) |
| 設定 |
|
| パラメーター |
|
サーバー信号機能
次の表に示す関数は, 他のサーバプロセスに制御信号を送信します。 これらの機能の使用はデフォルトでスーパーユーザーに制限されていますが、例外を除いて、GRANTを使用して他のユーザーにアクセスを許可することができます。
これらの各関数は、信号の送信に成功した場合はtrueを返し、信号の送信に失敗した場合はfalseを返します。
サーバー信号機能
pg_cancel_backend (pid整数) → ブール値 指定されたプロセスIDを持つバックエンドプロセスを持つセッションの現在のクエリをキャンセルします。 これは、呼び出し元のロールがバックエンドがキャンセルされているロールのメンバーである場合、または呼び出し元のロールに |
pg_reload_conf () → boolean PostgreSQLserverのすべてのプロセスを構成ファイルにリロードします。 (これは、aSIGHUP信号をポストマスタプロセスに送信することによって開始され、ポストマスタプロセスは、その子の各々にSIGHUPを送信する。) リロードする前に、 |
pg_rotate_logfile () → boolean すぐに新しい出力ファイルに切り替えるようにログファイルマネージャに通知します。 これは、組み込みのログコレクターが実行されている場合にのみ機能します。 |
pg_terminate_backend (pid整数) → boolean 指定したプロセスIDを持つバックエンドプロセスのセッションを終了します。 これは、呼び出し元のロールがバックエンドを終了するロールのメンバーである場合、または呼び出し元のロールに |
pg_cancel_backendとpg_terminate_backendは、プロセスIDで識別されるバックエンドプロセスにシグナル (それぞれSIGINTorSIGTERM) を送信します。 アクティブなバックエンドのプロセスIDは、pg_stat_activityビューのpid列から、またはサーバー上のpostgresプロセス (usingpson UnixまたはtheTask ManageronWindows) をリストすることで確認できます。 アクティブなバックエンドのロールは、pg_stat_activityビューのusename列から確認できます。
バックアップ制御機能
以下の表に示す機能は、オンラインバックアップの作成に役立ちます。 これらの関数は、リカバリ中に実行できません (非排他的pg_start_backup、非排他的pg_stop_backup、pg_is_in_backup、pg_backup_start_time、およびpg_wal_lsn_diffを除く) 。
バックアップ制御機能
pg_create_restore_point (テキスト 名前) → pg_lsn 後でリカバリターゲットとして使用できる名前付きマーカーレコードを先行書き込みログに作成し、対応する先行書き込みログの場所を返します。 指定された名前をrecovery_target_nameと共に使用して、回復が進行するポイントを指定できます。 同じ名前の復元ポイントを複数作成しないでください。復元は、復元ターゲットと一致する名前の最初の復元ポイントで停止します。 この関数はデフォルトでスーパーユーザーに制限されていますが、他のユーザーにEXECUTEを許可して関数を実行できます。 |
pg_current_wal_flush_lsn () → pg_lsn 現在の先行書き込みログフラッシュの場所を返します (以下のメモを参照) 。 |
pg_current_wal_insert_lsn () → pg_lsn 現在の先行書き込みログの挿入位置を返します (以下のメモを参照) 。 |
pg_current_wal_lsn () → pg_lsn 現在の先行書き込みログの書き込み場所を返します (以下のメモを参照) 。 |
pg_start_backup (label text [, fast boolean [, exclusive boolean ]] ) → pg_lsn サーバーを準備してオンラインバックアップを開始します。 唯一必要なパラメーターは、バックアップの任意のユーザー定義ラベルです。 (通常、これはバックアップダンプファイルが格納される名前になります。) オプションの2番目のパラメーターが 排他モードで使用すると、この関数はバックアップラベルファイル ( この関数はデフォルトでスーパーユーザーに制限されていますが、他のユーザーにEXECUTEを許可して関数を実行できます。 |
pg_stop_backup(排他的 ブール値[,wait_for_archive ブール値] ) →setofレコード(lsn pg_lsn,labelfile テキスト,spcmapfile テキスト) 排他的または非排他的なオンラインバックアップの実行を終了します。
この関数は、プライマリで実行されると、先行書き込みログアーカイブ領域にバックアップ履歴ファイルも作成します。 履歴ファイルには、 関数の結果は単一のレコードです。 この関数はデフォルトでスーパーユーザーに制限されていますが、他のユーザーにEXECUTEを許可して関数を実行できます。 |
pg_stop_backup () → pg_lsn 排他的なオンラインバックアップの実行を終了します。 この簡易バージョンは この関数はデフォルトでスーパーユーザーに制限されていますが、他のユーザーにEXECUTEを許可して関数を実行できます。 |
pg_is_in_backup () → ブール値 オンライン排他バックアップが進行中の場合はtrueを返します。 |
pg_backup_start_time () → タイムスタンプとタイムゾーンの 現在進行中のオンライン排他的バックアップの開始時刻を返し、進行中の場合は |
pg_switch_wal () → pg_lsn サーバーを強制的に新しい先行書き込みログファイルに切り替えます。これにより、現在のファイルをアーカイブできます (継続的なアーカイブを使用している場合) 。 結果は、終了した先行書き込みログの場所に、完了したばかりの先行書き込みログファイル内の1を加えたものである。 前回の先行書き込みログの切り替え以降に先行書き込みログのアクティビティがない場合、 この関数はデフォルトでスーパーユーザーに制限されていますが、他のユーザーにEXECUTEを許可して関数を実行できます。 |
pg_walfile_name (pg_lsn lsn) → text 先行書き込みログの場所を、その場所を保持するWALファイルの名前に変換します。 |
pg_walfile_name_offset (lsn pg_lsn) → record (file_name text, file_offset integer) をする 先行書き込みログの場所をWALファイル名とそのファイル内のバイトオフセットに変換します。 |
pg_wal_lsn_diff (lsn pg_lsn、lsn pg_lsn) → 数値 2つの先行書き込みログの場所の間のバイト単位の差 ( |
pg_current_wal_lsnは、上記の関数で使用されているのと同じ形式で、現在の先行書き込みログの書き込み場所を表示します。 同様に、pg_current_wal_insert_lsnは現在の先行書き込みログの挿入場所を表示し、pg_current_wal_flush_lsnは現在の先行書き込みログのフラッシュ場所を表示します。 挿入位置は、任意の瞬間における先行書き込みログの「論理的」終端であり、一方、書き込み位置は、サーバの内部バッファから実際に書き出されたものの終端であり、フラッシュ位置は、耐久性記憶装置に書き込まれることが知られている最後の位置である。 書き込み場所は、サーバーの外部から調べることができる場所の終わりであり、通常、部分的に完全な先行書き込みログファイルをアーカイブする場合に必要な場所です。 挿入およびフラッシュ位置は、主にサーバのデバッグ目的で利用可能にされる。 これらはすべて読み取り専用の操作であり、スーパーユーザーの権限は必要ありません。
pg_walfile_name_offsetを使用して、対応する先行書き込みログファイル名とバイトオフセットをpg_lsn値から抽出できます。
同様に、pg_walfile_nameは先行書き込みログファイル名だけを抽出します。 指定された先行書き込みログの場所が正確に先行書き込みログファイルの境界にある場合、これらの関数は両方とも先行書き込みログファイルの名前を返します。 これは通常、先行書き込みログのアーカイブ動作を管理するために望ましい動作です。これは、前のファイルが現在アーカイブされる必要がある最後のファイルだからです。
リカバリ制御機能
次の表に示す機能では, 待機系サーバの現在の状態を把握しています。 これらの機能は、回復中と通常の実行中の両方で実行できます。
リカバリ情報関数
pg_is_in_recovery () → ブール値 リカバリがまだ進行中の場合はtrueを返します。 |
pg_last_wal_receive_lsn () → pg_lsn ストリーミングレプリケーションによって受信され、ディスクに同期された最後の先行書き込みログの場所を返します。 ストリーミング複製が進行している間、これは単調に増加する。 回復が完了した場合、これは、回復中にディスクに同期されて受信された最後のWALレコードの位置で静的なままである。 ストリーミングレプリケーションが無効になっている場合、またはまだ開始されていない場合、関数は |
pg_last_wal_replay_lsn () → pg_lsn リカバリ中にリプレイされた最後の先行書き込みログの場所を返します。 回復がまだ進行中であれば、これは単調に増加する。 回復が完了した場合、これは回復中に適用された最後のWALレコードの位置で静的なままである。 サーバーが復旧せずに正常に起動された場合、関数は |
pg_last_xact_replay_timestamp () → タイムスタンプとタイムゾーンの リカバリ中に再生された最後のトランザクションのタイムスタンプを返します。 これは、そのトランザクションのコミットまたはアボートWALレコードがプライマリで生成された時刻です。 リカバリ中にトランザクションが再生されなかった場合、関数は |
次の表に示す関数は、リカバリの進行状況を制御します。 これらの機能は、回復中にのみ実行することができる。
リカバリ制御機能
pg_is_wal_replay_paused () → ブール値 回復の一時停止が要求された場合はtrueを返します。 |
pg_promideをする (boolean DEFAULT true、wait_seconds integer DEFAULT 60) → boolean) スタンバイサーバーをプライマリ状態に昇格させます。 この関数はデフォルトでスーパーユーザーに制限されていますが、他のユーザーにEXECUTEを許可して関数を実行できます。 |
pg_wal_replay_pause () → void 回復を一時停止する要求。 リクエストは、回復がすぐに停止するという意味ではありません。 リカバリが実際に一時停止されることを保証する場合は、 この関数はデフォルトでスーパーユーザーに制限されていますが、他のユーザーにEXECUTEを許可して関数を実行できます。 |
pg_wal_replay_resume () → void 一時停止した場合は回復を再開します。 この関数はデフォルトでスーパーユーザーに制限されていますが、他のユーザーにEXECUTEを許可して関数を実行できます。 |
プロモーションの進行中は、pg_wal_replay_pauseおよびpg_wal_replay_resumeを実行できません。 リカバリが一時停止中にプロモーションがトリガーされた場合、一時停止状態は終了し、プロモーションが続行されます。
ストリーミング複製が無効にされる場合、一時停止状態は問題なく無期限に継続することができる。 ストリーミング複製が進行中である場合、WALレコードは受信され続け、これは、一時停止の期間、WAL生成の速度、および利用可能なディスクスペースに応じて、最終的に利用可能なディスクスペースを埋める。
スナップショット同期関数
PostgreSQLでは、データベースセッションでスナップショットを同期できます。 スナップショットは、スナップショットを使用しているトランザクションに表示されるデータを決定します。 同期スナップショットは、2つ以上のセッションがデータベース内の同一のコンテンツを表示する必要がある場合に必要です。 2つのセッションがそれらのトランザクションを独立して開始する場合、いくつかの第3のトランザクションが2つのstart transactionコマンドの実行の間にコミットする可能性が常にあり、その結果、一方のセッションはそのトランザクションの効果を認識し、他方は認識しない。
この問題を解決するために、PostgreSQLではトランザクションが使用しているスナップショットをエクスポートできます。 エクスポートトランザクションが開いたままである限り、他のトランザクションはそのスナップショットをインポートすることができ、それによって、第1のトランザクションが見るデータベースのビューと全く同じビューを見ることが保証される。 ただし、コミットされていないトランザクションによって行われた変更の場合と同様に、これらのトランザクションのいずれかによって行われたデータベース変更は、他のトランザクションには表示されません。 したがって、トランザクションは既存のデータに関して同期されますが、トランザクション自体が行う変更に対しては通常どおりに機能します。
スナップショットはpg_export_snapshot関数でエクスポートされ、SET TRANSACTIONコマンドでインポートされます。
pg_export_snapshotの () → text トランザクションの現在のスナップショットを保存し、スナップショットを識別する 必要に応じて、トランザクションは複数のスナップショットをエクスポートできます。 |
レプリケーション管理関数
以下の表に示す機能は、レプリケーション機能を制御し、操作するためのものです。 レプリケーション元の関数の使用は、デフォルトでスーパーユーザーにのみ許可されています。 レプリケーションスロットの関数の使用は、replication権限を持つスーパーユーザーとユーザーに制限されます。
これらの機能の多くは、複製プロトコルにおいて同等のコマンドを有する。
pg_create_physical_replication_slot (slot_name名 [, すぐに_予約boolean, temporary boolean] )) → record (slot_name name, lsn pg_lsn ))
|
pg_drop_replication_slot (slot_name名) → void
|
pg_create_logical_replication_slot(slot_name 名前,プラグイン 名前[,一時的 ブール値] ) →レコード(slot_name 名前,lsn pg_lsn) 出力プラグイン |
pg_copy_physical_replication_slot (src_slot_name名, dst_slot_name名 [, temporary boolean] )) → record (slot_name name, lsn)
|
pg_copy_logical_replication_slot(src_slot_name 名前,dst_slot_name 名前[,一時的 ブール値[,プラグイン 名前]] ) →レコード(slot_name 名前,lsn pg_lsn)
|
pg_logical_slot_get_changes(slot_name 名前,upto_lsn pg_lsn,upto_nchanges 整数,VARIADIC オプション text[]) →setofレコード(lsn pg_lsn,xid xid,データ テキスト) 変更が最後に消費された時点から始まるスロット |
pg_logical_slot_peek_changes(slot_name 名前,upto_lsn pg_lsn,upto_nchanges 整数,VARIADIC オプション text[]) →setofレコード(lsn pg_lsn,xid xid,データ テキスト) 変更が消費されないことを除いて、 |
pg_logical_slot_get_binary_changes(slot_name 名前,upto_lsn pg_lsn,upto_nchanges 整数,VARIADIC オプション text[]) →setofレコード(lsn pg_lsn,xid xid,データ ビテア) 変更が |
pg_logical_slot_peek_binary_changes(slot_name 名前,upto_lsn pg_lsn,upto_nchanges 整数,VARIADIC オプション text[]) →setofレコード(lsn pg_lsn,xid xid,データ ビテア) 変更が |
pg_replication_slot_advance (slot_name名、upto_lsn pg_lsn) → record (slot_name名、end_lsn pg_lsn)
|
pg_replication_origin_create (text node_name) → oid 指定された外部名を持つレプリケーションオリジンを作成し、割り当てられた内部IDを返します。 |
pg_replication_origin_drop (text node_name) → void 関連付けられたリプレイの進行状況を含め、以前に作成したレプリケーションオリジンを削除します。 |
pg_replication_origin_oid (text node_name) → oid 名前でレプリケーション元を検索し、内部IDを返します。 そのようなレプリケーション起点が見つからない場合は、 |
pg_replication_origin_session_setup (text node_name) → voidの 現在のセッションを指定されたオリジンからのリプレイとしてマークし、リプレイの進行状況を追跡できます。 オリジンが現在選択されていない場合にのみ使用できます。 元に戻すには、 |
pg_replication_origin_session_reset () → void
|
pg_replication_origin_session_is_setup () → ブール値 現在のセッションでレプリケーション起点が選択されている場合はtrueを返します。 |
pg_replication_origin_session_progress (ブール フラッシュ) → pg_lsn 現在のセッションで選択されているレプリケーション起点の再生場所を返します。 パラメータ |
pg_replication_origin_xact_setup (origin_lsn pg_lsn、origin_timestamp timestamp with time zone) → void 現在のトランザクションを、指定されたLSNandタイムスタンプでコミットしたトランザクションの再生としてマークします。 |
pg_replication_origin_xact_reset () → void pg_replication_origin_xact_setup() の効果をキャンセルします。 |
pg_replication_origin_advance (text node_name、lsn pg_lsn) → void 指定されたノードのレプリケーションの進行状況を指定された場所に設定します。 これは、最初の場所を設定する場合、または構成変更後に新しい場所を設定する場合などに主に役立ちます。 この関数を不注意に使用すると、データの複製が一貫しなくなる可能性があります。 |
pg_replication_origin_progress (text node_name、boolean flush) → pg_lsn 指定されたレプリケーションオリジンの再生場所を返します。 パラメータ |
pg_logical_emit_message (トランザクションブール値、プレフィックステキスト、コンテンツテキスト) → pg_lsn pg_logical_emit_message (トランザクションブール、プレフィックステキスト、コンテンツbytea) → pg_lsn 論理復号メッセージを出力します。 これを使用して、汎用メッセージをWALを介して論理復号プラグインに渡すことができます。 |
データベースオブジェクト管理関数
次の表に示す関数は、データベースオブジェクトのディスク領域使用量を計算したり、使用結果の表示や理解を支援したりします。bigintの結果はバイト単位で測定されます。 既存のオブジェクトを表さないOIDがこれらの関数のいずれかに渡された場合、NULLが返されます。
pg_column_size ("any") → integer 個々のデータ値を格納するために使用されるバイト数を示します。 テーブルの列の値に直接適用された場合、これは行われた圧縮を反映します。 |
pg_database_size (name) → pg_database_size (oid) → bigint 指定された名前またはOIDを持つデータベースによって使用される合計ディスク容量を計算します。 この関数を使用するには、指定されたデータベースに対する |
pg_indexes_size (regclass) → 指定されたテーブルにアタッチされたインデックスによって使用される合計ディスク容量を計算します。 |
pg_relation_size (regclass relation [, text fork] ) → bigint 指定されたリレーションの1つの「フォーク」によって使用されるディスクスペースを計算します。 (ほとんどの目的では、すべてのフォークのサイズを合計する上位レベルの関数
|
pg_size_bytes (text) → 人間が読める形式のサイズ ( |
pg_size_pretty (bigint) → text pg_size_pretty (数値) → テキスト バイト単位のサイズを、サイズ単位 (必要に応じてバイト、kB、MB、GB、またはTB) で人間が読みやすい形式に変換します。 単位は10の累乗ではなく2の累乗であり、したがって、1kBは1024バイトであり、1MBは1024 2= 1048576バイトであり、以下同様であることに留意されたい。 |
pg_table_size (regclass) → bigint 指定されたテーブルで使用されるディスク領域を計算します。インデックスは除きます (ただし、TOASTテーブルがある場合は、空き領域マップ、および表示マップを含みます) 。 |
pg_tablespace_size (name) → pg_tablespace_size (oid) → bigint 指定された名前またはOIDを持つテーブルスペースで使用されている合計ディスクスペースを計算します。 この関数を使用するには、現在のデータベースの既定のテーブルスペースでない限り、指定されたテーブルスペースに対する |
pg_total_relation_size (regclass) → bigint すべてのインデックスとTOASTdataを含む、指定されたテーブルによって使用される合計ディスク容量を計算します。 結果は、 |
テーブルまたはインデックスを操作する上記の関数は、regclass引数を受け入れます。これは、単にpg_classシステムカタログ内のテーブルまたはインデックスのOIDです。 ただし、regclassデータ型の入力コンバーターが作業を行うため、OIDを手動で調べる必要はありません。
データベースオブジェクトの場所関数
以下の表に示す機能は、データベースオブジェクトに関連付けられた特定のディスクファイルを識別するのに役立ちます。
pg_relation_filenode (regclass 関係) → oid 指定されたリレーションに現在割り当てられている「filenode」番号を返します。 filenodeは、リレーションに使用されるファイル名の基本コンポーネントです。 ほとんどのリレーションでは、結果は |
pg_relation_filepath (regclass relation) → text リレーションのファイルパス名全体 (データベースクラスターのデータディレクトリ |
pg_filenode_relation (tablespace oid, filenode oid) → regclass テーブルスペースOIDとそれが格納されているファイルノードを指定して、リレーションのOIDを返します。 これは基本的に |
照合順序管理機能
照合の管理に使用する関数を次の表に示します。
pg_collation_actual_versionの (oid) → text オペレーティングシステムに現在インストールされている照合順序オブジェクトの実際のバージョンを返します。 これが |
pg_import_system_collations (regnamespace スキーマ) → integerの オペレーティングシステムで見つかったすべてのロケールに基づいて、システムカタログ |
パーティション化情報関数
次の表に、パーティションテーブルの構造に関する情報を提供する関数を示します。
pg_partition_tree (regclass) → setof record (rerid regclass, parentrelid regclass, isleaf boolean, level integer) 指定されたパーティションテーブルまたはパーティションインデックスのパーティションツリー内のテーブルまたはインデックスを、パーティションごとに1行ずつリストします。 提供される情報は、パーティションのOID、その直接の親のOID、パーティションがリーフであるかどうかを示すブール値、および階層内のそのレベルを示す整数を含む。 レベル値は、入力テーブルまたはインデックスの場合は0、その直接の子パーティションの場合は1、そのパーティションの場合は2などです。 関係が存在しないか、パーティションまたはパーティションテーブルでない場合は、行を返しません。 |
pg_partition_ancests (regclass) → setof regclass 関係自体を含む、指定されたパーティションの祖先関係をリストします。 関係が存在しないか、パーティションまたはパーティションテーブルでない場合は、行を返しません。 |
pg_partition_root (regclass) → regclass 指定されたリレーションが属するパーティションツリーの最上位の親を返します。 リレーションが存在しないか、パーティションまたはパーティションテーブルでない場合は、 |
たとえば、パーティションテーブルの測定値に含まれるデータの合計サイズを確認するには、次のクエリを使用できます。
SELECT pg_size_pretty(sum(pg_relation_size (rerid))) AS total_size
pg_partition_treeから ('measurement'); インデックスメンテナンス機能
次の表に、インデックスのメンテナンスタスクで使用できる機能を示します。 (これらのメンテナンスタスクは通常、自動真空によって自動的に行われます。これらの機能の使用は特別な場合にのみ必要です。) これらの関数はリカバリ中には実行できません。 これらの機能の使用は、スーパーユーザーと指定されたインデックスの所有者に制限されます。
brin_summarize_new_values (regclass インデックス) → integerの 指定されたBRINインデックスをスキャンして、インデックスによって現在要約されていないベーステーブル内のページ範囲を見つけます。そのような範囲に対して、それらのテーブルページをスキャンすることによって新しい要約インデックスタプルを作成します。 インデックスに挿入された新しいページ範囲のサマリの数を返します。 |
brin_summary_range (regclass インデックス、bigint blockNumber) → integerをする 指定されたブロックをカバーするページ範囲を要約します (まだ要約されていない場合) 。 これは、指定されたテーブルブロック番号をカバーするページ範囲のみを処理することを除いて、 |
brin_desalm_range (regclass インデックス、bigint blockNumber) → voidを 指定されたテーブルブロックをカバーするページ範囲がある場合は、ページ範囲を要約するBRINインデックスタプルを削除します。 |
gin_clean_pending_list (regclass インデックス) → 指定されたGINインデックスの「保留」リストを、その中のエントリをメインのGINデータ構造に一括移動することによってクリーンアップします。 保留リストから削除されたページの数を返します。 引数が |
汎用ファイルアクセス関数
次の表に示す関数は、サーバーをホストしているマシン上のファイルへのネイティブアクセスを提供します。 ユーザーがスーパーユーザーであるか、ロールpg_read_server_filesが付与されていない限り、データベースクラスターディレクトリおよびlog_directory内のファイルにのみアクセスできます。 クラスターディレクトリ内のファイルの相対パスと、ログファイルのlog_directory構成設定と一致するパスを使用します。
ユーザーにpg_read_file() または関連する関数のEXECUTE権限を付与すると、データベースサーバープロセスが読み取ることができるサーバー上のファイルを読み取ることができます。これらの関数は、すべてのデータベース内特権チェックをバイパスします。 これは、例えば、そのようなアクセスを有するユーザが、認証情報が格納されているpg_authidテーブルの内容を読み取ることができるとともに、データベース内の任意のテーブルデータを読み取ることができることを意味する。 したがって、これらの機能へのアクセスを許可することは慎重に検討する必要があります。
これらの関数の一部は、ファイルまたはディレクトリが存在しない場合の動作を指定するオプションのmissing_okパラメーターを受け取ります。 trueの場合、関数は必要に応じてNULLまたは空の結果セットを返します。 falseの場合、エラーが発生します。 デフォルトはfalseです。
pg_ls_dir (text dirname [, missing_ok boolean, include_dot_dirs boolean] ) → setof text 指定されたディレクトリ内のすべてのファイル (およびディレクトリおよびその他の特殊ファイル) の名前を返します。 この関数はデフォルトでスーパーユーザーに制限されていますが、他のユーザーにEXECUTEを許可して関数を実行できます。 |
pg_ls_logdir () → setof record (name text、size bigint、modification timestamp with time zone) をする サーバのログディレクトリ内の各通常ファイルの名前、サイズ、および最終変更時刻 (mtime) を返します。 ドット、ディレクトリ、およびその他の特殊ファイルで始まるファイル名は除外されます。 この関数はデフォルトでスーパーユーザーと |
pg_ls_waldir () → setof record (name text、size bigint、modification timestamp with time zone) をする サーバーの先行書き込みログ (WAL) ディレクトリ内の各通常ファイルの名前、サイズ、および最終変更時刻 (mtime) を返します。 ドット、ディレクトリ、およびその他の特殊ファイルで始まるファイル名は除外されます。 この関数はデフォルトでスーパーユーザーと |
pg_ls_archive_statusdir() →setofレコード(名前 テキスト,サイズ ビギント,修正 タイムゾーンのタイムスタンプ) サーバのWALアーカイブステータスディレクトリ ( この関数はデフォルトでスーパーユーザーと |
pg_ls_tmpdir([テーブルスペース oid] ) →setofレコード(名前 テキスト,サイズ ビギント,修正 タイムゾーンのタイムスタンプ) 指定された この関数はデフォルトでスーパーユーザーと |
pg_read_file (filename text [, offset bigint, length bigint [, missing_ok boolean ]] ) → text 指定されたバイト この関数はデフォルトでスーパーユーザーに制限されていますが、他のユーザーにEXECUTEを許可して関数を実行できます。 |
pg_read_binary_file (filename text [, offset bigint, length bigint [, missing_ok boolean ]] ) → bytea ファイルの全部または一部を返します。 この関数は、任意のバイナリデータを読み取ることができ、結果を この関数はデフォルトでスーパーユーザーに制限されていますが、他のユーザーにEXECUTEを許可して関数を実行できます。
|
pg_stat_file(filename テキスト[,missing_ok ブール値] ) →レコード(サイズ ビギント,アクセス タイムゾーンのタイムスタンプ,修正 タイムゾーンのタイムスタンプ,変更 タイムゾーンのタイムスタンプ,作成 タイムゾーンのタイムスタンプ,isdir ブール値) ファイルのサイズ、最終アクセスタイムスタンプ、最終変更タイムスタンプ、最終ファイルステータス変更タイムスタンプ (Unixプラットフォームのみ) 、ファイル作成タイムスタンプ (Windowsのみ) 、およびディレクトリかどうかを示すフラグを含むレコードを返します。 この関数はデフォルトでスーパーユーザーに制限されていますが、他のユーザーにEXECUTEを許可して関数を実行できます。 |
アドバイザリロック関数
次の表に示す関数は、アドバイザリロックを管理します。 これらの関数の適切な使用についての詳細.
これらの関数はすべて、アプリケーション定義のリソースをロックするために使用することを目的としています。このリソースは、単一の64ビットキー値または2つの32ビットキー値によって識別できます (これらの2つのキースペースは重複しません) 。 別のセッションが同じリソース識別子に対して競合するロックをすでに保持している場合、関数は、リソースが利用可能になるまで待つか、関数に応じて偽の結果を返します。 共有ロックは、同じリソース上の他の共有ロックと競合せず、排他ロックでのみ競合します。 ロックは、セッションレベルで (解放されるか、セッションが終了するまで保持されるように) 、またはトランザクションレベルで (現在のトランザクションが終了するまで保持されます。手動解放の規定はありません) 取得できます。 複数のセッションレベルのロック要求がスタックされるため、同じリソース識別子が3回ロックされた場合、セッション終了に先立ってリソースを解放するための3つのロック解除要求が存在する必要があります。
pg_advisory_lock (bigint キー) → void pg_advisory_lock (key1整数、key2整数) → void 排他的セッションレベルのアドバイザリロックを取得し、必要に応じて待機します。 |
pg_advisory_lock_shared (key bigint) → void pg_advisory_lock_shared (key1整数、key2整数) → void 共有セッションレベルのアドバイザリロックを取得し、必要に応じて待機します。 |
pg_advisory_unlock (bigint キー) → ブール値 pg_advisory_unlock (key1整数、key2整数) → ブール値 以前に取得した排他的セッションレベルのアドバイザリロックを解放します。 ロックが正常に解放された場合、 |
pg_advisory_unlock_all () → void 現在のセッションによって保持されているすべてのセッションレベルのアドバイザリロックを解放します。 (この関数は、クライアントが不意に切断した場合でも、セッション終了時に暗黙的に呼び出されます。) |
pg_advisory_unlock_shared (bigint キー) → ブール値 pg_advisory_unlock_shared (key1は整数を、key2は整数を) → ブール値 以前に取得した共有セッションレベルのアドバイザリロックを解放します。 ロックが正常に解放された場合、 |
pg_advisory_xact_lock (bigint キー) → void pg_advisory_xact_lock (key1は整数を、key2は整数を) → void 排他的トランザクションレベルのアドバイザリロックを取得し、必要に応じて待機します。 |
pg_advisory_xact_lock_shared (key bigint) → void pg_advisory_xact_lock_shared (key1は整数を、key2は整数を) → void 共有トランザクションレベルのアドバイザリロックを取得し、必要に応じて待機します。。 |
pg_try_advisory_lock (bigint キー) → ブール値 pg_try_advisory_lock (key1は整数を、key2は整数を) → ブール値 利用可能な場合、排他的セッションレベルのアドバイザリロックを取得します。 これは、直ちにロックを取得して |
pg_try_advisory_lock_shared (bigint キー) → ブール値 pg_try_advisory_lock_shared (key1は整数を、key2は整数を) → ブール値 利用可能な場合、共有セッションレベルのアドバイザリロックを取得します。 これは、直ちにロックを取得して |
pg_try_advisory_xact_lock (bigint キー) → ブール値 pg_try_advisory_xact_lock (key1は整数を、key2は整数を) → ブール値 利用可能な場合、排他的トランザクションレベルのアドバイザリロックを取得します。 これは、直ちにロックを取得して |
pg_try_advisory_xact_lock_shared (bigint キー) → ブール値 pg_try_advisory_xact_lock_shared (key1は整数を、key2は整数を) → ブール値 利用可能な場合、共有トランザクションレベルのアドバイザリロックを取得します。 これは、直ちにロックを取得して |