エラー報告とログ取得

PostgreSQL 9.0.0文書
前のページ | 巻戻し | 第 18章サーバの設定 | 早送り | 次のページ

# 18.7. エラー報告とログ取得

## 18.7.1. ログの出力先

`log_destination` (`string`)

  PostgreSQLは、stderr、csvlogおよびsyslogを含めて、サーバメッセージのログ取得に対し数種類の方法を提供します。 Windowsでは、eventlogも同時に提供します。 このパラメータを設定するには、コンマ区切りでお好みのログ出力先を記載します。 デフォルトでは、ログはstderrのみに出力されます。 このパラメータは`postgresql.conf`ファイル、または、サーバのコマンドラインでのみ設定されます。

  csvlogが`log_destination`に含まれる場合、ログ項目はプログラムへの読み込みが簡便な"カンマ区切り値"書式（CSV）で出力されます。 詳細は項18.7.4を参照してください。 CSV書式のログ出力を生成するためには`logging_collector`を有効にする必要があります。

  > 注意: `log_destination`でsyslogオプションを使用できるようにするために、ほとんどのUnixシステムではシステムのsyslogデーモンの設定を変更しなければならないでしょう。 PostgreSQLではログを`LOCAL0`から`LOCAL7`までのsyslogファシリティで記録することができます（syslog_facilityを参照してください）。 しかし、ほとんどのプラットフォームのデフォルトのsyslog設定ではこれらのメッセージはすべて破棄されます。 うまく動作させるためにsyslogデーモンの設定に以下のようなものを追加しなければならないでしょう。

  >     local0.*    /var/log/postgresql

`logging_collector` (`boolean`)

  このパラメータは、stderrに送られた平文およびCSV書式のログメッセージを捕捉しログファイルにリダイレクトします。 この方法はsyslogへのログよりもしばしば有用です。 メッセージの一部の種類がsyslogでは出力されない可能性があるためです （一般的な例として、ダイナミックリンカのエラーメッセージがあります）。 このパラメータはサーバ起動時のみ設定可能です。

  > 注意: コレクタのログ取得はメッセージを決して失わないために設計されました。 これは、極端に高い負荷の場合、サーバプロセスはコレクタが遅れをとった場合、追加のログメッセージを送信しようと試みるため、阻止される可能性があります。それとは反対にsyslogは、もし書き込みができなかったときメッセージの廃棄方を選びます。 この意味は、これらの場合にはより信頼性が劣りますが、残ったシステムを阻止しません。

`log_directory` (`string`)

  `logging_collector`が有効な場合、このパラメータは作成されたログファイルのファイル名を設定します。 値はstrftimeパターンとして扱われるため、`%`エスケープを使用して、時刻によって変動するファイル名を指定することができます。 （時間帯に依存した`%`エスケープが存在する場合、log_timezoneで指定された時間帯で計算が行われます。） システムのstrftimeは直接使用されないので、プラットフォーム固有の（非標準）の拡張は動作しません。

`log_filename` (`string`)

  `logging_collector`が有効な場合、このパラメータは作成されたログファイルのファイル名を設定します。 値はstrftimeパターンとして扱われるため、`%`エスケープを使用して、時刻によって変動するファイル名を指定することができます。 （時間帯に依存した`%`エスケープが存在する場合、log_timezoneで指定された時間帯で計算が行われます。） システムのstrftimeは直接使用されないので、プラットフォーム固有の（非標準）の拡張は動作しません。

  エスケープすることなくファイル名を指定する場合、ディスク全体を使い切ってしまうことを防止するためにログローテーションを行うユーティリティを使用することを計画しなければなりません。 8.4より前のリリースのPostgreSQLでは、`%`エスケープがなければ、新しいログファイルの生成時のエポック時刻を付与しますが、これはもはや当てはまりません。

  CSV書式の出力が`log_destination`で有効な場合、タイムスタンプ付きのログファイル名にに`.csv`を付与し、最終的なCSV書式出力用のファイル名が作成されます。 （log_filenameが`.log`で終わる場合は後置詞が置き換えられます。） 上の例の場合、ファイル名は`server_log.1093827753.csv`となります。

  このパラメータは`postgresql.conf`か、サーバコマンドラインのみ設定可能です。

`log_rotation_age` (`integer`)

  `logging_collector`が有効な場合、このパラメータは個々のログファイルの最大寿命をを決定します。 ここで指定した時間（分単位）経過すると、新しいログファイルが生成されます。 ゼロに設定することで、時間に基づいた新しいログファイルの生成は無効になります。 このパラメータは、`postgresql.conf`ファイル、または、サーバのコマンドラインでのみで設定されます。

`log_rotation_size` (`integer`)

  `logging_collector`が有効な場合、このパラメータは個々のログファイルの最大要領を決定します。 ここで指定したキロバイト分ログファイルに出力された後、新しいログファイルが生成されます。 ゼロに設定することで、サイズに基づいた新しいログファイルの生成は無効になります。 このパラメータは`postgresql.conf`ファイル、または、サーバのコマンドラインでのみで設定されます。

`log_truncate_on_rotation` (`boolean`)

  `logging_collector`が有効な場合、このパラメータにより、PostgreSQLは既存の同名のファイルに追加するのではなく、そのファイルを切り詰める（上書きする）ようになります。 しかし、切り詰めは時間を基にしたローテーションのために新規にファイルが開かれた時にのみ発生し、サーバ起動時やサイズを基にしたローテーションでは発生しません。 偽の場合、全ての場合において既存のファイルは追記されます。 例えば、この設定を`postgresql-%H.log`のような`log_filename`と組み合わせて使用すると、24個の時別のログファイルが生成され、それらは周期的に上書きされることになります。 このパラメータは`postgresql.conf`ファイル、または、サーバのコマンドラインで設定されます。

  例：7日間のログを保存し、毎日のログを `server_log.Mon`、`server_log.Tue`、等とし、そして自動的に前週のログを今週のログで上書きするには以下のように設定します。 `log_filename` を `server_log.%a`とし、 `log_truncate_on_rotation` を `on`にし、そして `log_rotation_age` を `1440`に設定します。

  例：24時間のログを保持、1時間おきに1つのログファイルを作成、ただし、ログファイルのサイズが1ギガバイトを超えそうな場合即座に切り替えさせるには、 `log_filename` を `server_log.%H%M`にし、 `log_truncate_on_rotation` を `on`にし、 `log_rotation_age` を `60`にし、そして `log_rotation_size` を `1000000`に設定します。 `log_filename`に`%M`を含めると、元の時間毎のファイル名と異なる名前を選択する可能性がある、サイズを元にしたローテーションを行うことができます。

`syslog_facility` (`enum`)

  syslogへのログ取得が有効な場合、このパラメータはsyslogの"facility"が使われるように確定します。 `LOCAL0`、`LOCAL1`、`LOCAL2`、`LOCAL3`、`LOCAL4`、`LOCAL5`、`LOCAL6`、`LOCAL7`の中から選んでください。 デフォルトは`LOCAL0`です。 使用しているシステムのsyslogデーモンの文書を同時に参照してください。 このパラメータは`postgresql.conf`ファイル、または、サーバのコマンドラインでのみで設定されます。

`syslog_ident` (`string`)

  syslogにログ取得が有効な場合、このパラメータはsyslogログ内のPostgreSQLメッセージを特定するのに使用するプログラム名を確定します。デフォルトは`postgres`です。 このパラメータは、`postgresql.conf`ファイル、または、サーバのコマンドラインでのみで設定されます。

`silent_mode` (`boolean`)

  サーバをメッセージ出力なしで実行します。 このパラメータを設定すると、サーバは自動的にバックグラウンドで起動し、制御端末を切り離します。 このパラメータはサーバ起動時にのみ設定可能です。

  注意
  このパラメータが設定されると、サーバの標準出力と標準エラーはディレクトリ内の`postmaster.log`ファイルにリダイレクトされます。 このファイルを使い廻す方策はありません。従って、他の設定でサーバのログ出力が別のどこかにリダイレクトされない限り理由なく肥大化します。`log_destination`を`syslog`に設定するか、その`logging_collector`オプションを設定するときに有効にします。これらの対策を施しても、通常のログ送り先ではなく`postmaster.log`ファイルに起動時点のエラーが報告されることがあります。

## 18.7.2. いつログを取得するか

`client_min_messages` (`enum`)

  どのメッセージ階層をクライアントに送るかを管理します。有効な値は、`DEBUG5`、 `DEBUG4`、`DEBUG3`、`DEBUG2`、 `DEBUG1`、`LOG`、`NOTICE`、 `WARNING`、`ERROR`、`FATAL`、および`PANIC`です。それぞれの階層はそれに続く全ての階層を包含します。階層が後の方になるにつれ、より少ないメッセージが送られます。デフォルトは`NOTICE`です。ここでの`LOG`の優先順位が`log_min_messages`の場合と異なることに注意してください。

`log_min_messages` (`enum`)

  どのメッセージ階層をサーバログに書き込むかを管理します。有効な値は `DEBUG5`、`DEBUG4`、 `DEBUG3`、`DEBUG2`、`DEBUG1`、 `INFO`、`NOTICE`、`WARNING`、 `ERROR`、`LOG`、`FATAL`、および `PANIC`です。それぞれの階層はその下の全ての階層を含みます。階層を低くする程、より少ないメッセージがログに送られます。デフォルトは`WARNING`です。ここでの`LOG`の優先順位が`client_min_messages`の場合と異なることに注意してください。スーパユーザのみこの設定を変更できます。

`log_min_error_statement` (`enum`)

  エラー条件の原因となったどのSQL文をサーバログに記録するかを制御します。 設定したレベル以上のメッセージについては現在のSQL文がログに記録されます。 有効な値は、`DEBUG5`、`DEBUG4`、`DEBUG3`、`DEBUG2`、`DEBUG1`、`INFO`、`NOTICE`、`WARNING`、`ERROR`、`LOG`、`FATAL`、`PANIC`です。 デフォルトは`ERROR`です。 エラー、ログメッセージ、致命的エラー、パニックを引き起こした文がログに記録されることを意味します。 失敗した文の記録を実質的に無効にするには、このパラメータを`PANIC`に設定してください。 スーパーユーザのみがこのオプションを変更することができます。

`log_min_duration_statement` (`integer`)

  文の実行に少なくとも指定したミリ秒数かかった場合、それぞれの文の実行に要した時間をログに記録します。 0に設定すれば、すべての文の実行時間が出力されます。 -1（デフォルト）は、文実行時間の記録を無効にします。 例えば、`250ms`と設定した場合、250msもしくはそれ以上長くかかった全てのSQL文がログとして残ります。 このパラメータを有効にすることにより、アプリケーションで最適化されていない問い合わせを追跡するのが便利になります。 スーパーユーザのみこの設定を変更できます。

  拡張問い合わせプロトコルを使用するクライアントでは、Parse、Bind、Executeそれぞれの段階で要した時間が独立して記録されます。

  > 注意: このオプションとlog_statementを一緒に使用する時、`log_statement`によってログされるテキスト文は、実行時間のログには重複されません。 syslogを使用していなければ、プロセスIDとセッションIDを使用して、文メッセージと後の実行時間メッセージを関連付けできるように、log_line_prefixを使用してPIDまたはセッションIDをログに記録することを勧めます。

表18-1で、PostgreSQLで使用されるメッセージ深刻度レベルを説明します。 ログ出力がsyslogまたはWindowsのeventlogに送られる場合、この深刻度レベルは表で示すように変換されます。

表 18-1. メッセージ深刻度レベル

深刻度 | 使用方法 | syslog | eventlog
--- | --- | --- | ---
`DEBUG1..DEBUG5` | 開発者が使用する連続的かつより詳細な情報を提供します。 | `DEBUG` | `INFORMATION`
`INFO` | `VACUUM VERBOSE`の出力などの、 ユーザによって暗黙的に要求された情報を提供します。 | `INFO` | `INFORMATION`
`NOTICE` | 長い識別子の切り詰めに関する注意など、 ユーザの補助になる情報を提供します。 | `NOTICE` | `INFORMATION`
`WARNING` | トランザクションブロック外での`COMMIT`の様な、 ユーザへの警告を提供します。 | `NOTICE` | `WARNING`
`ERROR` | 現在のコマンドを中断させる原因となったエラーを報告します。 | `WARNING` | `ERROR`
`LOG` | チェックポイントの活動の様な、 管理者に関心のある情報を報告します。 | `INFO` | `INFORMATION`
`FATAL` | 現在のセッションを中断させる原因となったエラーを報告します。 | `ERR` | `ERROR`
`PANIC` | 現在のセッションを中断させる原因となったエラーを報告します。 | `CRIT` | `ERROR`

## 18.7.3. 何をログに

`application_name` (`string`)

  `application_name`は`NAMEDATALEN`文字以下（標準構築では64文字）のいかなる文字列が可能です。 サーバに接続するときに、典型的にアプリケーションで設定されます。 名前は`pg_stat_activity`ビューに表示され、CVSログ項目に含まれます。 log_line_prefixパラメータで通常のログ項目にも含まれます。 印字可能なASCII文字のみ`application_name`値に使用されます。 その他の文字は疑問符（`?`）に置換されます。

`debug_print_parse` (`boolean`)
`debug_print_rewritten` (`boolean`)
`debug_print_plan` (`boolean`)

  これらのパラメータは生成される各種デバッグ出力を有効にします。 設定すると実行された問い合わせそれぞれに対し、最終的な解析ツリー、問い合わせリライタの出力、実行計画を出力します。 これらのメッセージは`LOG`メッセージレベルで出力されますので、デフォルトではサーバログに出力され、クライアントには渡されません。 client_min_messages、log_min_messagesまたはその両方を調整することで変更することができます。 デフォルトではこれらのパラメータは無効です。

`debug_pretty_print` (`boolean`)

  設定された場合、`debug_print_parse`、 `debug_print_rewritten`、または `debug_print_plan`で生成されたメッセージを字下げします。設定されない場合の"コンパクト"形式よりもより見やすく、しかしより長いものとなります。デフォルトは有効です。

`log_checkpoints` (`boolean`)

  チェックポイントをサーバログに記録するようにします。 書き出されたバッファ数や書き出しに要した時間など、各チェックポイントに関する一部の統計情報がこのログメッセージに含まれます。 このパラメータは`postgresql.conf`ファイルまたはサーバのコマンドラインでのみ設定可能です。 デフォルトはoffです。

`log_connections` (`boolean`)

  これにより、クライアント認証の成功終了などのサーバへの接続試行がログに残ります。 このパラメータは`postgresql.conf`ファイル、または、サーバのコマンドラインでのみで設定されます。 デフォルトはoffです。

  > 注意: psqlなどクライアントプログラムの中には、パスワードを要求されると決定まで2回接続を試みるので、二重の"connection received"メッセージは必ずしも問題を示すものではありません。

`log_disconnections` (`boolean`)

  これは`log_connections`同様の出力をサーバログに行い、さらに加えて、セッション終了時にセッションの期間も出力します。 デフォルトではこれはoffです。 このパラメータは`postgresql.conf`ファイル、または、サーバのコマンドラインでのみで設定可能です。

`log_duration` (`boolean`)

  すべての完了した文について、その経過時間をログするようにします。 デフォルトは`off`です。 スーパーユーザのみがこの設定を変更することができます。

  拡張問い合わせプロトコルを使用するクライアントでは、Parse、Bind、Executeそれぞれの段階で要した時間が独立して記録されます。

  > 注意: このオプションとlog_min_duration_statementを0に設定する方法との違いは、`log_min_duration_statement`を超えた場合、テキスト版の問い合わせが強制的に出力されるのに対して、このオプションでは出力されないという点です。 したがって、`log_duration`が`on`、かつ、`log_min_duration_statement`が正の値を持つ場合、すべての経過時間がログに記録されますが、閾値を超えた文のみがテキスト版の問い合わせが含められるようになります。 この動作は、高負荷なインストレーションで統計情報を収集する際に有用です。

`log_error_verbosity` (`enum`)

  ログ取得されるそれぞれのメッセージに対し、サーバログに書き込まれる詳細の量を制御します。 有効な値は、`TERSE`、`DEFAULT`、および`VERBOSE`で、それぞれは表示されるメッセージにより多くのフィールドを追加します。 `TERSE`は`DETAIL`、`HINT`、`QUERY`、および`CONTEXT`エラー情報を除外します。 `VERBOSE`出力は、`SQLSTATE`エラーコード（付録Aも参照）、および、ソースコードファイル名、関数名、そしてエラーを生成した行番号を含みます。 スーパユーザのみこの設定を変更できます。

`log_hostname` (`boolean`)

  デフォルトでは、接続ログメッセージは接続元ホストのIPアドレスのみを表示します。 このパラメータを有効にすると、ホスト名もログに残るようになります。 ホスト名解決方法の設定に依存しますが、これが無視できないほどの性能劣化を起こす可能性があることに注意してください。 このパラメータは`postgresql.conf`ファイル内またはサーバのコマンドラインでのみ設定可能です。

`log_line_prefix` (`string`)

  これは、各ログ行の先頭に出力する`printf`の書式文字列です。 `%`から始まる"エスケープシーケンス"は、後述の通りのステータス情報で置き換えられます。 この他のエスケープは無視されます。 他の文字はそのままログ行に出力されます。 エスケープの中には、セッションプロセスによってのみ認識可能なものがあり、これらは主サーバプロセスなどのバックグラウンドプロセスでは無視されます。 このパラメータは、`postgresql.conf`ファイル、または、サーバのコマンドラインでのみで設定することができます。 デフォルトは空文字列です。

  エスケープ | 効果 | セッションのみ
  --- | --- | ---
  `%a` | アプリケーション名 | ○
  `%u` | ユーザ名 | ○
  `%d` | データベース名 | ○
  `%r` | 遠隔ホスト名、またはIPアドレス、およびポート番号 | ○
  `%h` | 遠隔ホスト名、またはIPアドレス | ○
  `%p` | プロセス識別子 | ×
  `%t` | ミリ秒無しのタイムスタンプ | ×
  `%m` | ミリ秒付きタイムスタンプ | ×
  `%i` | コマンドタグ。セッションの現在のコマンド種類 | ○
  `%e` | SQLSTATE エラーコード | ×
  `%c` | セッションID。下記参照 | ×
  `%l` | 各セッションまたは各プロセスのログ行の番号。1から始まります。 | ×
  `%s` | プロセスの開始タイムスタンプ | ×
  `%v` | 仮想トランザクションID（backendID/localXID） | ×
  `%x` | トランザクションID （未割り当ての場合は0） | ×
  `%q` | 何も出力しません。 非セッションプロセスではこのエスケープ以降の出力を停止します。 セッションプロセスでは無視されます。 | ×
  `%%` | `%`文字そのもの | ×

  `%c`エスケープは、2つの4バイトの16進数（先頭のゼロは省略）をドットで区切った構成の、準一意なセッション識別子を表示します。 この数値はプロセスの起動時間とそのプロセスIDです。 したがって、`%c`を使用して、これらの項目を出力するための文字数を省略することができます。例として、`pg_stat_activity`からセッション識別子を生成するには以下の問い合わせを行ないます。

      SELECT to_hex(EXTRACT(EPOCH FROM backend_start)::integer) || '.' ||
             to_hex(procpid)
      FROM pg_stat_activity;

  > ティップ: `log_line_prefix`に空白文字以外の値を設定する場合、通常、ログ行の残りとの区切りを明確にするために、その最後の文字を空白文字にすべきです。 句読点用の文字も使用できます。

  > ティップ: Syslogは独自にタイムスタンプとプロセスID情報を生成します。 ですのでおそらく、Syslogにログを保管する場合は、こうしたエスケープを含めるとは考えないでしょう。

`log_lock_waits` (`boolean`)

  セッションがロックの獲得までの間にdeadlock_timeoutより長く待機する場合にログメッセージを生成するかどうかを制御します。 これは、ロックが待たされ性能がでていないのかどうか決める時に有用です。 デフォルトは`off`です。

`log_statement` (`enum`)

  どのSQL文をログに記録するかを制御します。 有効な値は、`none`（off）、`ddl`、`mod`、および`all`（全てのメッセージ）です。 `ddl`は、`CREATE`、`ALTER`、および`DROP`文といった、データ定義文を全てログに記録します。 `mod`は、全ての`ddl`文に加え、`INSERT`、`UPDATE`、`DELETE`、`TRUNCATE`、および`COPY FROM`といった、データ変更文をログに記録します。 `PREPARE`と`EXPLAIN ANALYZE`コマンドも、そこに含まれるコマンドが適切な種類であればログが録られます。 拡張問い合わせプロトコルを使用するクライアントでは、Executeメッセージを受け取った時にBindパラメータの値が（すべての単一引用符が二重にされた常態で）含まれていた場合、ログに記録されます。

  デフォルトは`none`です。スーパユーザのみこの設定を変更できます。

  > 注意: ログメッセージの発行は、基本解析により文の種類が決まった後に行われますので、`log_statement` = `all`という設定を行ったとしても、単純な構文エラーを持つ文は記録されません。 拡張問い合わせプロトコルの場合も同様に、この設定ではExecute段階以前（つまり、解析や計画作成期間）に失敗した文は記録されません。 こうした文のログを記録するには、`log_min_error_statement`を`ERROR`（以下）に設定してください。

`log_temp_files` (`integer`)

  一時ファイル名と容量を制御します。 一時ファイルはソート処理やハッシュ処理、一時的な問い合わせの結果のために作成されます。 ログの項目はすべての一時ファイルそれぞれについて削除されたときに生成されます。 ゼロという値ではすべての一時ファイル情報のログが残ります。 正数ではキロバイト単位の指定値以上の容量のファイルのみがログに残ります。 デフォルトの設定は`-1`で、このログ処理を無効にします。 スーパーユーザのみがこの設定を変更できます。

`log_timezone` (`string`)

  ログに書き出す際に使用される時間帯を設定します。 timezoneと異なり、すべてのセッションで一貫性を持ってタイムスタンプが報告されるようにこの値はクラスタ全体に適用されます。 デフォルトは`unknown`で、時間帯として指定されたシステムの環境を使用することを意味します。 詳細は項8.5.3を参照してください。 このパラメータは`postgresql.conf`内またはサーバのコマンドラインでのみ設定することができます。

## 18.7.4. CSV書式のログ出力の利用

`log_destination`リストに`csvlog`を含めることは、ログファイルをデータベーステーブルにインポートする簡便な方法を提供します。このオプションはカンマ区切り値書式（(CSV）で以下の列を含むログ行を生成します。 ミリ秒単位のtimestamp、 ユーザ名、 データベース名、 プロセス識別子、 クライアントホスト：ポート番号、 セッション識別子、 セッション前行番号、 コマンドタグ、 セッション開始時間、 仮想トランザクション識別子、 通常トランザクション識別子、 エラーの深刻度、 SQL状態コード、 エラーメッセージ、 詳細エラーメッセージ、 ヒント、 エラーとなった内部的な問い合わせ（もしあれば）、 内部問い合わせにおけるエラー位置の文字数、 エラーの文脈、 PostgreSQLソースコード上のエラー発生場所（`log_error_verbosity`が`verbose`に設定されているならば） アプリケーション名 以下にcsvlog出力を格納するためのテーブル定義のサンプルを示します。

    CREATE TABLE postgres_log
    (
      log_time timestamp(3) with time zone,
      user_name text,
      database_name text,
      process_id integer,
      connection_from text,
      session_id text,
      session_line_num bigint,
      command_tag text,
      session_start_time timestamp with time zone,
      virtual_transaction_id text,
      transaction_id bigint,
      error_severity text,
      sql_state_code text,
      message text,
      detail text,
      hint text,
      internal_query text,
      internal_query_pos integer,
      context text,
      query text,
      query_pos integer,
      location text,
      application_name text,
      PRIMARY KEY (session_id, session_line_num)
    );

このテーブルにインポートするためには、`COPY FROM`コマンドを使用してください。

    COPY postgres_log FROM '/full/path/to/logfile.csv' WITH csv;

CSVログファイルをインポートする作業を単純にするためにいくつか必要な作業があります。

1. 一貫性があり、予測可能なログファイル命名機構を提供するために、`log_filename`および`log_rotation_age`を設定してください。 これによりどのようなファイル名になると、個々のログファイルが完了しインポートする準備が整ったかが推測できるようになります。

2. ログファイル名の予測が困難になりますので、`log_rotation_size`を0にして容量を基にしたログの回転を無効にしてください。

3. 同じファイルに古いログデータと新しいログデータが混在しないようにするために、`log_truncate_on_rotate`を`on`に設定してください。

4. 上のテーブル定義にはプライマリキーの指定が含まれています。 これにより、同じ情報が2回インポートされる事故を防止するために有用です。 `COPY`コマンドは、一度にインポートするすべてのデータをコミットしますので、何か1つでもエラーがあればインポート全体が失敗します。 ログファイルの一部をインポートし、そのファイルが完了した後に再度インポートしようとした場合、プライマリキー違反によりインポートが失敗します。 インポートする前に、ログファイルの完了を待ち、閉じるまで待機してください。 この手順は、`COPY`が失敗する原因となる、完全に書き込まれなかった欠落した行をインポートするという事故も防止します。

前のページ | ホーム | 次のページ
問い合わせ計画 | 上に戻る | 実行時統計情報