oracle how-to-audit-backup
TRANSCRIPT
その監査ログきちんと扱えてますか? 統合監査で始める監査ログの
活用秘伝技大公開!@mogmet
2016/09/12 JPOUG in 15 minutes #1
About me• twitter: @mogmet
• 好物:iOS, php, MySQL, Oracle
• 仕事:インフラエンジニア→iOSエンジニア→フリーランスなDBA
• ブログとか: http://mogmet.com/
• 作ったアプリたち↓
ワンナイト人狼 for iPhone STARBUCKSHOLIC
最近12c Platinum移行試験受けてきました
Oracleの監査方法について
今までのOracleでの監査
今までのOracleでの監査
必須監査
特権ユーザ監査
audit_file_dest
今までのOracleでの監査
標準監査
audit_file_dest
SYS.AUD$
今までのOracleでの監査
FGA監査 SYS.FGA_LOG$
今までのOracleでの監査
Oracle Database Vault監査
DVSYS. AUDIT_TRAIL$
いろんなところに設定とか 格納場所がちらばりすぎている!!
12cからのOracleでの監査
12cからのOracleでの監査
必須監査 特権ユーザ監査
標準監査 FGA監査
Oracle Database Vault監査
12cからのOracleでの監査
DataPump操作監査 RMAN操作監査
Oracle Label Seurity操作監査 Real Application Security操作監査
etc…
12cからのOracleでの監査
全て1つにまとめました!
12cからのOracleでの監査
SYS.UNIFIED_AUDIT_TRAILに!!!!
12cからのOracleでの監査
そう、統合監査ならね
How to backup
How to backup
audit_file_destファイルをそのまま
バックアップ
How to backupRMANを用いて
DBもしくは表領域単位でバックアップ
DVSYS. AUDIT_TRAIL$
SYS.FGA_LOG$
SYS.AUD$
RMAN
SYS. UNIFIED_AUDIT_TRAIL
How to backup
expdpで論理的に バックアップ
expdpDVSYS.
AUDIT_TRAIL$
SYS.FGA_LOG$
SYS.AUD$
SYS. UNIFIED_AUDIT_TRAIL
ではhow to read?
How to read
audit_file_dest そのまま 見る!
How to readRMANを用いて
DBもしくは表領域単位でリストア
DVSYS. AUDIT_TRAIL$
SYS.FGA_LOG$
SYS.AUD$
RMAN
SYS. UNIFIED_AUDIT_TRAIL
How to read
impdpで論理的に 戻す
impdpDVSYS. AUDIT_TRAIL$
FGA_LOG$
AUD$
UNIFIED_AUDIT_TRAIL
監査ログを見る シチュエーション
cf:http://oldhatcreative.com/sites/default/files/styles/blog-full-preview/public/blog-featured-images/A_long_time_ago.png?itok=GC0cDPZt
cf: http://amaraawathi.com/files/article_images/746.jpg
cf: http://amaraawathi.com/files/article_images/746.jpg
弊社システムは統合監査を使って 監査を行い、毎日監査ログを
バックアップ後パージしている。 そのため、過去一年の監査ログを バックアップから復元して調査
したいな♡
超宇宙的意訳
cf: http://amaraawathi.com/files/article_images/746.jpg
あ、でも、監査ログは本番環境 使ってみてね★
超宇宙的意訳
RMANを用いた場合
RMANを用いた場合
昔の物理バックアップから戻すって表領域のPITRでするしかない!?
RMANを用いた場合
そもそも本番環境で そんなリスキーなことしたくない
結論:RMANで戻すRE
JECTED
そういえば12cの新機能で
http://docs.oracle.com/cd/E57425_01/121/BRADV/release_changes.htm#GUID-942161A2-
E33E-4AE2-8122-F90DAB15FA58
バックアップの新機能
RMANバックアップからの 表および表パーティションのリカバリ
これなら物理バックアップ でもいけるのでは!?
RMANバックアップからの 表および表パーティションのリカバリ
仕組み
RMANバックアップからの 表および表パーティションのリカバリ
補助インスタンス 本番インスタンス
RMANバックアップ
リストア
expdp x impdpでインポート
補助インスタンス使うのは なんか負荷高くなりそうで怖くない?
RMANバックアップからの 表および表パーティションのリカバリ
やっぱリスキー!
RMANバックアップからの 表および表パーティションのリカバリ
結論:RMANバックアップからの 表および表パーティションのリカバリ
REJEC
TED
物理バックアップから戻すRE
JECTED
そもそも期間データを 取り出すのに向いていない
impdpを用いた場合
impdpを用いた場合
1年分のダンプのファイル数 すごくない?!
impdpを用いた場合
365回もimpdpを入力するのは手間感がある
結論:impdpで戻すRE
JECTED
(๑´•.̫ • `๑)
更に別の方法を考える
外部表
外部表
外部ファイルを表として扱える!
外部表
外部表
DATAPUMPアクセスドライバ を使うとダンプファイルが読み込める
!!!111
試しにやってみる
外部表
expdpのtablesオプションで指定の表だけを ダンプしたダンプファイルを生成
外部表
expdp system/oracle tables=backaud dumpfile=backaud1.dmp
外部表
expdpで生成した ダンプファイルで外部表を作ってみる
外部表
CREATE TABLE MUKASHI_NO_KANSA ( "AUDIT_TYPE" VARCHAR2(64), "SESSIONID" NUMBER, ... "DIRECT_PATH_NUM_COLUMNS_LOADED" NUMBER)ORGANIZATION EXTERNAL ( TYPE ORACLE_DATAPUMP DEFAULT DIRECTORY data_pump_dir LOCATION ('backaud1.dmp', 'backaud2.dmp')); 複数ファイル指定できる!
…) TYPE ORACLE_DATAPUMP DEFAULT DIRECTORY data_pump_dir LOCATION ('backaud1.dmp', 'backaud2.dmp')103 );
Table created.
とりあえずできた! ので中身を見てみる
外部表
SQL> select * from MUKASHI_NO_KANSA;ERROR:ORA-29913: error in executing ODCIEXTTABLEOPEN calloutORA-39324: cannot load data from Data Pump dump file "/u01/app/oracle/admin/prod1/dpdump/backaud1.dmp"
no rows selected
expdpのファイルは 使えない!
外部表
外部表のDATAPUMPアクセスドライバ を用いてて出力してあげる
外部表
CREATE TABLE backup_na_kansaORGANIZATION EXTERNAL( TYPE ORACLE_DATAPUMP DEFAULT DIRECTORY data_pump_dir LOCATION ('backaud1.dmp')) AS SELECT * FROM unified_audit_trail;
data_pump_dirに、backaud1.dmpが出力される
外部表
One more chance
外部表
CREATE TABLE MUKASHI_NO_KANSA ( "AUDIT_TYPE" VARCHAR2(64), "SESSIONID" NUMBER, ... "DIRECT_PATH_NUM_COLUMNS_LOADED" NUMBER)ORGANIZATION EXTERNAL ( TYPE ORACLE_DATAPUMP DEFAULT DIRECTORY data_pump_dir LOCATION ('backaud1.dmp', 'backaud2.dmp')); 今度は外部表作成時に出来た
ダンプファイルを指定
SQL> select count(*) from MUKASHI_NO_KANSA;
COUNT(*)---------- 240
複数のバックアップからでも外部表が出来た!!!
外部表
結論:外部表を使うACCEPTED
まとめ
まとめ• 物理バックアップから戻すときは期間のデータ
を取り出しづらい
• 期間のデータなら論理バックアップのほうが扱いやすい
• 外部表のDATAPUMPアクセスドライバを使えばファイル名の指定だけでデータを読み込める
Thank you for listening!