oracle

Oracle ET$で始まるテーブル

Data Pumpは外部表を使っている?

ふと気づくといつの間にかにET$から始まるテーブルができていました。調べてみるとData Pumpが動作する際外部表として一時的に作成され、終了すると自動で削除されるテーブルのようです。過去にimpdpを無理やりkillした事があったのでその際に残ってしまっていたのかもしれません、、

除外される表は次のとおりです(*ワイルドカードは任意のスキーマまたは文字を示します)。

.AQ$“, // advanced queues
.DR$$“, // oracle text “.M$$”, // Spatial index
“.MLOG$”, // materialized views
“.OGGQT$”,
“.OGG$”, // AQ OGG queue table
“.ET$”, // Data Pump external tables
“.RUPD$”, // materialized views
“.SYS_C”, // constraints
“.MDR$”, // Spatial Sequence and Table “
.SYS_IMPORT_TABLE“, “.CMP$“, // space management, rdbms >= 12.1
.DBMS_TABCOMP_TEMP_“, // space management, rdbms < 12.1
.MDXT_$*” // Spatial extended statistics tables

https://docs.oracle.com/cd/E74358_01/gg-winux/GIORA/GUID-BE4AFF36-96D6-4FF6-965E-C9C99B0F306B.htm
DBA_EXTERNAL_TABLESを確認する

DBA_EXTERNAL_TABLESは外部表が定義されているビューです。こちらを確認するとET$で始まるテーブルも含まれていました。たしかにData Pumpで使われていそうです。今回は偶然にも、Data Pumpは外部表をつかってデータのロードしている事がわかりました。

SQL> set lin 200
SQL> COLUMN OWNER FORMAT A10
SQL> COLUMN TABLE_NAME FORMAT A20
SQL> COLUMN TYPE_NAME FORMAT A18
SQL> COLUMN DEFAULT_DIRECTORY_NAME FORMAT A18
SQL> COLUMN ACCESS_TYPE FORMAT A8
SQL> select t.OWNER,t.TABLE_NAME,t.TYPE_NAME,t.DEFAULT_DIRECTORY_NAME,t.ACCESS_TYPE
  2  from DBA_EXTERNAL_TABLES t order by 1,2
  3  ;

OWNER      TABLE_NAME           TYPE_NAME          DEFAULT_DIRECTORY_ ACCESS_T
---------- -------------------- ------------------ ------------------ --------
SOONI      ET$001417230001      ORACLE_DATAPUMP    DUMP_DIR           CLOB
SOONI      EXT_ADDRESS_CHOME    ORACLE_LOADER      EXTABLES           CLOB
SYS        OPATCH_XML_INV       ORACLE_LOADER      OPATCH_SCRIPT_DIR  CLOB

SQL>

スポンサーリンク