株式会社コーソル

コーソルDatabaseエンジニアのブログ

技術ブログ

ORACLE MASTER Silver DBA 2019試験対策セミナー フォローアップ

Oracle ACEの渡部です。 6/24に開催した 「出版記念特別企画:黒本著者が解説 ORACLE MASTER Silver DBA 試験対策セミナー」 に、非常に多くの方にご参加頂きました。ありがとうございました。

オンラインセミナーで頂戴した質問について、当日回答できないかったものも含め、回答を文章として残しておきたいと思います。 時間の関係上、乱筆すみません。不明点などあれば、Twitterで@wrcsus4 (私のTwitterアカウント)までご連絡をお願いします。

ORACLE MASTER 新Silver DBA黒本オンラインセミナーについて

ORACLE MASTER 新Silver DBA黒本とは

歴史ある翔泳社さんの資格対策書籍シリーズである、いわゆる「黒本」の新Silver DBA版です。

正式な書名は「オラクルマスター教科書 Silver DBA Oracle Database Administration I」です。

この書籍は、2020年2月に開始された新しいORACLE MASTER試験である 「Oracle Database Administration I(試験番号1Z0-082)」 の試験対策書籍です(以下、「新Silver DBA黒本」と記載)。新Silver DBA黒本は、2021年6月時点で、1Z0-082試験に対応する唯一の試験対策書籍です。

この試験に合格すると、新体系ORACLE MASTER 2019における資格「ORACLE MASTER Silver DBA」を取得できます。

詳細は以下をご確認下さいませ。

ORACLE MASTER Silver DBA 2019黒本を執筆しました

セミナーの構成

以下の構成でセミナーを進めました。

  1. 学習の進め方についてのアドバイス
  2. DBA 練習問題の解説(各章1問)
  3. SQL学習用環境としてのOracle Live SQLの紹介と使用Tips
  4. 質問対応など

なお、Oracle Live SQLについては、以下の記事も参考にしてください。

環境構築が不要なORACLE MASTERのSQL学習方法(Oracle Live SQL)

1章「Oracle Databaseアーキテクチャの理解」に関連する質問

オンラインセミナーでいただいた質問に回答します。

なお、自分の質問が抜けている、質問の主旨を取り違えているなどあれば、 Twitterで@wrcsus4 (私のTwitterアカウント)までご連絡をお願いします。

データベースバッファキャッシュの遅延書き込みにおける遅延の度合い

遅延書き込みはどれくらい遅延されるのでしょうか?

データベースバッファキャッシュの遅延書き込みは、書き込みの負荷軽減・平準化を狙ったものです。

遅延書き込みにおける遅延時間を大きくことには、以下の論点があります。

  • 大きくするメリット: 書き込みの負荷を軽減できる
  • 大きくするデメリット: インスタンスリカバリに時間を要する(「データファイルに対して変更が未反映のブロック」の数が多くなるため)

このメリットとデメリットはトレードオフの関係にあるため、Oracleでは、「インスタンスリカバリにこれ以上は時間を要してほしくない!」という時間を初期化パラメータFAST_START_MTTR_TARGETに設定できるようになっています(要Oracle EE)。

すなわち、インスタンスリカバリに要する時間は、最大FAST_START_MTTR_TARGETかかるのは許容するけれど、この範囲において、できる限り書き込みの負荷を軽減してほしい。という動作を実現できるようになっています。Oracle凄い!

REDOログファイルの多重化の意義

REDOログの重複は意味がありますか。

REDOログファイルは、以下の用途における、実行されたトランザクションの回復(再実行、復元)のために使用されます。

  • インスタンスリカバリ : インスタンスが異常終了した場合の、トランザクション回復
  • メディアリカバリ: データベースファイルが破損し、バックアップからのリストアが余儀なくされた場合の、トランザクション回復

このため、REDOログファイルが失われると、実行されたトランザクションは失われ、回復することはできません。 この観点で、REDOログファイルは重要なものであるため、多重化することが推奨されています。

2章「Oracleデータベースの作成および各種ツールの使用」に関連する質問

特にありませんでした。

3章「データベースインスタンスの管理」に関連する質問

Oraleを定期的に再起動するときのSHUTDOWNオプション指定

Oraleを定期的に再起動する場合、推奨オプションはどれでしょうか?次回起動時に整合性が取れるならABORT一択な気がしますが・・・。

結論からいうと、日常運用におけるSHUTDOWN ABORTコマンドの使用は推奨されません。代わりに、SHUTDOWN IMMEDIATEコマンドの使用をお勧めします。

確かに、メカニズム的にはSHUTDOWN ABORTコマンドを使用してインスタンスを強制終了しても、次回再起動に整合性は回復されるのですが、なにかしらの不確定要因により、整合性は回復されない可能性もないわけではありません、というか、できるかぎり変なことが起こりにくい運用を考えるのが望ましい方策でしょう。くりかえし何度も何度も実行される処理であれば、なおさらです。

4章「Oracle Net Serviceの設定」に関連する質問

リモート接続においてリスナーを経由する理由

リスナーを経由させるメリットは何でしょうか。

端的に言ってしまうと、「Oracleではリモート接続においてはリスナーを経由する設計になっているから。」ということになります。 言い換えると、リモート接続では必ずリスナーを経由する必要があり、リスナーを経由しなければリモート接続はできないということです。

すこし話を広げると、リスナー相当のコンポーネントを使用しないDBMS製品は存在します。MySQLやPostgreSQLにはリスナーに相当するコンポーネントは存在せず、インスタンスに相当するものが直接リモート接続を受け付けます。 なので、当然Oracleでもそういう実装も「論理的には」可能なのですが、Oracleの開発者はそのような設計にはしなかったようです。詳細な説明はできませんが、まぁ、歴史的な経緯もあっての判断でしょうね。

ファイアウォールでの接続制御とリモート接続

1つのサーバー上で、DBを複数起動する場合、Oracleでは、Portは別にする必要ないとのコメントがありましたが、データベースサービス名を分ける必要があるのでしょうか?また、Portを分けても問題ないのでしょうか?
PORTを分けたいのは、FireWallでセキュリティ制御したいためですが、そういう場合は、データベースサービス名の他に、PORTも分けても問題ないでしょうか?という意図の質問です。

(試験範囲外の質問です)

特定のデータベースへの接続可否をファイアウォールで制御したい。という話と理解しました。 私が採用するかどうかは別にして、やるならば以下の構成になるでしょうね。

リスナー1 (ポート1521)   → データベースA

リスナー2 (ポート1522)   → データベースB

設計の話になるので、実際には様々な観点で検討をすることになると思います。

5章「ユーザー、ロールおよび権限の管理」に関連する質問

ロールを入れ子にできる上限

ロールを入れ子できる数は上限があるのでしょうか?入れ子にしすぎるとメンテナンスが大変になりそうです。

確認した限り、特に制限はないようでした。

もし、業務上の理由などで確実な答えが必要な場合、製品サポートに問い合わせてみてください。

ロール管理を支援するツール

ロール管理をしやすくするツールはありますか?

ツールではないのですが、以下のMy Oracle Supportドキュメントで紹介されているスクリプトが活用できると思います。

6章「表領域およびデータファイルの管理」に関連する質問

CREATE TABLESPACE文のデータファイル属性のデフォルト

CREATE TABLESPACE文で、AUTOEXTENDED ONを指定しない場合、デフォルトでは、自動拡張ONで表領域は作成されるでしょうか?
SIZEを省略した場合のデフォルト値はあるでしょうか?

を参照してください。実務的には、誤解のないよう、明示的に値を設定することを推奨します。

7章「データ格納のための記憶域の利用」に関連する質問

一部未回答の質問があります。回答は後日準備予定です。

8章「UNDOの管理」に関連する質問

unexpiredステータスの意義

コミット済みのUNDOをUNDO保存期間で消されないように守るステータスがあるのはなぜですか?

UNDO保存期間は、UNDO_RETENTION初期化パラメータに設定します。 UNDO保存期間のUNDOデータを上書きされないようにすることで、以下を実現できます。

  • ORA-01555発生の抑止
  • フラッシュバック操作による過去データ参照を可能に
    • フラッシュバック操作の多くは、Silver DBA試験の範囲外です。

9章「データの移動」に関連する質問

外部表を使うメリット

外部表を使うメリットは何でしょうか?バックアップ代わりに使うのでしょうか?

ORACLE_DATAPUMPアクセスドライバの外部表を使うと、データのアンロード、ロードによるデータベース間のデータ移動を実現できます。

ORACLE_LOADERアクセスドライバの外部表を使うと、外部データを通常の表のように問合せできます。 CSVファイルのままでは、SELECT ... WHERE なんていうSQLを使ってデータは抽出できません(最近は便利なユーティリティもあるにはありますが)。

以下のような活用方法も考えられるでしょう(試験範囲外)。

  • 外部表と通常の表を結合する
  • INSERT ... SELECT FROM <外部表> を実行して、通常の表に外部表のデータをロードする。SQLでロードできるため、パラレル処理やSQLファンクションを用いたデータの加工が可能になります。

試験範囲外の質問

RAWデバイスの使用

OracleでRAWデバイスを使用するのは目的やメリットはあるでしょうか?最近は、ファイルシステムやASMが一般的でしょうか?

RAWデバイスはOracle Database 12.1以降サポート対象外です。

Oracle Database 12c以上では、RAWデバイスのブロック・ファイル記憶域はサポートされていません。RAWデバイス上に格納されているすべてのデータ・ファイルを、Oracle ASM、クラスタ・ファイル・システムまたはネットワーク・ファイル・システム(NFS)に移行する必要があります。

[参考] ORACLE MASTERについて

ORACLE MASTER新体系について

新体系ORACLE MASTER 2019の変更点と留意点 – 18c/19c対応

[参考] ORACLE MASTER Platinumとは何か

ORACLE MASTER Platinumとは何か / コーソルはPlatinum取得者数No.1!

プロフィール

On7tWW6m1Ul4

渡部 亮太

・Oracle ACE
・AWS Certified Solutions Architect - Associate
・ORACLE MASTER Platinum Oracle Database 11g, 12c 他多数

カテゴリー

アーカイブ