OracleのLogMinerを使う
Oralce8の時代から十数年にわたって運用し続けているOracleインスタンスがあるんですが、すでに使われなくなって久しいテーブルスペースがあるみたい。
検証するために、当該テーブルスペースへのSQL的なアクセスがあったかどうかをLogminerを使って検証してみました。Oracleは11gです。
解析対象アーカイブログファイルを指定する
SQLPlusをsysadminで起動したのち、SYS.DMBS_LOGMNERストアドプロシージャを起動して、解析対象のファイルを指定。
# sqlplus /nolog SQL> connect system/hogehoge as sysdba ; Connected. SQL> EXECUTE DBMS_LOGMNR.ADD_LOGFILE( - > LOGFILENAME => '/storage/univdb/arch/1.dbf',- > OPTIONS => DBMS_LOGMNR.NEW); PL/SQL procedure successfully completed.
同様にして、解析対象アーカイブファイルを追加。OPTIONSのところがすこし違う。
SQL> EXECUTE DBMS_LOGMNR.ADD_LOGFILE( - > LOGFILENAME => '/storage/univdb/arch/1_48648_673284082.dbf',- > OPTIONS => DBMS_LOGMNR.ADDFILE) ; PL/SQL procedure successfully completed.
解析対象期間分のアーカイブログを同様にして追加していく。
解析実施
DBMS_LOGMNR.START_LOGMNRストアドプロシージャで解析実施。
SQL> EXECUTE DBMS_LOGMNR.START_LOGMNR(- > OPTIONS => DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG + - > DBMS_LOGMNR.COMMITTED_DATA_ONLY + - > DBMS_LOGMNR.PRINT_PRETTY_SQL); PL/SQL procedure successfully completed.