DataPump Oracle

EXPDP 実行時のダンプファイルのサイズの見積もり方

Datapump のエクスポートをする前に、どのぐらいのサイズのダンプファイルが生成されるのか事前に知りたい!

Datapump のエクスポート実行時に作成されるダンプファイルのサイズはデータサイズに依存するが、見積もり方法は2つ存在する。

方法1:使用済みブロックの数 × ブロックサイズ で計算する

実際に使用済みのブロック数から算出が可能。

実行例

 SQL> select count(distinct(substr(rowid,1,15))) blocks_used from test;

 BLOCKS_USED
 -----------
          36

 SQL> show parameter db_block_size

 NAME                                 TYPE        VALUE
 ------------------------------------ ----------- ------------------------------
 db_block_size                        integer     8192

 SQL> select 36*8192 from dual;

    36*8192
 ----------
     294912

PCTFREE/PCTUSED 等のオーバーヘッドが含まれるので、完全なデータサイズではない

方法2:EXPDP の estimate_only = y オプションを利用する

Datapump を使ってダンプファイルを生成せずに概算値を見積もることが可能。

実行例

 SQL>  ! expdp scott/tiger directory=dumpdirectory tables=test estimate_only=y;

 Export: Release 12.1.0.1.0 - Production on 金 2月 23 09:52:10 2021

 Copyright (c) 1982, 2013, Oracle and/or its affiliates.  All rights reserved.

 接続先: Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
 With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
 "SCOTT"."SYS_EXPORT_TABLE_01"を起動しています: scott/******** directory=dumpdirectory tables=test estimate_only=y 
 BLOCKSメソッドを使用して見積り中です...
 オブジェクト型TABLE_EXPORT/TABLE/TABLE_DATAの処理中です
 .  見積"SCOTT"."TEST"                                384 KB
 BLOCKSメソッドを使用した見積り合計: 384 KB 
 ジョブ"SCOTT"."SYS_EXPORT_TABLE_01"が金 2月 23 09:52:12 2021 elapsed 0 00:00:02で正常に完了しました

対象は表の行データのみとなりメタデータは含まれない

この記事が役に立ったという方は
ボタンをポチッとしてくれたら喜びます

-DataPump, Oracle
-