
長い年数使ってきましたOracleについて、その管理機能をまとめたものです。ITご利用者の方々のご参考になれば幸いです。
◎Oracleデータベース管理
イベント、トリガー
SGA(システムグローバル領域)メモリ構造、PGA(プログラム・グローバル領域)
ディスパッチャー
プロセス
リスナー
データベース・サービス名 == グローバル・データベース名
ネットワーク・ホスト名
例. connect scott/tiger@KAIKEI //接続識別子
・ネットサービス名・・・ローカルネーミング
Enterprise Manager、Net Manager
Oracle サーバープロセス・・・バックグラウンドプロセス・サーバープロセス・ユーザープロセス
◎Oracleインスタンスの管理
システム・グローバル領域(SGA)・・・データベース・バッファ・キャッシュ、REDOログバッファ、共有プール(SQL解析)、ラージ・プール、Javaプール
Oracleプロセス・・・データベース・ライター、ログ・ライター、システム・モニター、プロセス・モニター、チェックポイント・プロセス、アーカイバー・プロセス(REDOログ)
インスタンスの起動・・・バックグラウンドプロセスの起動
データベースのマウント・・・インスタンスにデータベースを割り当て
データベースのオープン・・・REDOログファイルとデータベースファイルをオープン
init.ora・・・PFILE(テキスト形式静的パラメータ・ファイル)・・・テキスト形式
spfile.ora・・・SPFile(サーバー・パラメータ・ファイル)・・・バイナリ形式
自動共有メモリ管理
◎データベース記憶構造の管理
制御ファイル・データファイル・REDOログファイル
物理構造・論理構造・表領域・セグメント・エクステント
データベースの表領域・・・SYSTEM・SYSAUX・TEMP・UNDO・USERS・EXAMPLE
◎ユーザーおよびセキュリティの管理
ユーザー属性・・・認証方式・パスワード・デフォルト表領域・一時表領域・割当制限・アカウントのロック
Oracleのユーザー・・・DBSNMP・SYSMAN・SYS・SYSTEM・サンプルユーザー
権限・・・システム権限・オブジェクト権限・・・CREATE TABLE権限・SELECT権限など
ロール・・・権限をグルーブ化したもの
システム権限・・・SYSDBA・SYSOPER
ロールの追加・取り消し
◎スキーマ・オブジェクトの管理
スキーマ・・・SYSスキーマ、SYSTEMスキーマ
データ型
スカラー型・・・CHAR、VARCHAR2、NCHAR、NVARCHR2
数値型・・・NUMBER、BINARY_FLOAT、BINARY_DOUBLE
日付型・・・DATE、TIMESTAMP、TIMESTAMP WITHTIME_ZONE、TIMESTAMP WITHLOCAL_TIME_ZONE、INTERVAL YEAR、INTERVAL DAY TO SECOND
RAW型・・・可変長、バイナリ
ROWID型・・・行のアドレス
UROWID型・・・ユニバーサルROWID型、オブジェクトのアドレス
LOB型・・・Large Object型
LONG、LONGRAW
コレクション型・・・VARRAY型、ネストしたテーブル型
関連型・・・REF型・・・オブジェクト・データへのポインタ
データ整合性制約・・・NOT NULL、一意キー、主キー、外部キー制約(参照整合性制約)、チェック制約
索引
ビュー
常駐型プログラム・ユニット・・・パッケージ・プロシージャ・ファンクション、データベース・トリガー、Javaソース
データのロード・・・SQL*Loader、Enterprise Managerのメンテナンス
◎Oracleのリカバリ機能
RMAN
インスタンス・リカバリ
データ・ファイル・メディア・リカバリ
フラッシュバック
一貫性バックアップ、非一貫性バックアップ
完全リカバリ、Point-in-time(不完全)リカバリ
メディア・リカバリ
フラッシュ・バック・リカバリ領域のサイズ・・・データ・ファイル領域×2 + REDOログ7領域 + 増分バックアップ領域
バックアップのタイプ・・・データ・ファイル全体のバックアップ、データファイルの増分バックアップ、データベース全体のバックアップ
バックアップ・ファイルのタイプ・・・イメージ・コピー、バックアップ・セット(全体バックアップ・増分バックアップ)
バックアップ設定の構成・・・ディスク設定、ポリシー設定
データベース全体のバックアップ・・・ARCHIVELOGモード
推奨バックアップ計画
バックアップの管理・・・現行バックアップの管理ページの使用、バックアップ・メンテナンス・タスクの実行(クロスチェック・期限切れ/不要バックアップの削除・追加バックアップのカタログ化)、データベース全体のリストアおよびリカバリ
フラッシュバック・テーブル・・・表における行移動の有効化、表のフラッシュバックの実行、フラッシュバック・ドロップの使用による表のリカバリ
◎データベースの監視とアドバイザの使用
・パフォーマンス分析の表示と結果への対応・・・デフォルト、アドバイザの使用、SQLチューニング・アドバイザ、SQLアクセス・アドバイザ、メモリー・アドバイザ
・一般的なデータベースの状態およびワークロードの監視・パフォーマンスの監視・アラートの使用
・しきい値・メールによる通知
Oracle Database 23ai: 主要機能
1. DML (Data Manipulation Language)
データの追加、変更、削除を行うためのSQL文です。
- INSERT (データの挿入)
- Oracle 23aiでの拡張: 従来の1行ずつの挿入に加え、
VALUES
句で複数行を一度に挿入できるようになりました。 - 実装例:
INSERT INTO employees (employee_id, first_name, last_name, email) VALUES
(101, ‘John’, ‘Doe’, ‘john.doe@example.com’),
(102, ‘Jane’, ‘Smith’, ‘jane.smith@example.com’),
(103, ‘Peter’, ‘Jones’, ‘peter.jones@example.com’);
“`
- Oracle 23aiでの拡張: 従来の1行ずつの挿入に加え、
- UPDATE (データの更新)
- Oracle 23aiでの拡張:
FROM
句を使用して、他のテーブルとの結合に基づいて更新できるようになりました。 - 実装例:
UPDATE employees e
SET e.salary = e.salary * 1.10
FROM departments d
WHERE d.department_id = e.department_id
AND d.department_name = ‘IT’;
- Oracle 23aiでの拡張:
- DELETE (データの削除)
- Oracle 23aiでの拡張:
FROM
句を使用して、他のテーブルとの結合に基づいて削除できるようになりました。 - 実装例:
— Oracle 23aiでの直接JOINによるDELETE
DELETE FROM employees e
FROM departments d
WHERE d.department_id = e.department_id
AND d.department_name = ‘HR’;
“`
- Oracle 23aiでの拡張:
- MERGE (結合と更新/挿入)
- 機能: ソーステーブルのデータに基づいて、ターゲットテーブルの行を挿入または更新します。
2. DDL (Data Definition Language)
データベースオブジェクトの作成、変更、削除を行うためのSQL文です。
- CREATE (オブジェクトの作成)
- Oracle 23aiでの拡張:
IF NOT EXISTS
句を使用できるようになり、オブジェクトが存在しない場合にのみ作成する条件付きDDLが可能になりました。
— Oracle 23aiでのCREATE IF NOT EXISTS
CREATE TABLE IF NOT EXISTS my_table (id NUMBER, name VARCHAR2(100));
— (my_tableが存在しない場合のみ作成される)
“`
- Oracle 23aiでの拡張:
- ALTER (オブジェクトの変更)
“` - DROP (オブジェクトの削除)
- Oracle 23aiでの拡張:
IF EXISTS
句を使用できるようになり、オブジェクトが存在する場合にのみ削除する条件付きDDLが可能になりました。 - 実装例:
— Oracle 23aiでのDROP IF EXISTS
DROP TABLE IF EXISTS my_table;
— (my_tableが存在する場合のみ削除される)
“`
- Oracle 23aiでの拡張:
3. SELECT
データベースからデータを取得するためのSQL文です。
- 基本的なSELECT
- Oracle 23aiでの拡張:
FROM
句なしで、関数や式の結果を直接選択できるようになりました。 - 実装例:
— Oracle 23aiでのFROM句なしSELECT
SELECT SYSDATE;
SELECT 1 + 1;
- Oracle 23aiでの拡張:
4. ソート (ORDER BY)
クエリ結果を指定した列の順序で並べ替えます。
5. 単一行関数 (Single-Row Functions)
各行に対して1つの結果を返す関数です。
- 機能: 数値、文字、日付などの操作を行います。
6. GROUP BY
指定した列の値に基づいて行をグループ化し、集計関数を適用します。
- 機能:
COUNT
,SUM
,AVG
,MAX
,MIN
などの集計関数と組み合わせて使用します。 - Oracle 23aiでの拡張:
SELECT
リストで定義した列の別名をGROUP BY
句で使用できるようになりました。 - 実装例:
— Oracle 23aiでのGROUP BY (列別名を使用)
SELECT department_id AS dept_id, COUNT(employee_id) AS num_employees
FROM employees
GROUP BY dept_id; — dept_id 別名を使用
“`
7. 結合 (Joins)
複数のテーブルから関連するデータを結合して取得します。
- Oracle 23aiでの拡張:
UPDATE
文とDELETE
文で直接JOIN
句を使用できるようになりました(上記DMLのセクション参照)。
8. 副問い合わせ (Subqueries)
別のSQL文の内側にネストされたクエリです。
- 機能: 外部クエリの条件として使用したり、データソースとして使用したりします。
9. 集合演算 (Set Operations)
複数のSELECT
文の結果を結合または比較します。
- 機能:
UNION
,UNION ALL
,INTERSECT
,MINUS
があります。
10. スキーマオブジェクト (Schema Objects)
データベース内に存在する論理的な構造です。
- 主要なスキーマオブジェクト:
- TABLES (表): データを格納する基本的なオブジェクト。
- VIEWS (ビュー): 1つ以上のテーブルから派生した仮想テーブル。
- INDEXES (索引): データ検索のパフォーマンスを向上させるための構造。
- SEQUENCES (シーケンス): 一意の数値を生成するオブジェクト(主キーの自動生成などに使用)。
- SYNONYMS (シノニム): オブジェクトの代替名。
- PROCEDURES / FUNCTIONS / PACKAGES / TRIGGERS (プロシージャ/ファンクション/パッケージ/トリガー): PL/SQLで記述されたプログラム単位。
- Oracle 23aiでの新しいスキーマオブジェクト (JSON機能関連):
- JSON Relational Duality Views (JSONリレーショナル二面性ビュー): リレーショナルデータとJSONドキュメントの両方としてアクセスできる新しいタイプのビュー。リレーショナルモデルの効率性とドキュメントAPIの使いやすさを組み合わせます。
11. データディクショナリの機能・実装例 (Data Dictionary Functions/Implementation Examples)
Oracleデータベースのメタデータ(データベースオブジェクトに関する情報)を格納する一連のシステムテーブルとビューです。
- 機能: データベースの構造、ユーザー、権限、オブジェクトの定義などを確認できます。
- Oracle 23aiでの拡張: オブジェクトにメタデータを追加できる「アノテーション (Annotations)」が導入され、データディクショナリビュー (
USER_ANNOTATIONS
,ALL_ANNOTATIONS
,DBA_ANNOTATIONS
) で確認できます。 - 実装例:
— Oracle 23aiでのアノテーションの例
— テーブルにアノテーションを追加
ALTER TABLE employees ADD ANNOTATION ‘This table stores employee information including personal details and salary.’; — アノテーションの確認
SELECT object_name, annotation_text
FROM user_annotations
WHERE object_name = ‘EMPLOYEES’; - ・・
Oracle 23aiは、開発者向けのSQL機能の強化、JSONデータ処理能力の向上、そしてAI機能の統合に力を入れています。
※下記調査中
Oracle Database 23aiの主なAI機能
・AI Vector Search (AIベクトル検索)
・SQL ML (SQL Machine Learning)
下記より、各項目についてご確認・ダウンロードいただけます。