web-dev-qa-db-ja.com

dbms_datapump APIはインポート中に統計を除外します

dbms_datapumpを使用して、異なるサーバー間でデータをコピーするか、新しいスキーマをすばやくセットアップしています。

ただし、統計のインポートには通常、時間がかかり、インポート後にスキーマ統計がロックされるという欠点もあります。

だから私は統計のインポートをスキップする方法を見つけようとしています。

Metalink Doc ID 1392981.1によれば、これは以下を使用して可能であるはずです。

dbms_datapump.metadata_filter(handle => l_job_handle, 
      name => 'EXCLUDE_PATH_LIST', 
      value => '''STATISTICS''');

しかし、それを試してみると、「ORA-39001:無効な引数値」エラーが発生します。

また、別の場所にある他のさまざまなフォーマットも試しました。

dbms_datapump.metadata_filter(handle => l_job_handle, 
      name => 'EXCLUDE_PATH_LIST', 
      value => 'STATISTICS');

dbms_datapump.metadata_filter(handle => l_job_handle, 
       name => 'EXCLUDE_PATH_EXPR', 
       value => 'like ''%/TABLE/STATISTICS/TABLE_STATISTICS''');

dbms_datapump.metadata_filter(handle => l_job_handle, 
       name => 'EXCLUDE_PATH_EXPR', 
       value => 'like ''%STATISTICS%''');

しかし、それらはすべて、ORA-39001で戻ります。

私が使用しているバージョンは次のとおりです。

Oracle Database 11g Enterprise Editionリリース11.2.0.4.0-64ビット本番

オペレーティングシステムはWindowsサーバーですが、これはLinuxインストールでも発生します。

DBMS_DATAPUMP AP​​Iを使用してインポート(またはエクスポート)中に統計をスキップする方法はありますか?

使用する必要があります:

DBMS_DATAPUMP.METADATA_FILTER(l_job_handle,
                              'EXCLUDE_PATH_EXPR',
                              'IN (''STATISTICS'')');
5
Philᵀᴹ