【合格体験記】実務経験ないけどOracleDatabase Bronzeに合格(後編：DBA編)

#はじめに
**OracleDatabase DBA試験に合格しました。**
今回は2つある試験のうち、DBA試験を受験した体験記になります。
前編・SQL基礎編はこちら →[【合格体験記】実務経験ないけどOracleDatabase Bronzeに合格(前編：SQL基礎編)](https://qiita.com/Kakese_Chan/items/b2da35e95121bf6bf7f4)

今回はいくつも試験があるSQL基礎とは異なり1試験しかないので、迷わずDBA12c(1Z0-065)を受験しました。

SQL試験とDBA試験は仕様上はどちらを先に受けても良いのですが、**SQLの方がとっつきやすい**、**SQLを先に理解しておいた方が話が分かりやすい**と思うので、やはりDBA試験は後に受ける方が個人的におすすめだと思いました。

#書いた人のスペック
・文系未経験新卒1年目
・本格的な開発経験はなし
・DBを利用した研修は受けている
・[SQL基礎の試験には先に合格している](https://qiita.com/Kakese_Chan/items/b2da35e95121bf6bf7f4)

#step1：書籍購入
まずは書籍での勉強です。今回もSQL基礎の時と同じく白本を購入しました。
![](https://images-na.ssl-images-amazon.com/images/I/51KMk-vViGL._SX351_BO1,204,203,200_.jpg)
[Amazon](https://www.amazon.co.jp/%E3%80%90%E3%82%AA%E3%83%A9%E3%82%AF%E3%83%AB%E8%AA%8D%E5%AE%9A%E8%B3%87%E6%A0%BC%E8%A9%A6%E9%A8%93%E5%AF%BE%E7%AD%96%E6%9B%B8%E3%80%91ORACLE-MASTER-Bronze-%E8%A9%A6%E9%A8%93%E7%95%AA%E5%8F%B7-%E3%82%AA%E3%83%A9%E3%82%AF%E3%83%AB%E3%83%9E%E3%82%B9%E3%82%BF%E3%83%BC%E3%82%B9%E3%82%BF%E3%83%87%E3%82%A3%E3%82%AC%E3%82%A4%E3%83%89/dp/4797375426/ref=sr_1_4?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&keywords=DBA12%EF%BD%83&qid=1577532441&sr=8-4)

ひとまずこの本を最初から最後まで読んで勉強します。
DBAの試験は、DBの仕様や仕組みそのものに踏み込むもので完全に座学。それゆえSQL試験とは異なりコードを読み解いて問題を解くような要素は殆どなく、最初から最後まで完全に暗記ものです。
という事もあってか、サンプルコードの分同じ白本とはいえSQLよりも本は薄め。でもSQLと違って管理経験は皆無なので、実務経験のない自分にとって**予備知識でいけるところは全然ありませんでした**。とても難しく、最初は全然頭に入ってきませんでした。

ただSQL試験での知識は割と役に立っていて、DML文などSQL文の種類・トランザクションの基本などはそのまま利用できます。また白本第8章のスキーマオブジェクトなどはSQL基礎でも覚えた内容が多かったです。


#step2：問題演習
ひとまず白本を一周読み終えた所で、白本の章末問題の周回を行いながら、こちらのサイトにお世話になりました。

オラクルマスターへの道
http://oraclemaster.info/exercise/1z0-065/
白本を周回して苦手を潰しながら、これを100%にします。
100％にしたあとは徹底復習モードで反復しますが、だんだん問題自体を覚えてきてしまうのでそこまでやりました。

Oracle公式HPのサンプル問題
https://www.oracle.com/jp/education/campaign-1898205-ja.html
問題数は25問と決して多くはありませんが、公式という安心感はあります。
このサイト上での目標点は実際の試験より高く設定されているので、これを越えることが出来るようになるまで反復すれば結構出来るようになります。

あとは白本の模擬問題を周回します。
SQL編で用いたping-tにも問題があるのですが、DBAの問題は有料なので今回はちょっと躊躇してしまいました。

#MEMO
**■基本構造**
インスタンス……SGA(システムグローバル領域)とバックグラウンドプロセス　で成り立つ
データベース……制御ファイル、データファイル、REDOログファイル　で成り立つ

**■特に覚えるべきツール**
・Oracle Universal Instaler：インストーラー
・SQL*plus：コマンドライン
・Enterprise Manager：管理
・Date Pump：DBから他のDBにデータ転送する。
 ※他のツールがほぼ名が体を表す分かりやすい名前なので、ちょっと抽象的な名前のこれだけ頭に入れておくと良い。あとはなんとなく名前の通り

**■テンプレート**
・DBCAを利用してDBを作成する際に使用する**XMLファイル**
・事前作成されているのは「汎用またはトランザクション処理」「データ・ウェアハウス」「カスタム・データベース」の3種類
※設問として問われやすいのは「データウェアハウス」

**■SCOPE句**
・サーバパラメータファイル(バイナリファイル)使用時のデフォルト値は「BOTH」
・テキスト初期化パラメータ(テキストファイル)使用時のデフォルト値は「MEMORY」
・静的パラメータ変更時は「SPFILE」を明示的に指定する必要がある

**■静的パラメータ**
・MEMORY_MAX_TARGET
・SGA_MAX_SIZE
・LOG_BUFFER
※動的パラメータを問われる事もあるが、これ以外と覚えれば良い

**■データベースの構造**
・制御ファイル(物理構造に関する情報、バイナリファイル)
・REDOログファイル(変更情報。必ず2つ以上のREDOロググループで構成される)
・データファイル(表・索引のデータ)

**■バックグラウンドプロセス**
・SMON(システムモニター)：インスタンスリカバリの実行、1つのみ起動
・PMON(プロセスモニター)：クリーンアップの実行、1つのみ起動
・DBWr(データベースライター)：データファイルへの書き込み、複数起動
・LGW(ログライター)：REDOファイルの書き込み、1つのみ起動

**■表領域**
・SYSTEM表領域：DBの管理情報、データディクショナリ
・SYSAUX表領域：DBの管理情報、スナップショットの保存
・TEMP表領域：一時セグメント
・UNDOTBS1表領域：UNDOセグメント
・USER表領域：ユーザーオブジェクト

**■管理者アカウント**
・SYS：全ての実表とビュー、UNDOセグメント
・SYSTEM：内部的な表やビュー、管理情報を表示する表やビュー
・SYSMAN：EMによるDB操作用
・DBSMNP：EMによる監視用

**■フラッシュバック機能**
・フラッシュバック問合わせ：問合わせを行い、指定した時点での問合わせ結果を参照する
・フララッシュバック表：表を過去の時点に戻す
・フラッシュバックドロップ：ごみ箱にある表を元に戻す
・フラッシュバックデータベース：Point-in-Timeリカバリを効率的に行う

**■モード**
・NOARCHIVELOGモード：デフォルト。満杯になったREDOファイルをアーカイブしない。一貫性バックアップのみ。
・ARCHIVELOGモード：メディアリカバリ(完全リカバリ・Point-in-Timeリカバリ)を使用できる。

**■エラーの発生**
・静的パラメータを「SPFILE」なしで変更する
・リスナー未起動時に起動しようとする
・オブジェクトを所有するユーザーを削除する(CASCADEの場合は可)

**■エラーの未発生**
・リスナーを停止した後もセッションは続行できる(※リスナーは起動時に必要だが続行には必要ない)
・リスナーのポート番号の省略は、デフォルト(1521)を利用する


#申し込み
申し込みのやり方はSQL試験などと軒並み同じです。
[以前書いた記事はこちら](https://qiita.com/Kakese_Chan/items/256784b541f254d6f696)

ただ今回は会場受験なので、会場の予約も行う必要があります。
希望の会場・日時がある場合は、早めに申し込むのが良いと思います。

また2019年12月～2020年5月はなんと再受験無料キャンペーン中です！！
https://www.oracle.com/jp/education/campaign-1898205-ja.html#20191202
HPの方法に従って申し込み時にコードを入力すると、落ちても2回目タダで受けられるようになります。
3万円弱と非常に高額なので有難いですね。受験するときも「落ちたら受験料が……」と変に緊張せずに済みます。

(2020年5月以降にこの記事を見ている方へ：このキャンペーンは定期的に開催されているものなので、最新ニュースをチェックしてみて下さい。)

#受験
当日は15分前ぐらいには会場に着くようにしたい所です。
身分証確認・写真撮影・持ち物確認等を終えて試験ルームへ。いろんな試験を取り扱っているので、同じ試験を受けに来ている人は多分いません。
試験は120分、PCで回答。
ただ暗記物ということもあり、時間との勝負という感じはあんまり。半分も使わずに終了。

**出題傾向(体感)**
・白本やWeb問題とほぼ同じ問題：4割
・↑の改問：1～2割
・↑の知識は使えば解けるちょっと捻った問題：2～3割
・なにこれ知らない／隅に載ってたけど押さえてなかった問題：2割

なにこれ知らんぞ、こんなん白本載ってた？ていう問題もあったんですが、少なくとも白本が完璧なら合格ボーダーの7割には載るはずという割合ではあったかと。

あくまで予想なのですが、73問という半端な出題数から見るに、3問未採点問題があると踏んでる(注意書に未採点問題もあるかもね？ぐらいの記載はある)ので、見覚えのない問題が出来なくてももしかしたら採点されてないかも、とあまり落ち込んだり焦ったりしなくていいと思います。

終了後、スマホからCertviewを確認すると合否が出ていました。(Oracle試験は会場では合否や点数が確認できません)
**結果は77点で合格です！**
高得点ではありませんが、自分の力量に対して難しい試験だったので一発合格出来ただけよし。

ARCHIVELOGモード周辺や、自動メモリー管理周辺はもっと勉強しておけば良かったなと思いました。あと本番試験はパラメーターだけ出てきて状況について答えさせるような問題もあり。勉強の浅さは相変わらず感じる所でした。

丸1日後、前回のSQL試験と合わせて資格自体の認定書がメールで届きました。
#最後に
今回はDBA12cの試験に合格し、また前回のSQL試験と合わせてOracle Database Bronzeを取得することが出来ました。
他の初級系資格と比較すると難しく、正直コスパは悪い資格なのですが、だからこそ履歴書に書いた時戦闘力が高い印象です。時間がある時に取れてよかった。

また気が向いたら次のSilverも取得したいと思います。
でも今回結構頑張ったから、また暫く後でいいかな……。