【初学者】OracleMasterへの道「用語編」Part2

どうも、mosukyです

OracleMasterBronzeの資格を取るためのPart2になります。

とはいいつつも、前回の投稿から時間がたって、DBA 12cに関しては資格を取得しました。

前回のように実機検証を通して資格勉強がしたかったのですが、あまり時間 
がなかったので、座学で勉強してしまいました。

https://note.com/embed/notes/n2cd3cea8833e

今回はそんな、OracleDBの用語でよくわからなかったり、覚えづらい用語をまとめて見ました!
(完全に主観的選定)

今回は僕が勉強するなかで、わからなかった言葉を集めてるので、少々分類が荒くて、偏りがあったり、基本的な用語が省かれてたりします、、、
(これからOracle勉強する方には少し向いてないかも。。。)

では、

表領域系

表領域:
テーブルを格納する器。いろんな表領域があり、資格でよく出るのは[UNDO表領域、一時表領域]

シノニム:
仮名(利用用途は、テーブル名が確定しておらず、後から名前が確定する場合)

スキーマ:
ユーザ作成時にユーザ名で作成される物
オブジェクトを入れるための器の名前

オブジェクト:
スキーマないに入れられる物
テーブルやビューもここに入る。
更に、表領域に格納すると名前が「セグメント」になる。
(ユーザ保有だとオブジェクト、表領域での保有するとセグメントになる。たぶん)
また、1つのセグメントは1つ以上の「エクステント」を含む。

エクステント:
領域割当の単位。連続したデータブロックの集合のこと。

null

ビュー:
オブジェクトの一つ
複数のテーブルからselectして作成した仮想テーブル的な物
(試験では、「セキュリティ面」と「selectの実施をしなくても参照できる容易さ」を補うみたいな問題がよく出る。)
DML(select,update,delete)が実行できる

索引:
オブジェクトの一つ
主キーや一意キーなどを作成すると自動で作成される。selectの実施の際に高速化するために自動で作成される。(更にテーブルに対して変更(insert,deleteなど)を行うと自動で行われる)

制御ファイル:
DBインスタンス起動時「マウントのタイミング」で読み込まれる

一時表領域:
ユーザのPGAが不足した時に使用される。複数の一時表領域を展開できる。


パラメータファイル系

tnsnames.ora:
ファイルはクライアント側に置くファイルで、ローカルネーミング構成のネットワークで使用します。Oracleでデータベースに接続する時は「connect system/manager@oradb」などと記述しますが、@以降の文字の部分を接続識別子といい、接続先のデータベースを表しています。

SQLNET.ORA:
クライアントとサーバに必要なネットワークファイルで(ローカルネーミング構成の場合はクライアント側には不要)、使用するネーミングメソッドの優先順やデフォルトのドメイン名を指定します。

listener.ora:
リスナー系のファイル
リスナーとはクライアントからのDB接続要求を受け取るプロセスのことで、このファイルにてリスナーの設定ができます。(リスナー自体はコネクション接続確立する時のみ利用する。なので、コネクションがある状態でリスナーサービスが停止してもSQLを実行できる。)

null

初期化パラメータファイル
インスタンス起動時に一番最初に読み込みが行われるファイル

ALTER SYSTEM SET XXX…でパラメータを設定できる

1. SPFILE(サーバパラメータファイル):
Oracleデータベースによる読み取り/書き込むが可能
SCOPE句に関してデフォルトでBOTHのためALTER SQL実行時に、即時反映及び、デフォルト値の設定を変更する。

2. PFILE(テキストパラメータファイル):
Oracleデータベースによる読み取りはできるが、書き込みはできません。
SCOPE句はデフォルトはMEMORYのため、即時反映はするもののデフォルト値は変更されない。

静的パラメータを変更する時は「SCOPE=SPFILE」と明示的に指定する必要がある。
以下が静的パラメータ
1.MEMORY_MAX_TARGET(自動メモリの割当最大メモリ)
2.SGA_MAX_SIZE(自動共有メモリの割当最大メモリ)
3.LOG_BUFFER(REDOログのバッファメモリ)

null


権限系

1. オブジェクト権限:
テーブルに対して操作を行う権限
selectとか、insertとかのSQL文が代表的
2. システム権限:
システムに対して行う権限
ロール付与の権限や、データベースに接続する権限もシステム権限になる


SQL系

SQLコマンドの分類:
1.DML(Data Manipulation Lang)データ操作:
select,insert,update,delete,merge
2.DDL(Data Definition Lang)データ定義:
create,alter,drop,rename,truncate(表の切り捨て),comment(コメントの定義)
3.DCL(Data Control Lang)データ制御:

grant(権限の付与),revoke(権限の削除)
4.トランザクション制御:
commit,roleback,savepoint

(全然これが覚えられなかった。。。)

CASCADE:
dropなどの削除系の操作の際に、カスケードを指定することで関係性のあるテーブルなどが存在していても削除を実施することができる。

PURRG句:
dropした際に完全削除を行う。
tableを指定すると、完全に消える。
(参照するビューは残るけど、実行するとエラーになる。索引は削除される)

SQLチューニングアドバイザー:
単一または複数のパフォーマンスが最適できないSQL文をチューニングして、問題解決する機能。
・SQLプロファイルの作成または変更
・新しい索引の作成
・オプティマイザー統計のリフレッシュ(ただの「統計のリフレッシュ」じゃない!)
・SQLの再構築

以下、実行できるソース
1. トップアクティビティ:過去1時間で最もリソースが集中したSQL文
2.履歴SQL:AWRが記録されたSQL文(一連のSQL文雅24時間単位で評価される)
3.SQLチューニングセット:指定した一連のSQL文と関連するメタデータを1
つにした物(名前が紛らわしい)
SQLチューニングアドバイザーはDMLは考慮しないのが味噌!

SQL*Loader
1.従来型パスロード:
SQL INSERT文とバインド配列バッファを使用して、データをデータベース表にロードします。
2.ダイレクトパスロード:
ダイレクトパスAPIなる物を使うらしい。
バインド配列バッファに書き込むかわりに、SQL INSERT文を使用して、バインド配列をOracle Databaseに渡す。従来型よりも高速で行える。


リカバリ系

フラッシュバックデータベース:
そのまんま、データベースをまるっと過去時点に戻せる(最強)
point in timeリカバリーと動作は一緒(フラッシュバックかどうかの問題)
(フラッシュバック系:ユーザによるエラーのリカバリがメイン)

高速リカバリ領域:
各ファイルのバックアップなど、バックアップ/リカバリに関するファイルを自動管理するための領域
こいつは、普通に利用しているとすぐ満タンになる。
目安として、「データファイルの完全バックアップを2つ、リカバリーしたい期間内の増分バックアップ、アーカイブREDOログ」が入るスペース確保する。

RMANによるバックアップ
1.イメージコピー:
OSレベルでのデータファイル、制御ファイル、アーカイブREDOログファイルのコピーを行う。
OSレベルでリカバリ可能
(特にRMAN用のファイルに変換されるわけではないのがミソ)
(RMANリポジトリに記録されるので正確に取得とリカバリの記録を追える。らしい)
2.バックアップセット:
データファイル、制御ファイル、アーカイブREDOログ・ファイル、サーバパラメータファイル(SPFILE)をそれぞれの分類に分けてRMAN固有のファイルに変換してバックアップを行う。
増分バックアップで取得も可能で、テープへの書き込みも行える。
RMANを使わないとリカバリできない。
また、圧縮率もかなり高い。

null

インスタンスリカバリー:
インスタンス障害(shutdown abrodとか)が発生した場合のリカバリ
SMON(システムモニター)が検知して、リカバリーを行う。
メディアリカバリー:
メディアの故障(物理的なHDDとか)の故障に伴うリカバリ
NOARCAIVELOGでは復旧できない←重要


その他

データディクショナリ:
データベースに関する情報を提供する読取り専用の表の集合です。
ユーザパスワードとかも格納される

DBCA(Database Configuration Assistant):
データベースの作成とかを行うやつ
・データベースの作成
・データベースの削除
・データベースのオプション追加
・テンプレートの管理(xmlファイル)


感想

正直、駆け込むように勉強してしまったこともあり、しっかりとした学習にはなっていなかったような。。。
(あと、SQLをここまでノータッチ)

まーでもだいぶ基礎的な部分はわかったので、良かった。

来月はSQL 12cを取るので、次回とかはそのお話になるかな?
(多分このペースでsilverも直近取る)

いつか、資格試験の感想も書こうと思いますが、まだ資格取得は続くのである程度までいったらまとめて書きます。

では、

この記事が気に入ったらサポートをしてみませんか?