【ORACLE MASTER Platinum DBA 2019 実技試験】(3) 合格への道：実機演習環境を整える

# 目指せ！ORACLE MASTER Platinum DBA 2019合格
#### - ORACLE Certified Master DBA 2019 -

:::note info
まずは最初の記事をチェック！
[試験概要](https://qiita.com/nisshii0/items/57822fb5cf72f3636cbe)
:::


オラクルマスター Platinum DBA 2019（Oracle Certified Master）を目指す方に、合格者の観点からアドバイスを送ります。
当然守秘義務がありますので、主に試験概要ページから参照可能な情報の読み解き方のアドバイスになります。
何回かに分けていきたいと思います。

### 試験概要ページ
https://www.oracle.com/jp/education/ocm-3607006-ja.html

# 全体目次
第1回：[試験概要](https://qiita.com/nisshii0/items/57822fb5cf72f3636cbe
)
第2回：[学習方法（インストラクターのアドバイスを読み解く）](https://qiita.com/nisshii0/items/fbd6782f43c16c1873df)
第3回：[実機演習環境を整える](https://qiita.com/nisshii0/items/c0e912b8b00a0b590198)★本記事です
第4回：[試験範囲の予想（Platinum試験とGold試験）](https://qiita.com/nisshii0/items/32fbb5167ff3eb3f3f51)
第5回：[練習問題1 PDBの作成](https://qiita.com/nisshii0/items/4d07ba173d4c41fa9957)
第6回：[練習問題2 表領域の管理  ](https://qiita.com/nisshii0/items/0838c6f3fe7f8e21a065)
第7回：[練習問題3 リカバリカタログの管理](https://qiita.com/nisshii0/items/1641de47c0b4aab45363)　
～　ネタがあれば続けていきたい　～


# 実機演習環境は何を作成する？
本記事では、どのような演習環境を作成するのがよいか話題にします。


# 「G. 試験環境」を読み解く

> ・Oracle Linux Server release 7.8
> ・Mozilla ブラウザ、vi エディタ
>　（Gateway マシンはエディタとして gedit も使用可能）
> ・シェル環境: bash
> ・コマンドライン、GUI および使用可能なツールを使用
> ・Oracle Database 19c Enterprise Edition Release 3 (19.3.0)
> ・Oracle SQL Developer 19.1.0
> ・Oracle Grid Infrastructure 19c Release 3 (19.3.0) ※一部のタスクでのみ使用可能
> ・Enterprise Manager Cloud Control 13c Release 3 (13.3.0) ※一部のタスクでのみ使用可能

公開されている各種S/Wのバージョンです。
これらを使える環境を用意する必要があります。
大まかにいうと、Oracle Linux 7.8 と Oracle Database 19c EE の環境が必要ですね。

試験概要をみると、試験範囲にOracleRACやDataGuardが含まれているため
複数台のサーバを構築する必要があります。

CDBやPDBもたくさん作っていくことになるかと思いますので
1つのサーバの中に複数CDBも必要でしょう。


# 作った環境
試験概要などの色々な情報から最終的に以下の環境を構築しました。
もう少しサーバをまとめることも可能と思いますが、わかりやすく検証したい機能ごとに作っています。

:::note info
最低限、以下が検証できるLinux環境が必要です。

1. ASMを使ってないシングルDB用サーバ x 1 台（CDBは複数作成、非CDBも作ってみる）

2. Oracle RAC 環境

3. スタンバイデータベース用サーバ x 2 台 (項番1と共有可能）

4. Oracle Cloud Control サーバ




![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2551183/530e0b5b-a2f7-6d23-0140-11e9cddcf06d.png)
:::


これらをVirtualBoxなどの仮想環境で作成し、演習前に仮想マシンのバックアップをとっておくことをお勧めします。
とにかく、繰り返し繰り返し演習を行うことが合格の肝です。
演習を繰り返すことで、コマンドも覚えるますし、手も覚えてくるため
速度アップにもつながります。

# DBインストールの設定は？
実際の試験環境をわかりませんが、1つの目安はラーニングサブスクリプションの演習環境かと思います。
オラクル社が作成した環境ということで、試験環境と演習環境で似た部分があるかもしれません。


無償公開されている部分の内容をみると以下のことが分かりました。
テキストや動画で実機デモがある部分から抽出しています。

■サーバ情報
ホスト名：host01
OSユーザ：oracle
ORACLE_HOME：/u01/app/oracle/product/19.1.0/dbhome_1

■作成されているインスタンス
ORCL（PDBはpdb1）
cdb18
cdb12
noncdb

演習環境は色々なバージョンの研修で共通の可能性もあるため、一概には言えないと思いますが
1つのサーバに複数データベースが存在し、複数バージョンが作られているようでした。
かつ非CDBのような名前のデータベースもあります。

非CDBや旧バージョンが絡む問題もあるかもしれませんね。

これらのネタ元は試験概要最下部にある以下をご覧ください。
「L. ORACLE MASTER Platinum ラーニング・サブスクリプション　無償視聴」


# 演習をするのは？
実際の試験環境は Oracle Linux ということですので、
コマンドの端末も、ブラウザも Linux上のものを使って慣れておくと良いかと思います。
試験環境の項目に「Gateway マシン」とありますので
試験用のサーバとは別のLinux環境があり、そこからサーバに接続して作業することが予想されます。

自分は普段WindowsのTeraTermに慣れていたので普段はWindows端末からTeraTerm/ブラウザはEdge
で実機演習をしていましたが、
たまにLinux上での操作も確認しました。
Mozillaブラウザの使用感（主にEMCC用）、コマンドラインの使用感、
GUIツールの使用感、Linux上においたマニュアルの検索使用感あたりを確認しています。


# ドキュメントも準備しましょう
> オンラインの Oracle ドキュメントを使いこなすことができること。
> Mozilla ブラウザの使用に習熟していること。

ドキュメントは以下からダウンロード可能です。
ダウンロードして、マニュアルを使う練習もしておきましょう。

https://www.oracle.com/jp/database/technologies/oracle-database-documentation.html


試験概要に「ドキュメントをまたがる検索はできない」とありますので
オンラインで検索するように探すことは出来なさそうです。
マニュアル一覧から特定のマニュアル（データベース管理者ガイドなど）をたどって
目的の項目にたどり着けるようにしておきましょう。

個人的にはそれぞれの「ブック」ページから探すのが好きです。
どの機能がどのマニュアルに載っているかを覚えて、マニュアルタイトルの検索キーワードも決めておきました。
どんなキーワードで探すと、早く指定のマニュアルを見つけれるかという練習です。
https://docs.oracle.com/cd/F19136_01/books.html

また普段はWindows環境で見ているかもしれませんが、試験環境はLinuxです。
Linux上での検索感も一度見ておくと良いと思います。

# OS操作のスピードアップの秘訣

ちょっとした短縮コマンド活用などがお勧めです。
普段実機演習をしていく中で自分がどういう操作（コマンド）を行うことが多いのか？分かってきたら
それを短縮してみましょう。

自分は　alias と viのショートカット を多用しました。

#### <B>alias</B> → OSコマンドのショートカットを作成可能

例）
普段よく使うコマンド：　sqlplus system/manager@pdb1
登録するalias： alias sys="sqlplus system/manager@pdb1"
こうしておくと、普段 sys と入力するだけで、pdb1にsystemユーザでログインできます。
aliasを.bash_profileに登録しておくと良いです。

aliasを登録する時間とコマンド入力の時間、どっちが時間がかかるかというのはやってみてください。

```
[oracle@host01 ~]$ cat .bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH
umask 022
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/19.1.0/dbhome_1
export PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_SID=ORCL
export NLS_LANG=Japanese_Japan.AL32UTF8

alias sys="sqlplus system/manager@pdb1"  　★このように追加
alias cdo="cd $ORACLE_HOME"  　　　　　　　 ★このように追加
alias cdn="cd $ORACLE_HOME/network/admin"　★このように追加
[oracle@host01 ~]$ . .bash_profile

[oracle@host01 ~]$ sys  ★自分用のコマンド sys が使用できるようになった

SQL*Plus: Release 19.3.0.0.0 Production on 土 3月 16 08:17:34 2024

Copyright (c) 1982, 2014, Oracle.  All rights reserved.

Oracle Database 19c Enterprise Edition Release 19.3.0.0.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
に接続されました。
SQL>exit

[oracle@host01 ~]$ cdo  ★ディレクトリ移動するようなaliasを作るのもあり
[oracle@host01 dbhome_1]$ pwd
/u01/app/oracle/product/19.1.0/dbhome_1
[oracle@host01 dbhome_1]$
```

#### viショートカット
コピペや、置換などのショートカットがサラっと使えるようになると便利かも。
いずれにせよ、viなどのLinuxエディタに慣れていない人は慣れておくようにしましょう。
あえて使うとなると、普通の方法で行うのとショートカットどちらが早いの？となると思いますので
あえてこれらのショートカットを使うというよりは、普段からサラっと使えるようになるといいと思います。


10yy →　カーソルのあるところから、10行コピー
p →　貼り付け
G　→　カーソルを最後尾（最後の行）まで移動
:/〇〇　→　文字列検索
:%s/置換対象文字列/置換後文字列/g  →　ファイル全体の置換対象文字列を置き換え