すべてのプロダクト
Search
ドキュメントセンター

ApsaraDB RDS:ApsaraDB RDS for PostgreSQLインスタンスでSQLステートメントを実行したときに、「ERROR: 一時的なファイルサイズがtemp_file_limit(8388608kb) を超えている」というエラーメッセージが表示された場合はどうすればよいですか。

最終更新日:Jan 18, 2024

問題の説明

ApsaraDB RDS for PostgreSQLインスタンスでSQLステートメントを実行すると、次のエラーメッセージが表示されます。

エラー: 一時的なファイルサイズがtemp_file_limit(8388608kb) を超えています

原因

SQL文を実行すると、大きな一時テーブルが生成され、一時テーブルが占有するストレージがtemp_file_limitパラメーターで指定された上限を超えます。

解決策

一時テーブルが占有できるストレージの上限を照会し、上限を増やします。

  1. データ管理 (DMS) を使用してRDSインスタンスにログインします。 詳細については、「DMSを使用したApsaraDB RDS For PostgreSQLインスタンスへのログイン」をご参照ください。

  2. DMSコンソールの左側のナビゲーションウィンドウで、必要なデータベースをダブルクリックします。 SQLConsoleタブが表示されます。

  3. [SQLConsole] タブで、次の文を入力し、[実行] をクリックして、一時テーブルが占有できるストレージの上限を照会します。

    temp_file_limitを表示します。

  4. [SQLConsole] タブで、次の文を入力し、[実行] をクリックして、一時テーブルが占有できるストレージの上限を増やします。

    alter role all set temp_file_limit = [$Temp_File_Limit];
    説明

    [$Temp_File_Limit] は、一時テーブルが占有できるストレージの新しい上限を指定します。 (単位:KB) このパラメーターの値は、エラーメッセージに記載されている一時テーブルのサイズよりも大きくなければなりません。 たとえば、エラーメッセージに記載されている一時テーブルのサイズが8388608kbの場合、このパラメーターを20000000kbに設定することを推奨します。

  5. [SQLConsole] タブを閉じ、[SQLコンソール] タブをクリックします。 [SQLConsole] タブで、次の文を再実行して、一時テーブルを占有できるストレージの新しい上限が適用されていることを確認します。

    temp_file_limitを表示します。

  6. SQL文を再実行して, エラーメッセージが表示されないことを確認してください。

    説明

    SQL文を実行して一時的なクエリを実行する場合は、SQL文の実行後に上限値を元の値に戻すことを推奨します。 上限を元の値に復元しないと、一時テーブルがRDSインスタンスのストレージを使い果たし、RDSインスタンスがロックされる可能性があります。

適用範囲

  • ApsaraDB RDS for PostgreSQL