【必見!応用情報の勉強方法】

【応用情報の合格のコツ】

応用情報の勉強方法や考え方についてまとめてみた。

応用情報の勉強方法をネットで検索すると、さも数十時間の簡単な勉強で合格する試験の様に記述がなされている記事が散見された。

そういった、サイトに限って実際に応用情報の勉強や合格をしていない者が書いた、アフィリエイト記事である。アフィリエイト記事の見分け方は、お勧めの参考書などと書き、参考書の購入ページへ誘導する事が多いので見分けがつく。

前もって書いておくが、応用情報は20%前後の合格率の国家試験であり、情報処理技術を4年学んだ情報系大学卒の者や実務で数年の経験を積んだ情報系実務経験者の多くが不合格となる難しい試験である。

この記事では、応用情報の勉強方法のコツや応用情報の要点について知りたい者へ、私利私欲の為ではなく、私が実際に知り得たノウハウについて共有しよう。


[午前問題について]

・午前問題は、5割程度の問題が過去問題の使い回しやアレンジ問題となるので過去問題を繰り返し解けば良い。目安としては、過去5年分(合計10回分で合計は800問)の問題を9割解ける状態にしておけば良い。

・応用情報の午前問題の理解に苦しむ分野がある場合は、ITパスポートや基本情報などの下位試験の午前問題で基礎を固めると良い。

・午前問題を勉強する際は、分野別に過去問を解くことが良い。それにより断片的な知識に留まらず関連知識を含めた記憶や理解が可能になる。
 
・「午後問題で選択する科目の午前問題」は完璧に仕上げる必要がある。理由としては、午後問題は午前問題の知識を応用とした問題となるため、当該分野の午前問題を完璧に仕上げれば、スムーズに解ける。
 
・午前問題は過去問題の流用が多いので、過去問題10回分(800問)が90%程度解ければ、それでよい。それ以上解いても意味が無い。勉強時間の殆どは午後問題に割り当てるべきである。

 
[午後問題の勉強法について]

・前提として必須の「情報セキュリティ」と選択となる「経営戦略」「システムアーキテクチャ」「ネットワーク」「データベース」「組込みシステム開発」「情報システム開発」「プログラミング(アルゴリズム)」「プロジェクトマネジメント」「サービスマネジメント」「システム監査」の中から、必須1問(情報セキュリティ)+選択4問の合計5問を選択し受験する必要がある。
 
・問題は大分野として「マネジメント」「ストラテジ」「テクノロジ」のに分けられる。

・午後問題は、本番で選択を予定していた問題が難しかった場合に備え、必須1問(セキュリティ) + 選択 4問 + 予備1問は予め勉強しておいた方が良い。

・午後問題は記述式で解答を行う必要があるので、勉強は実際に過去問題を解きノートに記述した方が良い。
 
・記述の際に漢字の間違いは不正解となるので、漢字検定2級レベルの漢字力や情報処理技術者試験でよく出る漢字は予め練習しておくと良い。また、解答時に必要な漢字が思い浮かばない場合に同じ意味となる別の言葉に言い換えられる様にしておくと良い。
 
・午後問題の記述は字数制限があるので、設問で問われている要点をまとめ的確に答える必要がある。実際に過去問題を解き、要点を纏める練習をしておくと良い。

・午後問題における下線部①や図①などに関しては、設問で問われる事が多く、予め印をつけておくと効率がよい。

・午後問題は1問30分程度で解く必要があるので、予め過去問題を解く際にストップウォッチ等を活用し、すばやく問題の本質を抑え、必要な要点を30分以内に纏める練習をしておくと良い。

・午前問題に関する項で上述したとおり、「午後問題」は「午前問題」を知識を基にした応用問題なので、「午後問題」で選択する分野の「午前問題」は100%理解しておくと良い。
 
・テクノロジ系の「システムアーキテクチャ」「NW」「DB」「組み込みシステム開発」などは理解するまでに時間がかかるが、問題の傾向が類似している事が多いので、一度理解してしまえば得点源に出来るので選択する事をお勧めする。

・マネジメント系の問題は簡単な国語の問題である事もままあるが、過去問題と類似傾向の問題が出る事が少なく予め網羅的に準備をする事も難しい。本番で出たとこ勝負になりやすい傾向があるので、マネジメント系の問題に偏って勉強する事はお勧めはしない。

・問題の全体的な難易度はマネジメント系に比べ、テクノロジ系が高く学習にかかるコストが高くなる傾向があるが、学習に費やした時間に比例して得点率も安定して高くなるのでお勧めする。
 
・「ネットワーク」「セキュリティ」「システムアーキテクチャ」等の問題は互いにそれぞれの分野の知識が前提知識となっていることがあるので、その様な知識の相関性のある選択問題を勉強すると効率が良い。同じように「情報システム開発」と「プロジェクトマネジメント」も互いに関連した分野となるので同じ事が言える。

・午後問題に関しては、それぞれの分野の役割を頭に入れた上で、出題者の解答して欲しい内容を書く必要がある。IPAの「講評」を10回分ほど見ることで、出題者がどのような解答を求めているか分かるので、参考にして欲しい。
 
 参考(IPAの講評)
 ttps://www.jitec.ipa.go.jp/1_04hanni_sukiru/_index_mondai.html (h抜き)
 
・午後問題の不合格者は、業務で得た経験やその場での閃きから解答し不正解となる事が多い。午後問題では業務経験から導かれる解答や、その場の閃きでの解答が求められている訳ではない。問題文を正しく読み解き、選択分野の役割に沿って論理的に要点を纏め解答することを終始徹底する必要がある。
 
・不合格者は単純に勉強の絶対量が少ない事があるが、それは論外だ。逆に参考書を複数購入し、過去問を10年分解いている等の対象範囲の広すぎる勉強も効率が悪い。良質な参考書を繰り返し読み良質な問題を繰り返し徹底的に解き理解する事が必要だ。ターゲットを絞り込み反復を繰り返す事が重要なのである。

・具体的な勉強方法としては上記で記載した内容を踏まえ、下記をPDCAで繰り返す事が午後問題の合格に繋がると個人的に考えている。

- 必須 + 選択分野 + 予備1(計6問) の分野について、TAC社の「ニュースペックテキスト 応用情報技術者」を熟読
- 必須 + 選択分野 + 予備1(計6問) に分野ついて、ITEC社の「午後問題の重点対策」を解く
- 必須 + 選択分野 + 予備1(計6問) の分野の過去問題を10回分繰り返し解き、IPAの解答と講評を読む
 

[最後に]

正しい方向性で正しい量の正しい勉強を繰り返せば、必ず合格する試験だ。勉強時間は500時間ほどと見ておけばよい。この勉強法でも午後試験でギリギリ落ちる者もあるだろうが気にするな。ある程度のレベルに達している者は2~3回受験すれば合格するのだ。
それでは武運を祈ろう!!!

午後問題によく出るSQLをOracleで実際に動かしてみようぜ

応用情報の午後対策でSQLについて、試験によく出るSQLの句をOracle databaseで実行した。実際に手を動かすと試験対策でも面白い。まぁ試験じゃSQLがもっと複雑になるけど、基本を完璧にしとけば楽勝で御座る。
 
 
 SQL> ---▼商品表作成
 SQL> CREATE TABLE "商品表"
   2     ("商品番号" VARCHAR2(6) CONSTRAINT PK1 PRIMARY KEY,
   3     "商品名"   VARCHAR2(14)) ;
 
 表が作成されました。
 SQL>
 SQL>
 SQL>--▼売上明細作成
 SQL> CREATE TABLE "売上明細"
   2     ("売上番号" VARCHAR2(6) ,
   3     "商品番号"   VARCHAR2(6),
   4     "数量" NUMBER(10),
   5     "売上金額" NUMBER(10));
 表が作成されました。
 SQL>
 SQL>
 SQL>--▼商品表と売上明細表へのインサート
 SQL> INSERT INTO "商品表" VALUES('S101','A');
 1行が作成されました。
 SQL>
 SQL> INSERT INTO "商品表" VALUES('S102','B');
 1行が作成されました。
 SQL>
 SQL> INSERT INTO "商品表" VALUES('S103','C');
 1行が作成されました。
 SQL>
 SQL> INSERT INTO "商品表" VALUES('S104','D');
 1行が作成されました。
 SQL>
 SQL> INSERT INTO "売上明細" VALUES('U001','S101' ,  5, '7500');
 1行が作成されました。
 SQL>
 SQL> INSERT INTO "売上明細" VALUES('U002','S104' ,  2, '4000');
 1行が作成されました。
 SQL>
 SQL> INSERT INTO "売上明細" VALUES('U002','S101' , 10, '15000');
 1行が作成されました。
 SQL>
 SQL> INSERT INTO "売上明細" VALUES('U003','S103' ,  5, '5000');
 1行が作成されました。
 SQL>
 SQL> INSERT INTO "売上明細" VALUES('U004','S105' ,  8, '16000');
 1行が作成されました。
 SQL>
 SQL> commit;
 コミットが完了しました。
 SQL>
 SQL>
 SQL>--▼商品表と売上明細への基本的なSELECT文
 SQL>
 SQL> select "商品番号", "商品名" from "商品表";
 
 商品番 商品名
 ------ --------------
 S101   A
 S102   B
 S103   C
 S104   D
 SQL> select "売上番号", "商品番号", "数量", "売上金額" from 売上明細;
 
 売上番 商品番       数量   売上金額
 ------ ------ ---------- ----------
 U001   S101            5       7500
 U002   S104            2       4000
 U002   S101           10      15000
 U003   S103            5       5000
 U004   S105            8      16000
 
 SQL>
 SQL>
 SQL>---▼distinctを使ったSELECT文(重複行削除)
 SQL> select distinct "売上番号"
   2  from "売上明細";
 
 売上番
 ------
 U003
 U002
 U001
 U004
 SQL>
 SQL>--▼昇順に並べ替え(ASC)
 SQL> select  "売上金額"
   2  from "売上明細"
   3  order by 1 asc;
 
   売上金額
 ----------
       4000
       5000
       7500
      15000
      16000
 SQL>
 SQL>
 SQL>--▼降順に並べ替え(DESC)
 SQL> select  "売上金額"
   2  from "売上明細"
   3  order by 1 asc;
 
   売上金額
 ----------
       4000
       5000
       7500
      15000
      16000
 SQL>
 SQL>
 SQL>--▼集合関数1(group byとSUM)
 SQL> select "売上番号",  SUM("売上金額") "合計金額"
   2  from "売上明細"
   3  group by ("売上番号");
 
 売上番   合計金額
 ------ ----------
 U003         5000
 U002        19000
 U001         7500
 U004        16000
 SQL>
 SQL>
 SQL>--▼集合関数2(group byとSUMとhaving)
 SQL> select "売上番号",  SUM("売上金額") "合計金額"
   2  from "売上明細"
   3  having SUM("売上金額") > 8000
   4  group by ("売上番号");
 
 売上番   合計金額
 ------ ----------
 U002        19000
 U004        16000
 
 SQL>
 SQL>--▼集合関数3(group byとMAX)
 SQL> select "売上番号",  MAX("売上金額") "合計金額"
   2  from "売上明細"
   3  group by ("売上番号");
 
 売上番   合計金額
 ------ ----------
 U003         5000
 U002        15000
 U001         7500
 U004        16000
 
 SQL>--▼集合関数4(group byとMIN)
 SQL> select "売上番号",  MIN("売上金額") "合計金額"
   2  from "売上明細"
   3  group by ("売上番号");
 
 売上番   合計金額
 ------ ----------
 U003         5000
 U002         4000
 U001         7500
 U004        16000
 
 SQL>
 SQL>--▼集合関数5(group byとAVG)
 SQL> select "売上番号",  AVG("売上金額") "合計金額"
   2  from "売上明細"
   3  group by ("売上番号");
 
 売上番   合計金額
 ------ ----------
 U003         5000
 U002         9500
 U001         7500
 U004        16000
 SQL>
 SQL> --▼商品表と売上明細への基本的なSELECT(次項の分かりやすさの都合上、再掲)
 SQL>  select "商品番号", "商品名" from "商品表";
 
 商品番 商品名
 ------ --------------
 S101   A
 S102   B
 S103   C
 S104   D
 SQL>
 SQL> select * from 売上明細;
 
 売上番 商品番       数量   売上金額
 ------ ------ ---------- ----------
 U001   S101            5       7500
 U002   S104            2       4000
 U002   S101           10      15000
 U003   S103            5       5000
 U004   S105            8      16000
 SQL>
 SQL>
 SQL> --▼副問合せ
 SQL> select "商品番号", "商品名"
   2   from  "商品表"
   3   where "商品番号" in (
   4    select "商品番号" from "売上明細"
   5    where "売上番号" = 'U002');
 
 商品番 商品名
 ------ --------------
 S101   A
 S104   D
 SQL>
 SQL>
 SQL> --▼相関副問合せ(exists)
 SQL> select "商品番号","商品名"
   2   from "商品表"
   3   where exists  (select 商品番号 from 売上明細
   4    where 売上番号 = 'U002');
 
 商品番 商品名
 ------ --------------
 S101   A
 S102   B
 S103   C
 S104   D
 SQL>
 SQL>
 SQL> --▼相関副問合せ(not exists)
 SQL> select "商品番号","商品名"
   2   from 商品表
   3   where not exists  (select 商品番号 from 売上明細
   4    where 売上番号 = 'U002');
 
 レコードが選択されませんでした。
 
 SQL>
 SQL>
 SQL> --▼on句で inner join
 SQL> select x.商品番号, 売上番号, 商品名
   2  from 商品表 x inner join 売上明細 y
   3  on(x.商品番号 = y.商品番号);
 
 商品番 売上番 商品名
 ------ ------ --------------
 S101   U001   A
 S104   U002   D
 S101   U002   A
 S103   U003   C
 
 SQL>
 SQL>
 SQL> --▼using句でinner join
 SQL> select 商品番号, 売上番号, 商品名
   2  from 商品表 x inner join 売上明細 y
   3  using(商品番号);
 
 商品番 売上番 商品名
 ------ ------ --------------
 S101   U001   A
 S104   U002   D
 S101   U002   A
 S103   U003   C
 
 SQL>
 SQL>
 SQL> --▼left outer join
 SQL> select x.商品番号, 売上番号, 商品名
   2  from 商品表 x left outer join 売上明細 y
   3  on(x.商品番号 = y.商品番号);
 
 商品番 売上番 商品名
 ------ ------ --------------
 S101   U001   A
 S104   U002   D
 S101   U002   A
 S103   U003   C
 S102          B
 
 SQL>
 SQL>
 SQL> --▼ right outer join
 SQL> select x.商品番号, 売上番号, 商品名
   2  from 商品表 x right outer join 売上明細 y
   3  on(x.商品番号 = y.商品番号);
 
 商品番 売上番 商品名
 ------ ------ --------------
 S101   U002   A
 S101   U001   A
 S103   U003   C
 S104   U002   D
        U004
 SQL>
 SQL>
 SQL> --▼full outer join
 SQL> select x.商品番号, 売上番号, 商品名
   2  from 商品表 x full outer join 売上明細 y
   3  on(x.商品番号 = y.商品番号);
 
 商品番 売上番 商品名
 ------ ------ --------------
 S101   U001   A
 S104   U002   D
 S101   U002   A
 S103   U003   C
        U004
 S102          B
 
 6行が選択されました。
 SQL>
 SQL>
 SQL>--▼売上明細テーブルに対するUPDATE文
 SQL> update "売上明細" set "売上金額" = 8000
   2  where "売上番号" = 'U001';
 1行が更新されました。
 SQL>
 SQL>
 SQL>--▼売上明細テーブルの行削除
 SQL> delete from "売上明細" where "売上金額"  = 5000;
 1行が削除されました。
 SQL>
 SQL>
 SQL>--▼ビューの作成
 SQL> create view 商品ビュー
   2  as select 商品番号, 商品名 from 商品表;
 
 ビューが作成されました。
 SQL>
 SQL>
 

Create database、Drop database

いつもの様に、基礎の基礎。


■環境
OS:Oracle Enterprise Linux 5.8(x86-64)
DB:Oracle Database Enterprise Edition 11.2.0.1


■注意事項
・DBのSWは既にインストール済みであることが前提です。
・DBCAで実行した場合と違って本手順でDBを作成した場合はoratabにはエントリは追加されません。
・初期化パラメータの設定は必要最低限の設定とします。
・あくまで学習用環境構築を目的としています。
・DBの作成と削除に主眼をおいているので、DB作成後のディクショナリ作成のスクリプト実行は、省いています。必要な場合は公開マニュアルを参照下さい。

(1)環境変数の設定
[oracle@hoge ~]$ export ORACLE_BASE=/opt/app/oracle
[oracle@hoge ~]$ export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
[oracle@hoge ~]$ export ORACLE_SID=o11201
[oracle@hoge ~]$ export PATH=/bin:/usr/local/bin/:$ORACLE_HOME/bin:.

(2)インストールユーザがdbaグループに所属している事を確認
[oracle@hoge ~]$ id oracle
uid=500(oracle) gid=500(oinstall) 所属グループ=500(oinstall),501(oper),504(asmdba),505(dba)


(3)初期化パラメータの作成
[oracle@hoge dbs]$ cd $ORACLE_HOME/dbs
[oracle@hoge dbs]$ vi inito11201.ora

.control_files='/opt/app/oracle/oradata/o11201/control01.ctl'

.db_name='o11201'

.memory_target=902823936


(4)データファイル用のディレクトリの作成
[oracle@hoge dbs]$ mkdir /opt/app/oracle/oradata/o11201/


(5)CREATE DATABASE文の実行
[oracle@hoge dbs]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on Tue Apr 7 21:47:40 2015
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup nomount;
ORACLE instance started.
Total System Global Area 901914624 bytes
Fixed Size 2218592 bytes
Variable Size 528483744 bytes
Database Buffers 364904448 bytes
Redo Buffers 6307840 bytes

SQL>CREATE DATABASE o11201
USER SYS IDENTIFIED BY oracle
USER SYSTEM IDENTIFIED BY oracle
LOGFILE GROUP 1 ('/opt/app/oracle/oradata/o11201/redo01.log') SIZE 100M BLOCKSIZE 512,
GROUP 2 ('/opt/app/oracle/oradata/o11201/redo02.log') SIZE 100M BLOCKSIZE 512,
GROUP 3 ('/opt/app/oracle/oradata/o11201/redo03.log') SIZE 100M BLOCKSIZE 512
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXLOGHISTORY 1
MAXDATAFILES 100
CHARACTER SET JA16EUC
EXTENT MANAGEMENT LOCAL
DATAFILE '/opt/app/oracle/oradata/o11201/system01.dbf' SIZE 325M REUSE
SYSAUX DATAFILE '/opt/app/oracle/oradata/o11201/sysaux01.dbf' SIZE 325M REUSE
DEFAULT TABLESPACE users
DATAFILE '/opt/app/oracle/oradata/o11201/users01.dbf'
SIZE 500M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED
DEFAULT TEMPORARY TABLESPACE tempts1
TEMPFILE '/opt/app/oracle/oradata/o11201/temp01.dbf'
SIZE 20M REUSE
UNDO TABLESPACE undotbs
DATAFILE '/opt/app/oracle/oradata/o11201/undotbs01.dbf'
SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;
Database created.


(6)DROP DATABASE文の実行
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.

SQL> startup RESTRICT MOUNT
ORACLE instance started.

Total System Global Area 901914624 bytes
Fixed Size 2218592 bytes
Variable Size 528483744 bytes
Database Buffers 364904448 bytes
Redo Buffers 6307840 bytes
Database mounted.

SQL> drop database;

Database dropped.

Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, Oracle Label Security, OLAP, Data Mining,
Oracle Database Vault and Real Application Testing options

SQL> exit

記事一覧まとめ

TDE環境を構成して列暗号化を実行してみようぜ!!
http://yoshiyatam.hatenablog.com/entry/2017/03/16/150429


WLSにデプロイしたアプリにtelnetからHTTPリクエストを送れる環境を作っちゃおうぜ
http://yoshiyatam.hatenablog.com/entry/2017/03/16/150314


RMANのバックアップ保存数設定について
http://yoshiyatam.hatenablog.com/entry/2017/03/16/150152


DBに1000セッション張って負荷を確認してみようぜ!!の巻
http://yoshiyatam.hatenablog.com/entry/2017/03/16/150050


手動によるCREATE DATABASEとDROP DATABASEの実行やってみようぜ!!
http://yoshiyatam.hatenablog.com/entry/2017/03/16/145644


愛しのSCOTTさんを3秒で作成しちゃおうぜ!!の巻
http://yoshiyatam.hatenablog.com/entry/2017/03/16/145358


愛しのSCOOTさんのEMPテーブルに100万行挿入しよう!!の巻
http://yoshiyatam.hatenablog.com/entry/2017/03/16/145309


12cでOracle Restart環境(ASM)を作っちゃおうぜ!!の巻
http://yoshiyatam.hatenablog.com/entry/2017/03/16/145217


Enterprise Manager Express 12cで遊んでみようぜ!!の巻
http://yoshiyatam.hatenablog.com/entry/2017/03/16/144822


■ASMCMDで遊んでみようぜ!!の巻
http://yoshiyatam.hatenablog.com/entry/2017/03/16/144656


WLS小技
http://yoshiyatam.hatenablog.com/entry/2017/03/16/144538


Oracleのバッググラウンドプロセスをぶっこ●しちゃおうぜ!!の巻
http://yoshiyatam.hatenablog.com/entry/2017/03/16/144352


DBMS_METADATA.GET_DDL
http://yoshiyatam.hatenablog.com/entry/2017/03/16/144103


リスナーログを4GBにしようぜ!!
http://yoshiyatam.hatenablog.com/entry/2017/03/16/143434


code tips サルベージ
http://yoshiyatam.hatenablog.com/entry/2017/03/16/143338


ORA-00845 備忘録
http://yoshiyatam.hatenablog.com/entry/2017/03/16/143308


datapump 備忘録
http://yoshiyatam.hatenablog.com/entry/2017/03/16/143218


nchar文字列をsqldeveloperで
http://yoshiyatam.hatenablog.com/entry/2017/03/16/143116


[繰り返しSELECT]
http://yoshiyatam.hatenablog.com/entry/2017/03/16/143003


Standard Edition 2
http://yoshiyatam.hatenablog.com/entry/2017/03/16/142903


Oracleのマニュアル確認方法
http://yoshiyatam.hatenablog.com/entry/2017/03/16/142613


各Enterprise Managerで利用可能な機能やライセンス
http://yoshiyatam.hatenablog.com/entry/2017/03/16/142531


WLSTでデータソース作ろうぜ!!の巻
http://yoshiyatam.hatenablog.com/entry/2017/03/16/142437


ADRCI
http://yoshiyatam.hatenablog.com/entry/2017/03/16/142337


フラッシュバックドロップ機能について
http://yoshiyatam.hatenablog.com/entry/2017/03/16/142141


sql*plusにワンステップでログインせず、/nologする理由
http://yoshiyatam.hatenablog.com/entry/2017/03/16/141903


12C TDE
http://yoshiyatam.hatenablog.com/entry/2017/03/16/141800


チェックリスト
http://yoshiyatam.hatenablog.com/entry/2017/03/16/141654


Linux Error 一覧
http://yoshiyatam.hatenablog.com/entry/2017/03/16/141518


リスナーのサービス登録備忘録
http://yoshiyatam.hatenablog.com/entry/2017/03/16/141419


sqlldr備忘録
http://yoshiyatam.hatenablog.com/entry/2017/03/16/141257


Datarguard環境 スイッチオーバー手順について
http://yoshiyatam.hatenablog.com/entry/2017/03/16/141140


Windows 小技備忘録
http://yoshiyatam.hatenablog.com/entry/2017/03/16/141057


ORACLE SQLやコマンドの備忘録
http://yoshiyatam.hatenablog.com/entry/2017/03/16/141023


JDBC(CTAS編)
http://yoshiyatam.hatenablog.com/entry/2017/03/16/140925


JDBC接続(SELECT編)
http://yoshiyatam.hatenablog.com/entry/2017/03/16/140802


■セグメント縮小について
http://yoshiyatam.hatenablog.com/entry/2017/03/16/140557


■OEL5にてYUMリポジトリを利用する為の設定
http://yoshiyatam.hatenablog.com/entry/2017/03/16/140344

TDE環境を構成して列暗号化を実行してみようぜ!!の巻

※ここで記載した内容は独断と偏見に基づく個人の見解であり、実行しているコマンドや手順も必ずしも正しい手順ではありません。その為、あくまで参考程度にご覧頂ければと思います。

 

今日のテーマは「TDE環境を構成して列暗号化を実行してみようぜ!!」です。

 
(1)SQLNET.ORAを編集しウォレットのロケーションを指定します。
 [oracle@hoge admin]$ cd $ORACLE_HOME/network/admin
 [oracle@hoge admin]$ vi sqlnet.ora
 
 NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
 ADR_BASE = /opt/app/oracle
 ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/opt/app/oracle/product/11.2.0/dbhome_1)))
 
(2)上記の変更を反映させる為、リスナーの再起動を行います。
 [oracle@hoge admin]$ lsnrctl stop
 [oracle@hoge admin]$ lsnrctl start
 
(3)ウォレットの状態を確認してみましょう。
 SQL> select * from v$encryption_wallet;
 
 WRL_TYPE
 --------------------
 WRL_PARAMETER
 --------------------------------------------------------------------------------
 STATUS
 ------------------
 file
 /opt/app/oracle/product/11.2.0/dbhome_1
 CLOSED <-★
 
(4)マスター暗号鍵を作成します。
 SQL> ALTER SYSTEM SET ENCRYPTION KEY IDENTIFIED BY "oracle";
 System altered.
 
(5)ウォレットの状態を確認してみましょう。
 SQL> select * from v$encryption_wallet;
 
 WRL_TYPE
 --------------------
 WRL_PARAMETER
 --------------------------------------------------------------------------------
 STATUS
 ------------------
 file
 /opt/app/oracle/product/11.2.0/dbhome_1
 OPEN <-★
 
(6)ウォレットは(1)の手順で指定したロケーションに作成されています
 [oracle@hoge dbhome_1]$ cd $ORACLE_HOME
 [oracle@hoge dbhome_1]$ ls -l ewallet*
 -rw-r--r-- 1 oracle oinstall 1573 10月 15 00:31 ewallet.p12 <-★
 
(7)orapkiコマンドでウォレットの中身を確認するとマスター暗号鍵やその履歴情報が格納されていることが確認出来ます。別途orapkiコマンドで証明書を格納することなどもできます。
 [oracle@hoge dbhome_1]$ orapki wallet display -wallet $ORACLE_HOME
 Oracle PKI Tool: バージョン11.2.0.1.0 - Production
 Copyright (c) 2004, 2009, Oracle and/or its affiliates. All rights reserved.
 
 ウォレット・パスワードを入力してください:
 
 Requested Certificates:
 Subject: CN=oracle
 User Certificates:
 Oracle Secret Storeエントリ:
 ORACLE.SECURITY.DB.ENCRYPTION.Aa/jngYPWU+0v8KbPdZWm8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 ORACLE.SECURITY.DB.ENCRYPTION.Aa4ut+DI3E8+vzAR7uAf7IMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 ORACLE.SECURITY.DB.ENCRYPTION.AainTOjpEk8kv+ge1HK0ntMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 ORACLE.SECURITY.DB.ENCRYPTION.AarmRRTpwU9bv/C5KqqkfEIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 ORACLE.SECURITY.DB.ENCRYPTION.AaSRmegJck/Fv4H1kdNyp7EAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 ORACLE.SECURITY.DB.ENCRYPTION.AaVinRvIb0/dv0DzjbfY1g8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 Trusted Certificates:
 
(8)SCOTT先輩のDEPT表のDNAME列を暗号化してみましょう
 SQL>
 SQL> ALTER TABLE SCOTT.DEPT MODIFY (DNAME ENCRYPT NO SALT);
 
 Table altered.
 
(9)表定義を確認し、DNAME列が暗号化されていることを確認しましょう
 SQL> desc scott.dept
  Name Null? Type
  ----------------------------------------- -------- ----------------------------
  DEPTNO NOT NULL NUMBER(2)
  DNAME VARCHAR2(14) ENCRYPT <-★
  LOC VARCHAR2(13)
 
(10)ウォレットをクローズしましょう
 SQL> ALTER SYSTEM SET ENCRYPTION WALLET CLOSE IDENTIFIED BY oracle;
 
 System altered.
 
(11)ウォレットがクローズした状態で列暗号化が実施されている表にアクセスすると下記エラー
 SQL> select * from scott.dept;
 select * from scott.dept
 *
 ERROR at line 1:
 ORA-28365: wallet is not open
 
(12)明示的にウォレットをオープンしてあげると列暗号化が実施されている表へアクセスできます。
 SQL> ALTER SYSTEM SET ENCRYPTION WALLET OPEN IDENTIFIED BY "oracle";
 
 System altered.
 SQL>
 SQL> select * from scott.dept;
 
  DEPTNO DNAME LOC
 ---------- -------------- -------------
  10 ACCOUNTING NEW YORK
  20 RESEARCH DALLAS
  30 SALES CHICAGO
  40 OPERATIONS BOSTON

WLSにデプロイしたアプリにtelnetからHTTPリクエストを送れる環境を作っちゃおうぜの巻

※ここで記載した内容は独断と偏見に基づく個人の見解であり、実行しているコマンドや手順も必ずしも正しい手順ではありません。その為、あくまで参考程度にご覧頂ければと思います。

 

今日のテーマは少し長いですが「WLSにデプロイしたアプリにtelnetからHTTPリクエストを送れる環境を作っちゃおうぜ」です。


(1)telnetのクライアントをインストールします。
 [root@oel7 oracle]# yum -y install telnet telnet
 読み込んだプラグイン:langpacks
 依存性の解決をしています
 --> トランザクションの確認を実行しています。
 ---> パッケージ telnet.x86_64 1:0.17-59.el7 を インストール
 --> 依存性解決を終了しました。
 
 依存性を解決しました
 
 ================================================================================
  Package アーキテクチャ
  バージョン リポジトリー 容量
 ================================================================================
 インストール中:
  telnet x86_64 1:0.17-59.el7 ol7_latest 62 k
 
 トランザクションの要約
 ================================================================================
 インストール 1 パッケージ
 
 総ダウンロード容量: 62 k
 インストール容量: 113 k
 Downloading packages:
 telnet-0.17-59.el7.x86_64.rpm | 62 kB 00:01
 Running transaction check
 Running transaction test
 Transaction test succeeded
 Running transaction
  インストール中 : 1:telnet-0.17-59.el7.x86_64 1/1
  検証中 : 1:telnet-0.17-59.el7.x86_64 1/1
 
 インストール:
  telnet.x86_64 1:0.17-59.el7
 
 完了しました!
 
(2)telnetサーバーをインストールします。
 [root@oel7 oracle]# yum install telnet-server
 読み込んだプラグイン:langpacks
 依存性の解決をしています
 --> トランザクションの確認を実行しています。
 ---> パッケージ telnet-server.x86_64 1:0.17-59.el7 を インストール
 --> 依存性解決を終了しました。
 
 依存性を解決しました
 
 ================================================================================
  Package アーキテクチャ
  バージョン リポジトリー 容量
 ================================================================================
 インストール中:
  telnet-server x86_64 1:0.17-59.el7 ol7_latest 39 k
 
 トランザクションの要約
 ================================================================================
 インストール 1 パッケージ
 
 総ダウンロード容量: 39 k
 インストール容量: 55 k
 Is this ok [y/d/N]: y
 Downloading packages:
 telnet-server-0.17-59.el7.x86_64.rpm | 39 kB 00:00
 Running transaction check
 Running transaction test
 Transaction test succeeded
 Running transaction
  インストール中 : 1:telnet-server-0.17-59.el7.x86_64 1/1
  検証中 : 1:telnet-server-0.17-59.el7.x86_64 1/1
 
 インストール:
  telnet-server.x86_64 1:0.17-59.el7
 
 完了しました!
 
(3)ファイヤウォールの設定を変更します。(接続を許可するネットワークセグメントなどは環境にあわせて変えます)
 [root@oel7 oracle]#
 [root@oel7 oracle]# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" service name="telnet" log prefix="telnet" level="info" limit value="1/m" accept'
 success
 
(4)telnetサービスの起動ならびに有効化
 [root@oel7 oracle]# systemctl start telnet.socket
 [root@oel7 oracle]# systemctl enable telnet.socket
 
(5)WLSに適当なアプリケーションを任意の方法でデプロイします
 
(6)デプロイしたアプリを起動します。
 
(7)デプロイしたアプリケーションのコンテンツにHTTPリクエストを送りましょう。
 
 ▼下記、GETリクエストを送る例。レスポンスコードは200で成功
 [oracle@oel7 abc]$ telnet 192.168.1.8 7001
 Trying 192.168.1.8...
 Connected to 192.168.1.8.
 Escape character is '^]'.
 GET /hi.html HTTP/1.0
 
 HTTP/1.1 200 OK
 Connection: close
 Date: Thu, 22 Oct 2015 15:02:08 GMT
 Content-Length: 5
 Content-Type: text/html
 Last-Modified: Thu, 22 Oct 2015 14:43:12 GMT
 X-Powered-By: Servlet/3.0 JSP/2.2
 
 hi!!
 Connection closed by foreign host.
 
→最初のHTTP/1.1 200 OKはHTTPプロトコル転送で成功した事を意味します。
その後レスポンスヘッダーの情報が出力され最後にコンテンツのソースが表示されます。

RMANのバックアップ保存数設定について

■今回の検証概要

DBを運用するにあたってのバックアップ取得方法は、Oracleが提供するRMANを使った方法、OSのコピーコマンド、ストレージのシャドウコピーを使用した方法など多岐に渡ります。
 
今回はOracle社の推奨のバックアップ・リカバリツールであるRMANに焦点をあてバックアップの取得、保存ポリシーの設定、バックアップの自動削除について検証していきます。
 
計30分程で適当に検証・記述した内容なので考慮不足や誤りなども多々あるかと思いますが、何か気づいた点などあればお気軽にご指摘・ご意見頂ければと思います。

 
■検証環境
 
 OS:Oracle Enterprise Linux 5.8(x86_64)
 DB:Oracle Database 11.2.0.1
 シングル環境
 
■いざ、検証


(0)バックアップ取得先の空き容量の確認。
10g以降だとバックアップのデフォルトの保存先はフラッシュリカバリ領域(11gr2以降だと高速リカバリ領域へと名称変更)となっています。また、割り当て済みの容量や使用済み領域は以下SQLで確認できます。
 
 SQL> select * from V$recovery_file_dest;
 
 NAME
 --------------------------------------------------------------------------------
 SPACE_LIMIT SPACE_USED SPACE_RECLAIMABLE NUMBER_OF_FILES
 ----------- ---------- ----------------- ---------------
 /opt/app/oracle/flash_recovery_area
  1.0737E+10 2944053760 900995072 24
 
 
 [SPACE_LIMIT列]:使用可能な容量を示す
 [SPACE_USERD列]:使用済み容量を示す


(1)OSターミナルからRMANに接続します。
 [oracle@hoge ~]$ rman target /
 Recovery Manager: Release 11.2.0.1.0 - Production on Sat Sep 26 14:02:57 2015
 Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
 connected to target database: O11201 (DBID=373218561)
 

※上記は、RMANリカバリカタログに制御ファイル指定して接続しています。余り一般的ではありませんがリカバリカタログにカタログDBを指定する場合は別途手順が必要です。

 
(2)現状のバックアップ取得状況を確認します。
 RMAN> list backup;
 using target database control file instead of recovery catalog
 specification does not match any backup in the repository
 
※上記の出力はリカバリカタログとなる制御ファイル内にバックアップが存在していない(登録されていない)事を表します。

 
(3)RMANの永続設定を確認します。
 RMAN> show all;
 RMAN configuration parameters for database with db_unique_name O11201 are:
 CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
 CONFIGURE BACKUP OPTIMIZATION OFF; # default
 CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
 CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
 CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
 CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
 CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
 CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
 CONFIGURE MAXSETSIZE TO UNLIMITED; # default
 CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
 CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
 CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default
 CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
 CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/opt/app/oracle/product/11.2.0/dbhome_1/dbs/snapcf_o11201.f'; # default
 
※上記がRMANの設定項目となります。「#default」となっている項目がデフォルトの設定となります。各項目の詳細などはマニュアルを参照下さい。


(4)試しにRMANの永続設定に冗長3を設定してみましょう。

 RMAN> CONFIGURE RETENTION POLICY TO REDUNDANCY 3;
 new RMAN configuration parameters:
 CONFIGURE RETENTION POLICY TO REDUNDANCY 3;
 new RMAN configuration parameters are successfully stored
 
 ※上記のように設定すると3世代のバックアップが保存される様になります。


(5)それではDBのフルバックアップを取得してみましょう。
 RMAN> backup database;
 Starting backup at 26-SEP-15
 allocated channel: ORA_DISK_1
 channel ORA_DISK_1: SID=90 device type=DISK
 channel ORA_DISK_1: starting full datafile backup set
 channel ORA_DISK_1: specifying datafile(s) in backup set
 input datafile file number=00001 name=/opt/app/oracle/oradata/o11201/system01.dbf
 input datafile file number=00002 name=/opt/app/oracle/oradata/o11201/sysaux01.dbf
 input datafile file number=00005 name=/opt/app/oracle/oradata/o11201/example01.dbf
 input datafile file number=00003 name=/opt/app/oracle/oradata/o11201/undotbs01.dbf
 input datafile file number=00004 name=/opt/app/oracle/oradata/o11201/users01.dbf
 channel ORA_DISK_1: starting piece 1 at 26-SEP-15
 channel ORA_DISK_1: finished piece 1 at 26-SEP-15
 piece handle=/opt/app/oracle/flash_recovery_area/O11201/backupset/2015_09_26/o1_mf_nnndf_TAG20150926T143700_c0dcqwq5_.bkp tag=TAG20150926T143700 comment=NONE
 channel ORA_DISK_1: backup set complete, elapsed time: 00:00:45
 channel ORA_DISK_1: starting full datafile backup set
 channel ORA_DISK_1: specifying datafile(s) in backup set
 including current control file in backup set
 including current SPFILE in backup set
 channel ORA_DISK_1: starting piece 1 at 26-SEP-15
 channel ORA_DISK_1: finished piece 1 at 26-SEP-15
 piece handle=/opt/app/oracle/flash_recovery_area/O11201/backupset/2015_09_26/o1_mf_ncsnf_TAG20150926T143700_c0dcsbvh_.bkp tag=TAG20150926T143700 comment=NONE
 channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
 Finished backup at 26-SEP-15

 
(6)次にアーカイブログのバックアップを取得しましょう。
 
 RMAN> backup archivelog all;
 Starting backup at 26-SEP-15
 current log archived
 using target database control file instead of recovery catalog
 allocated channel: ORA_DISK_1
 channel ORA_DISK_1: SID=177 device type=DISK
 channel ORA_DISK_1: starting archived log backup set
 channel ORA_DISK_1: specifying archived log(s) in backup set
 input archived log thread=1 sequence=7 RECID=1 STAMP=891437931
 input archived log thread=1 sequence=8 RECID=2 STAMP=891441940
 input archived log thread=1 sequence=9 RECID=3 STAMP=891441952
 input archived log thread=1 sequence=10 RECID=4 STAMP=891441964
 input archived log thread=1 sequence=11 RECID=5 STAMP=891441976
 input archived log thread=1 sequence=12 RECID=6 STAMP=891441988
 input archived log thread=1 sequence=13 RECID=7 STAMP=891442001
 input archived log thread=1 sequence=14 RECID=8 STAMP=891442013
 input archived log thread=1 sequence=15 RECID=9 STAMP=891442026
 input archived log thread=1 sequence=16 RECID=10 STAMP=891442038
 input archived log thread=1 sequence=17 RECID=11 STAMP=891442052
 input archived log thread=1 sequence=18 RECID=12 STAMP=891442065
 input archived log thread=1 sequence=19 RECID=13 STAMP=891442077
 input archived log thread=1 sequence=20 RECID=14 STAMP=891442085
 input archived log thread=1 sequence=21 RECID=15 STAMP=891442089
 input archived log thread=1 sequence=22 RECID=16 STAMP=891442093
 input archived log thread=1 sequence=23 RECID=17 STAMP=891442098
 input archived log thread=1 sequence=24 RECID=18 STAMP=891442103
 input archived log thread=1 sequence=25 RECID=19 STAMP=891442109
 input archived log thread=1 sequence=26 RECID=20 STAMP=891443754
 channel ORA_DISK_1: starting piece 1 at 26-SEP-15
 channel ORA_DISK_1: finished piece 1 at 26-SEP-15
 piece handle=/opt/app/oracle/flash_recovery_area/O11201/backupset/2015_09_26/o1_mf_annnn_TAG20150926T151555_c0dg0vl5_.bkp tag=TAG20150926T151555 comment=NONE
 channel ORA_DISK_1: backup set complete, elapsed time: 00:00:55
 Finished backup at 26-SEP-15
 
※上記コマンドでは、単純にアーカイブログのバックアップのみです。通常はオプションを指定しバックアップ取得後、カレントのアーカイブは削除する様にします。

 
(7)取得したバックアップを確認しましょう。
 
以下の結果よりデータベースのフルバックアップ+αが取得された事が確認出来ますね。内訳としては[全てのデータファイル][制御ファイル][SPファイル][アーカイブログ]のバックアップとなります。オンラインREDOログは含まれませんが上記のみで障害発生時にも障害発生直前の時点まで復旧可能です。リカバリ時にオンラインREDOは再作成されます。
 
 
 RMAN> list backup;
 List of Backup Sets
 ===================
 BS Key Type LV Size Device Type Elapsed Time Completion Time
 ------- ---- -- ---------- ----------- ------------ ---------------
 2 Full 1.01G DISK 00:00:40 26-SEP-15
  BP Key: 2 Status: AVAILABLE Compressed: NO Tag: TAG20150926T143700
  Piece Name: /opt/app/oracle/flash_recovery_area/O11201/backupset/2015_09_26/o1_mf_nnndf_TAG20150926T143700_c0dcqwq5_.bkp
  List of Datafiles in backup set 2
  File LV Type Ckp SCN Ckp Time Name
  ---- -- ---- ---------- --------- ----
  1 Full 1068506 26-SEP-15 /opt/app/oracle/oradata/o11201/system01.dbf <-★
  2 Full 1068506 26-SEP-15 /opt/app/oracle/oradata/o11201/sysaux01.dbf <-★
  3 Full 1068506 26-SEP-15 /opt/app/oracle/oradata/o11201/undotbs01.dbf<-★
  4 Full 1068506 26-SEP-15 /opt/app/oracle/oradata/o11201/users01.dbf <-★
  5 Full 1068506 26-SEP-15 /opt/app/oracle/oradata/o11201/example01.dbf<-★
 
 BS Key Type LV Size Device Type Elapsed Time Completion Time
 ------- ---- -- ---------- ----------- ------------ ---------------
 3 Full 9.36M DISK 00:00:02 26-SEP-15
  BP Key: 3 Status: AVAILABLE Compressed: NO Tag: TAG20150926T143700
  Piece Name: /opt/app/oracle/flash_recovery_area/O11201/backupset/2015_09_26/o1_mf_ncsnf_TAG20150926T143700_c0dcsbvh_.bkp
  SPFILE Included<-★: Modification time: 26-SEP-15
  SPFILE db_unique_name: O11201
  Control File Included<-★: Ckp SCN: 1068543 Ckp time: 26-SEP-15
 
 BS Key Size Device Type Elapsed Time Completion Time
 ------- ---------- ----------- ------------ ---------------
 4 859.26M DISK 00:00:48 26-SEP-15
  BP Key: 4 Status: AVAILABLE Compressed: NO Tag: TAG20150926T151555
  Piece Name: /opt/app/oracle/flash_recovery_area/O11201/backupset/2015_09_26/o1_mf_annnn_TAG20150926T151555_c0dg0vl5_.bkp
 
  List of Archived Logs in backup set 4 <-★
  Thrd Seq Low SCN Low Time Next SCN Next Time
  ---- ------- ---------- --------- ---------- ---------
  1 7 1058806 03-SEP-15 1066264 26-SEP-15
  1 8 1066264 26-SEP-15 1070853 26-SEP-15
  1 9 1070853 26-SEP-15 1073090 26-SEP-15
  1 10 1073090 26-SEP-15 1075254 26-SEP-15
  1 11 1075254 26-SEP-15 1077415 26-SEP-15
  1 12 1077415 26-SEP-15 1079588 26-SEP-15
  1 13 1079588 26-SEP-15 1081937 26-SEP-15
  1 14 1081937 26-SEP-15 1084102 26-SEP-15
  1 15 1084102 26-SEP-15 1086291 26-SEP-15
  1 16 1086291 26-SEP-15 1088448 26-SEP-15
  1 17 1088448 26-SEP-15 1090611 26-SEP-15
  1 18 1090611 26-SEP-15 1092777 26-SEP-15
  1 19 1092777 26-SEP-15 1094652 26-SEP-15
  1 20 1094652 26-SEP-15 1095361 26-SEP-15
  1 21 1095361 26-SEP-15 1095925 26-SEP-15
  1 22 1095925 26-SEP-15 1096475 26-SEP-15
  1 23 1096475 26-SEP-15 1097023 26-SEP-15
  1 24 1097023 26-SEP-15 1097578 26-SEP-15
  1 25 1097578 26-SEP-15 1098133 26-SEP-15
  1 26 1098133 26-SEP-15 1100006 26-SEP-15
 
※データファイルのバックアップが[TAG20150926T143700]です。制御ファイルとSPファイルのバックアップが[TAG20150926T143700]、アーカイブのバックアップが[TAG20150926T151555]となります。

 
(8)DBへの更新、並びにバックアップ取得を05回実行します。
 
以下の様な簡単な「無名PL/SQLブロック」などを使用してDBへの更新を行います。その後フルバックアップ、アーカイブログのバックアップを実行します。順にそれぞれ5回実行します。
 
 SQL>
 SQL>ALTER TABLE SCOTT.EMP MODIFY (EMPNO NUMBER(10));
 Table altered.
 SQL>
 SQL>truncate table scott.emp;
  Table truncated.
 SQL>
 SQL>begin
 2 for i in 1..100000 loop
 3 insert into scott.emp (empno,ename,job,mgr,hiredate,sal,comm,deptno)
 4 values (i,DBMS_RANDOM.STRING('p',8),null,null,sysdate,null,null,null);
 5 end loop;
 6 commit;
 7 end;
 8 /
 PL/SQL procedure successfully completed.
 SQL>
 RMAN>
 RMAN> backup database;
 
 Starting backup at 26-SEP-15
 allocated channel: ORA_DISK_1
 channel ORA_DISK_1: SID=90 device type=DISK
 channel ORA_DISK_1: starting full datafile backup set
 channel ORA_DISK_1: specifying datafile(s) in backup set
 input datafile file number=00001 name=/opt/app/oracle/oradata/o11201/system01.dbf
 input datafile file number=00002 name=/opt/app/oracle/oradata/o11201/sysaux01.dbf
 input datafile file number=00003 name=/opt/app/oracle/oradata/o11201/undotbs01.dbf
 input datafile file number=00005 name=/opt/app/oracle/oradata/o11201/example01.dbf
 input datafile file number=00004 name=/opt/app/oracle/oradata/o11201/users01.dbf
 channel ORA_DISK_1: starting piece 1 at 26-SEP-15
 channel ORA_DISK_1: finished piece 1 at 26-SEP-15
 piece handle=/opt/app/oracle/flash_recovery_area/O11201/backupset/2015_09_26/o1_mf_nnndf_TAG20150926T154053_c0dhholx_.bkp tag=TAG20150926T154053 comment=NONE
 channel ORA_DISK_1: backup set complete, elapsed time: 00:00:55
 channel ORA_DISK_1: starting full datafile backup set
 channel ORA_DISK_1: specifying datafile(s) in backup set
 including current control file in backup set
 including current SPFILE in backup set
 channel ORA_DISK_1: starting piece 1 at 26-SEP-15
 channel ORA_DISK_1: finished piece 1 at 26-SEP-15
 piece handle=/opt/app/oracle/flash_recovery_area/O11201/backupset/2015_09_26/o1_mf_ncsnf_TAG20150926T154053_c0dhkfs5_.bkp tag=TAG20150926T154053 comment=NONE
 channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
 Finished backup at 26-SEP-15
 ・・
 <※長くなるので省略※>
 ・・
 ・・
 
 
(9)DBへの更新、フルバックアップ取得、アーカイブログのバックアップ取得の順でそれぞれ5回実行が終わりました。取得後の結果を確認してみましょう。今回は[list backup]とあわせて、[list backup summary]の結果も確認します。

 
 RMAN> list backup;
 List of Backup Sets
 ===================
 BS Key Type LV Size Device Type Elapsed Time Completion Time
 ------- ---- -- ---------- ----------- ------------ ---------------
 6 Full 9.36M DISK 00:00:02 26-SEP-15
  BP Key: 6 Status: AVAILABLE Compressed: NO Tag: TAG20150926T154053 <-★2回目に取得したフルBKP(SPファイルと制御ファイル)
  Piece Name: /opt/app/oracle/flash_recovery_area/O11201/backupset/2015_09_26/o1_mf_ncsnf_TAG20150926T154053_c0dhkfs5_.bkp
  SPFILE Included: Modification time: 26-SEP-15
  SPFILE db_unique_name: O11201
  Control File Included: Ckp SCN: 1104166 Ckp time: 26-SEP-15
 
 BS Key Size Device Type Elapsed Time Completion Time
 ------- ---------- ----------- ------------ ---------------
 7 913.80M DISK 00:00:51 26-SEP-15
  BP Key: 7 Status: AVAILABLE Compressed: NO Tag: TAG20150926T154208 <-★2回目に取得したアーカイブログBKP
  Piece Name: /opt/app/oracle/flash_recovery_area/O11201/backupset/2015_09_26/o1_mf_annnn_TAG20150926T154208_c0dhl14p_.bkp
 
  List of Archived Logs in backup set 7
  Thrd Seq Low SCN Low Time Next SCN Next Time
  ---- ------- ---------- --------- ---------- ---------
  1 7 1058806 03-SEP-15 1066264 26-SEP-15
  1 8 1066264 26-SEP-15 1070853 26-SEP-15
  1 9 1070853 26-SEP-15 1073090 26-SEP-15
  1 10 1073090 26-SEP-15 1075254 26-SEP-15
  1 11 1075254 26-SEP-15 1077415 26-SEP-15
  1 12 1077415 26-SEP-15 1079588 26-SEP-15
  1 13 1079588 26-SEP-15 1081937 26-SEP-15
  1 14 1081937 26-SEP-15 1084102 26-SEP-15
  1 15 1084102 26-SEP-15 1086291 26-SEP-15
  1 16 1086291 26-SEP-15 1088448 26-SEP-15
  1 17 1088448 26-SEP-15 1090611 26-SEP-15
  1 18 1090611 26-SEP-15 1092777 26-SEP-15
  1 19 1092777 26-SEP-15 1094652 26-SEP-15
  1 20 1094652 26-SEP-15 1095361 26-SEP-15
  1 21 1095361 26-SEP-15 1095925 26-SEP-15
  1 22 1095925 26-SEP-15 1096475 26-SEP-15
  1 23 1096475 26-SEP-15 1097023 26-SEP-15
  1 24 1097023 26-SEP-15 1097578 26-SEP-15
  1 25 1097578 26-SEP-15 1098133 26-SEP-15
  1 26 1098133 26-SEP-15 1100006 26-SEP-15
  1 27 1100006 26-SEP-15 1102432 26-SEP-15
  1 28 1102432 26-SEP-15 1104188 26-SEP-15
 
 BS Key Type LV Size Device Type Elapsed Time Completion Time
 ------- ---- -- ---------- ----------- ------------ ---------------
 8 Full 1.17G DISK 00:00:59 26-SEP-15
  BP Key: 8 Status: AVAILABLE Compressed: NO Tag: TAG20150926T154536 <-★3回目に取得したフルBKP(データファイル)
  Piece Name: /opt/app/oracle/flash_recovery_area/O11201/backupset/2015_09_26/o1_mf_nnndf_TAG20150926T154536_c0dhrnrx_.bkp
  List of Datafiles in backup set 8
  File LV Type Ckp SCN Ckp Time Name
  ---- -- ---- ---------- --------- ----
  1 Full 1107076 26-SEP-15 /opt/app/oracle/oradata/o11201/system01.dbf
  2 Full 1107076 26-SEP-15 /opt/app/oracle/oradata/o11201/sysaux01.dbf
  3 Full 1107076 26-SEP-15 /opt/app/oracle/oradata/o11201/undotbs01.dbf
  4 Full 1107076 26-SEP-15 /opt/app/oracle/oradata/o11201/users01.dbf
  5 Full 1107076 26-SEP-15 /opt/app/oracle/oradata/o11201/example01.dbf
 
 BS Key Type LV Size Device Type Elapsed Time Completion Time
 ------- ---- -- ---------- ----------- ------------ ---------------
 9 Full 9.36M DISK 00:00:01 26-SEP-15
  BP Key: 9 Status: AVAILABLE Compressed: NO Tag: TAG20150926T154536 <-★3回目に取得したフルBKP(SPファイルと制御ファイル)
  Piece Name: /opt/app/oracle/flash_recovery_area/O11201/backupset/2015_09_26/o1_mf_ncsnf_TAG20150926T154536_c0dhtmbz_.bkp
  SPFILE Included: Modification time: 26-SEP-15
  SPFILE db_unique_name: O11201
  Control File Included: Ckp SCN: 1107097 Ckp time: 26-SEP-15
 
 BS Key Size Device Type Elapsed Time Completion Time
 ------- ---------- ----------- ------------ ---------------
 10 966.33M DISK 00:00:51 26-SEP-15
  BP Key: 10 Status: AVAILABLE Compressed: NO Tag: TAG20150926T154814 <-★3回目に取得したアーカイブログBKP
  Piece Name: /opt/app/oracle/flash_recovery_area/O11201/backupset/2015_09_26/o1_mf_annnn_TAG20150926T154814_c0dhxgxs_.bkp
 
  List of Archived Logs in backup set 10
  Thrd Seq Low SCN Low Time Next SCN Next Time
  ---- ------- ---------- --------- ---------- ---------
  1 7 1058806 03-SEP-15 1066264 26-SEP-15
  1 8 1066264 26-SEP-15 1070853 26-SEP-15
  1 9 1070853 26-SEP-15 1073090 26-SEP-15
  1 10 1073090 26-SEP-15 1075254 26-SEP-15
  1 11 1075254 26-SEP-15 1077415 26-SEP-15
  1 12 1077415 26-SEP-15 1079588 26-SEP-15
  1 13 1079588 26-SEP-15 1081937 26-SEP-15
  1 14 1081937 26-SEP-15 1084102 26-SEP-15
  1 15 1084102 26-SEP-15 1086291 26-SEP-15
  1 16 1086291 26-SEP-15 1088448 26-SEP-15
  1 17 1088448 26-SEP-15 1090611 26-SEP-15
  1 18 1090611 26-SEP-15 1092777 26-SEP-15
  1 19 1092777 26-SEP-15 1094652 26-SEP-15
  1 20 1094652 26-SEP-15 1095361 26-SEP-15
  1 21 1095361 26-SEP-15 1095925 26-SEP-15
  1 22 1095925 26-SEP-15 1096475 26-SEP-15
  1 23 1096475 26-SEP-15 1097023 26-SEP-15
  1 24 1097023 26-SEP-15 1097578 26-SEP-15
  1 25 1097578 26-SEP-15 1098133 26-SEP-15
  1 26 1098133 26-SEP-15 1100006 26-SEP-15
  1 27 1100006 26-SEP-15 1102432 26-SEP-15
  1 28 1102432 26-SEP-15 1104188 26-SEP-15
  1 29 1104188 26-SEP-15 1106599 26-SEP-15
  1 30 1106599 26-SEP-15 1107150 26-SEP-15
 
 BS Key Type LV Size Device Type Elapsed Time Completion Time
 ------- ---- -- ---------- ----------- ------------ ---------------
 11 Full 1.18G DISK 00:00:49 26-SEP-15
  BP Key: 11 Status: AVAILABLE Compressed: NO Tag: TAG20150926T155216 <-★4回目に取得したフルBKP(データファイル)
  Piece Name: /opt/app/oracle/flash_recovery_area/O11201/backupset/2015_09_26/o1_mf_nnndf_TAG20150926T155216_c0dj55q1_.bkp
  List of Datafiles in backup set 11
  File LV Type Ckp SCN Ckp Time Name
  ---- -- ---- ---------- --------- ----
  1 Full 1111200 26-SEP-15 /opt/app/oracle/oradata/o11201/system01.dbf
  2 Full 1111200 26-SEP-15 /opt/app/oracle/oradata/o11201/sysaux01.dbf
  3 Full 1111200 26-SEP-15 /opt/app/oracle/oradata/o11201/undotbs01.dbf
  4 Full 1111200 26-SEP-15 /opt/app/oracle/oradata/o11201/users01.dbf
  5 Full 1111200 26-SEP-15 /opt/app/oracle/oradata/o11201/example01.dbf
 
 BS Key Type LV Size Device Type Elapsed Time Completion Time
 ------- ---- -- ---------- ----------- ------------ ---------------
 12 Full 9.36M DISK 00:00:01 26-SEP-15
  BP Key: 12 Status: AVAILABLE Compressed: NO Tag: TAG20150926T155216 <-★4回目に取得したフルBKP(SPファイルと制御ファイル)
  Piece Name: /opt/app/oracle/flash_recovery_area/O11201/backupset/2015_09_26/o1_mf_ncsnf_TAG20150926T155216_c0dj6s67_.bkp
  SPFILE Included: Modification time: 26-SEP-15
  SPFILE db_unique_name: O11201
  Control File Included: Ckp SCN: 1111223 Ckp time: 26-SEP-15
 
 BS Key Size Device Type Elapsed Time Completion Time
 ------- ---------- ----------- ------------ ---------------
 13 1.02G DISK 00:01:01 26-SEP-15
  BP Key: 13 Status: AVAILABLE Compressed: NO Tag: TAG20150926T155351 <-★4回目に取得したアーカイブログBKP
  Piece Name: /opt/app/oracle/flash_recovery_area/O11201/backupset/2015_09_26/o1_mf_annnn_TAG20150926T155351_c0dj7zcl_.bkp
 
  List of Archived Logs in backup set 13
  Thrd Seq Low SCN Low Time Next SCN Next Time
  ---- ------- ---------- --------- ---------- ---------
  1 7 1058806 03-SEP-15 1066264 26-SEP-15
  1 8 1066264 26-SEP-15 1070853 26-SEP-15
  1 9 1070853 26-SEP-15 1073090 26-SEP-15
  1 10 1073090 26-SEP-15 1075254 26-SEP-15
  1 11 1075254 26-SEP-15 1077415 26-SEP-15
  1 12 1077415 26-SEP-15 1079588 26-SEP-15
  1 13 1079588 26-SEP-15 1081937 26-SEP-15
  1 14 1081937 26-SEP-15 1084102 26-SEP-15
  1 15 1084102 26-SEP-15 1086291 26-SEP-15
  1 16 1086291 26-SEP-15 1088448 26-SEP-15
  1 17 1088448 26-SEP-15 1090611 26-SEP-15
  1 18 1090611 26-SEP-15 1092777 26-SEP-15
  1 19 1092777 26-SEP-15 1094652 26-SEP-15
  1 20 1094652 26-SEP-15 1095361 26-SEP-15
  1 21 1095361 26-SEP-15 1095925 26-SEP-15
  1 22 1095925 26-SEP-15 1096475 26-SEP-15
  1 23 1096475 26-SEP-15 1097023 26-SEP-15
  1 24 1097023 26-SEP-15 1097578 26-SEP-15
  1 25 1097578 26-SEP-15 1098133 26-SEP-15
  1 26 1098133 26-SEP-15 1100006 26-SEP-15
  1 27 1100006 26-SEP-15 1102432 26-SEP-15
  1 28 1102432 26-SEP-15 1104188 26-SEP-15
  1 29 1104188 26-SEP-15 1106599 26-SEP-15
  1 30 1106599 26-SEP-15 1107150 26-SEP-15
  1 31 1107150 26-SEP-15 1109856 26-SEP-15
  1 32 1109856 26-SEP-15 1111251 26-SEP-15
 
 BS Key Type LV Size Device Type Elapsed Time Completion Time
 ------- ---- -- ---------- ----------- ------------ ---------------
 14 Full 1.17G DISK 00:01:40 26-SEP-15
  BP Key: 14 Status: AVAILABLE Compressed: NO Tag: TAG20150926T155741 <-★5回目に取得したフルBKP(データファイル)
  Piece Name: /opt/app/oracle/flash_recovery_area/O11201/backupset/2015_09_26/o1_mf_nnndf_TAG20150926T155741_c0djh9oj_.bkp
  List of Datafiles in backup set 14
  File LV Type Ckp SCN Ckp Time Name
  ---- -- ---- ---------- --------- ----
  1 Full 1114146 26-SEP-15 /opt/app/oracle/oradata/o11201/system01.dbf
  2 Full 1114146 26-SEP-15 /opt/app/oracle/oradata/o11201/sysaux01.dbf
  3 Full 1114146 26-SEP-15 /opt/app/oracle/oradata/o11201/undotbs01.dbf
  4 Full 1114146 26-SEP-15 /opt/app/oracle/oradata/o11201/users01.dbf
  5 Full 1114146 26-SEP-15 /opt/app/oracle/oradata/o11201/example01.dbf
 
 BS Key Type LV Size Device Type Elapsed Time Completion Time
 ------- ---- -- ---------- ----------- ------------ ---------------
 15 Full 9.36M DISK 00:00:02 26-SEP-15
  BP Key: 15 Status: AVAILABLE Compressed: NO Tag: TAG20150926T155741 <-★5回目に取得したフルBKP(SPファイルと制御ファイル)
  Piece Name: /opt/app/oracle/flash_recovery_area/O11201/backupset/2015_09_26/o1_mf_ncsnf_TAG20150926T155741_c0djlj04_.bkp
  SPFILE Included: Modification time: 26-SEP-15
  SPFILE db_unique_name: O11201
  Control File Included: Ckp SCN: 1114194 Ckp time: 26-SEP-15
 
 BS Key Size Device Type Elapsed Time Completion Time
 ------- ---------- ----------- ------------ ---------------
 16 1.05G DISK 00:01:12 26-SEP-15
  BP Key: 16 Status: AVAILABLE Compressed: NO Tag: TAG20150926T155955 <-★5回目に取得したアーカイブログBKP
  Piece Name: /opt/app/oracle/flash_recovery_area/O11201/backupset/2015_09_26/o1_mf_annnn_TAG20150926T155955_c0djmck2_.bkp
 
  List of Archived Logs in backup set 16
  Thrd Seq Low SCN Low Time Next SCN Next Time
  ---- ------- ---------- --------- ---------- ---------
  1 8 1066264 26-SEP-15 1070853 26-SEP-15
  1 9 1070853 26-SEP-15 1073090 26-SEP-15
  1 10 1073090 26-SEP-15 1075254 26-SEP-15
  1 11 1075254 26-SEP-15 1077415 26-SEP-15
  1 12 1077415 26-SEP-15 1079588 26-SEP-15
  1 13 1079588 26-SEP-15 1081937 26-SEP-15
  1 14 1081937 26-SEP-15 1084102 26-SEP-15
  1 15 1084102 26-SEP-15 1086291 26-SEP-15
  1 16 1086291 26-SEP-15 1088448 26-SEP-15
  1 17 1088448 26-SEP-15 1090611 26-SEP-15
  1 18 1090611 26-SEP-15 1092777 26-SEP-15
  1 19 1092777 26-SEP-15 1094652 26-SEP-15
  1 20 1094652 26-SEP-15 1095361 26-SEP-15
  1 21 1095361 26-SEP-15 1095925 26-SEP-15
  1 22 1095925 26-SEP-15 1096475 26-SEP-15
  1 23 1096475 26-SEP-15 1097023 26-SEP-15
  1 24 1097023 26-SEP-15 1097578 26-SEP-15
  1 25 1097578 26-SEP-15 1098133 26-SEP-15
  1 26 1098133 26-SEP-15 1100006 26-SEP-15
  1 27 1100006 26-SEP-15 1102432 26-SEP-15
  1 28 1102432 26-SEP-15 1104188 26-SEP-15
  1 29 1104188 26-SEP-15 1106599 26-SEP-15
  1 30 1106599 26-SEP-15 1107150 26-SEP-15
  1 31 1107150 26-SEP-15 1109856 26-SEP-15
  1 32 1109856 26-SEP-15 1111251 26-SEP-15
  1 33 1111251 26-SEP-15 1113682 26-SEP-15
  1 34 1113682 26-SEP-15 1114219 26-SEP-15
 RMAN>
 RMAN> list backup summary;
 List of Backups
 ===============
 Key TY LV S Device Type Completion Time #Pieces #Copies Compressed Tag
 ------- -- -- - ----------- --------------- ------- ------- ---------- ---
 6 B F A DISK 26-SEP-15 1 1 NO TAG20150926T154053 <-★2回目に取得したフルBKP(SPファイルと制御ファイル)
 7 B A A DISK 26-SEP-15 1 1 NO TAG20150926T154208 <-★2回目に取得したアーカイブログBKP
 8 B F A DISK 26-SEP-15 1 1 NO TAG20150926T154536 <-★3回目に取得したフルBKP(データファイル)
 9 B F A DISK 26-SEP-15 1 1 NO TAG20150926T154536 <-★3回目に取得したフルBKP(SPファイルと制御ファイル)
 10 B A A DISK 26-SEP-15 1 1 NO TAG20150926T154814 <-★3回目に取得したアーカイブログBKP
 11 B F A DISK 26-SEP-15 1 1 NO TAG20150926T155216 <-★4回目に取得したフルBKP(データファイル)
 12 B F A DISK 26-SEP-15 1 1 NO TAG20150926T155216 <-★4回目に取得したフルBKP(SPファイルと制御ファイル)
 13 B A A DISK 26-SEP-15 1 1 NO TAG20150926T155351 <-★4回目に取得したアーカイブログBKP
 14 B F A DISK 26-SEP-15 1 1 NO TAG20150926T155741 <-★5回目に取得したフルBKP(データファイル)
 15 B F A DISK 26-SEP-15 1 1 NO TAG20150926T155741 <-★5回目に取得したフルBKP(SPファイルと制御ファイル)
 16 B A A DISK 26-SEP-15 1 1 NO TAG20150926T155955 <-★5回目に取得したアーカイブログBKP
 
 
上記の結果を確認して頂くと分かるかと思いますが、1回目に取得した全てのバックアップおよび2回目に取得したフルBKP(データファイル)が削除されてしまっている事が確認出来ます。
 
なぜ、これらのバックアップが削除されてしまったのでしょうか。それは手順の(4)にて永続設定で[CONFIGURE RETENTION POLICY TO REDUNDANCY 3;]と設定した為です。この設定は新しいバックアップを3世代(デフォルトは1)残し、それ以前は削除されます。
 
しかしながら、この設定はあくまでも○○世代のバックアップを保存するものであり、必ずしもそれ以前が全て削除される事を保障するものでも無い事についてご注意下さい。ご利用環境や領域使用率、バックアップ取得方法やバックアップ取得状況、その他永続設定との兼ね合いにも左右されます。
 
■バックアップを取得する上での簡単な考慮事項について
 

上記で簡単なバックアップ取得方法等を紹介致しましたが、実際の本番環境でのバックアップ取得にあたっては少なくとも以下の様な点について検討の上、取得いただく事になると思います。
 
・取得間隔や取得時間をどうするか
→業務処理とバッティングしない様に処理ピーク時間を避け取得など。
フルバックアップにするか差分バックアップにするか
→週次でフル、日時で差分を取得。もしくは最初の一度のみフルでそれ以降は差分を取得など。(※ちなみにフルバックアップを取得しない状態で差分バックアップを取得すると自動でフルバックアップが取得されます。)
・保存方針をどうすうするか
→○○世代を保存、○○日前までの障害発生直前に復旧可能なよう保存など。場合によってはコンプライアンスによる理由などで、過去1年分のバックアップを残しておく必要が出てくることもあります。
・バックアップの取得先はどうするか
→データベースが構成されているディスクの障害を考慮しバックアップは別ディスクへ取得、テープへの出力も検討など


おしまいだよん~