OracleLevel 2

難易度は Level 1(やさしめ)〜Level 5(難関) の5段階です。

ORACLE MASTER Bronze DBA 26ai (1Z0-185-JPN)のサンプル問題(本番形式・解説付き)

ORACLE MASTER Bronze DBA 26ai (1Z0-185-JPN)(Oracle・Bronze DBA Oracle AI Database 26ai Fundamentals(ORACLE MASTER Bronze DBA))の出題形式を、実際の問題で確かめられます。ここに掲載する5問は、無料の会員登録で解ける模試 第1回(70問)の冒頭から抜粋したオリジナル問題です。当サイトは全280問を本番CBT準拠の形式で収録しており、この5問はそのごく一部にあたります。

設問1

拠点をまたいでデータを分散して持ち、障害時に自動的にフェイルオーバーする構成を、Oracle AI Database 26ai で実現したい、という要件があります。この要件に合う機能はどれですか。

  • Transparent Data Encryption による表領域とバックアップの暗号化
  • Oracle SQL Firewall による許可リスト方式の SQL 実行制御
  • SQL ドメインによる列の型・制約・既定値の共通化と再利用
  • Globally Distributed Database による Raft ベースのレプリケーションと自動フェイルオーバー(正解)

解説

Globally Distributed Database は、データを複数のシャードへ分散し、Raft ベースのレプリケーションで障害時に自動フェイルオーバーできる可用性の機能です。Transparent Data Encryption は暗号化、SQL Firewall は SQL の許可リスト、SQL ドメインは列定義の再利用の機能です。

他の選択肢が誤りである理由

  • 「Transparent Data Encryption による表領域とバックアップの暗号化」保存データを暗号化する機能で、可用性の機能ではありません
  • 「Oracle SQL Firewall による許可リスト方式の SQL 実行制御」SQL の許可リストを管理する機能で、フェイルオーバーとは関係がありません
  • 「SQL ドメインによる列の型・制約・既定値の共通化と再利用」列の型や制約を再利用する機能で、可用性の機能ではありません

設問2

SGA_TARGET=1200M、PGA_AGGREGATE_TARGET=300M、MEMORY_TARGET=0 と設定しました。この関係について正しいものはどれですか。

  • SGA_TARGET と PGA_AGGREGATE_TARGET の合計が、自動的に MEMORY_TARGET の値になる
  • SGA_TARGET の 1200M に PGA の 300M が含まれるので、SGA が使えるのは 900M になる
  • SGA_TARGET は SGA だけの目標で、PGA_AGGREGATE_TARGET は別に管理され、両者は合算されない(正解)
  • PGA_AGGREGATE_TARGET の 300M は、SGA の空きがあれば SGA へ自動で貸し出される

解説

SGA_TARGET は SGA の合計、PGA_AGGREGATE_TARGET は全サーバー・プロセスの PGA 合計の目標です。MEMORY_TARGET=0 なら、両者は独立して管理されます。 「SGA_TARGET と PGA_A…」:MEMORY_TARGET は自動では設定されず、0 のままです。 「SGA_TARGET の 1200M…」:SGA_TARGET は SGA だけの大きさで、PGA は含まれません。 「PGA_AGGREGATE_TARG…」:MEMORY_TARGET=0 では SGA と PGA の間でメモリーを融通しません。

他の選択肢が誤りである理由

  • 「SGA_TARGET と PGA_AGGREGATE_TARGET の合計が、自動的に MEMORY_TARGET の値になる」MEMORY_TARGET は自動では設定されず、0 のままです。
  • 「SGA_TARGET の 1200M に PGA の 300M が含まれるので、SGA が使えるのは 900M になる」SGA_TARGET は SGA だけの大きさで、PGA は含まれません。
  • 「PGA_AGGREGATE_TARGET の 300M は、SGA の空きがあれば SGA へ自動で貸し出される」MEMORY_TARGET=0 では SGA と PGA の間でメモリーを融通しません。

設問3

tnsnames.ora に定義したネット・サービス名 MYPDB に対して tnsping を実行すると、OK (0 msec) と表示されました。ところが、sqlplus system@MYPDB は ORA-12514 で失敗します。この説明として正しいものはどれですか。

  • tnsping は名前解決とリスナーへの到達だけを調べるため、サービス未登録でも OK になる(正解)
  • tnsping が OK になるのは、サービスが開いていて SQL 文を実行できる状態であるとき
  • パスワードが誤っているため、リスナーに届いたあとの認証で失敗している
  • tnsnames.ora が複数あり、tnsping と sqlplus が別のファイルを参照している

解説

tnsping は、名前を解決してリスナーが応答するかを調べるだけで、サービスの登録は見ません。サービスがリスナーに登録されていなければ、tnsping が OK でも接続は ORA-12514 になります。 「tnsping が OK になるのは…」:tnsping はサービスの状態までは見ない 「パスワードが誤っているため、リスナー…」:認証の失敗は ORA-01017 で、ORA-12514 ではない 「tnsnames.ora が複数あり…」:同じ環境変数を使えば、tnsping と sqlplus は同じファイルを参照する

他の選択肢が誤りである理由

  • 「tnsping が OK になるのは、サービスが開いていて SQL 文を実行できる状態であるとき」tnsping はサービスの状態までは見ない
  • 「パスワードが誤っているため、リスナーに届いたあとの認証で失敗している」認証の失敗は ORA-01017 で、ORA-12514 ではない
  • 「tnsnames.ora が複数あり、tnsping と sqlplus が別のファイルを参照している」同じ環境変数を使えば、tnsping と sqlplus は同じファイルを参照する

設問4

オンラインのデータベースが SHUTDOWN ABORT で停止されました。その後 STARTUP を実行した時の動作として正しいものはどれか。

  • MOUNT で停止し、DBA が RECOVER DATABASE を実行するまで OPEN できない状態が続く
  • OPEN の過程で、オンライン REDO ログを使ったインスタンス・リカバリが自動で実行される(正解)
  • ALTER DATABASE OPEN RESETLOGS を実行しないと OPEN できない状態になる
  • アーカイブ REDO ログを使ったメディア・リカバリが、OPEN の過程で自動で実行される

解説

SHUTDOWN ABORT はチェックポイントを取らずに停止するため、次回の起動時に OPEN の過程でインスタンス・リカバリが自動実行されます。DBA の作業は不要です。 「MOUNT で停止し、DBA が R…」:インスタンス・リカバリは自動で実行されるので、DBA の操作は不要である。 「ALTER DATABASE OPE…」:RESETLOGS は不完全リカバリの後に使うオプションで、ABORT の後には不要である。 「アーカイブ REDO ログを使ったメ…」:メディア・リカバリではなく、オンライン REDO ログを使うインスタンス・リカバリが実行される。

他の選択肢が誤りである理由

  • 「MOUNT で停止し、DBA が RECOVER DATABASE を実行するまで OPEN できない状態が続く」インスタンス・リカバリは自動で実行されるので、DBA の操作は不要である。
  • 「ALTER DATABASE OPEN RESETLOGS を実行しないと OPEN できない状態になる」RESETLOGS は不完全リカバリの後に使うオプションで、ABORT の後には不要である。
  • 「アーカイブ REDO ログを使ったメディア・リカバリが、OPEN の過程で自動で実行される」メディア・リカバリではなく、オンライン REDO ログを使うインスタンス・リカバリが実行される。

設問5

ユーザー app1 の定義者権限のプロシージャが、ロール hr_read を通じた権限で hr.employees を参照しているため、コンパイル・エラーになっています。解決する方法として正しいものはどれか。

  • app1 に hr.employees の SELECT 権限を直接付与する(正解)
  • ロール hr_read を PUBLIC に付与する
  • コンパイルの前に、app1 で SET ROLE hr_read; を実行する
  • ALTER USER app1 DEFAULT ROLE ALL; を実行する

解説

定義者権限のプログラムが使えるのは、所有者に直接付与された権限だけです。直接付与で解決します。 「ロール hr_read を PUBLIC に付与する」:ロールを PUBLIC に付与しても、定義者権限のプログラムではロール経由の権限は使われない。 「コンパイルの前に、app1 で SE…」:SET ROLE で有効にしたロールの権限は、定義者権限のプロシージャのコンパイルには使われない。 「ALTER USER app1 DE…」:DEFAULT ROLE の設定は、定義者権限のプログラムが使う権限には影響しない。

他の選択肢が誤りである理由

  • 「ロール hr_read を PUBLIC に付与する」ロールを PUBLIC に付与しても、定義者権限のプログラムではロール経由の権限は使われない。
  • 「コンパイルの前に、app1 で SET ROLE hr_read; を実行する」SET ROLE で有効にしたロールの権限は、定義者権限のプロシージャのコンパイルには使われない。
  • 「ALTER USER app1 DEFAULT ROLE ALL; を実行する」DEFAULT ROLE の設定は、定義者権限のプログラムが使う権限には影響しない。

続きは、会員登録なしでそのまま50問解けます。採点と解説つきで、上と同じ本物の問題です。

登録なしで50問解く