1.

Oracle Database 入門 — バージョン体系 / アーキテクチャ / 無料版まで

編集
この記事の要点
  • Oracle Database は商用 RDBMS の代名詞。エンタープライズ用途で長年トップシェア
  • 主要バージョン: 12c / 19c / 21c / 23c(c は Cloud、Long Term Support は 19c / 23c)
  • エディション: Enterprise Edition (EE) / Standard Edition 2 (SE2) / 無料の Oracle Database 23c Free / Express Edition (XE)
  • 独自手続き型言語 PL/SQL、CLI SQL*Plus、GUI SQL Developer
  • メモリ構造: SGA(共有プール / バッファキャッシュ)+ PGA(プロセス専用)
  • 高可用構成: RAC(クラスタ)/ Data Guard(DR)/ Oracle Cloud Infrastructure

Oracle Database とは

Oracle Database は Oracle Corporation が開発する商用リレーショナルデータベース管理システム (RDBMS) です。1979 年に世界初の商用 SQL データベースとしてリリースされて以来、金融機関・通信キャリア・大手製造業などミッションクリティカル領域で圧倒的なシェアを持ちます。PostgreSQL / MySQL / SQL Server と並ぶメジャー RDBMS の中で、最も歴史が古く機能が豊富です。

主要バージョン

バージョンリリースサポート主な特徴
Oracle 12c (12.2)2013 / 2017サポート終了マルチテナント (CDB/PDB) 導入
Oracle 19c2019Long Term Support (2027 まで)事実上の業界標準。最も導入実績多い
Oracle 21c2021Innovation ReleaseBlockchain Table、JSON 型ネイティブ
Oracle 23c (23ai)2023-2024Long Term SupportAI Vector Search、JSON-Relational Duality、無料版あり

c = Cloud の意味で、12c から導入されました。23c は 2024 年に「23ai」とリブランドされ、AI ベクトル検索機能が標準搭載されています。

エディション比較

エディション用途ライセンスRACData Guard
Enterprise Edition (EE)大規模本番有償(CPU/Named User)○ (有償オプション)
Standard Edition 2 (SE2)中規模有償(廉価)制限あり×
23c Free開発・小規模本番無償××
Express Edition (XE)開発・学習無償××

Oracle Database 23c Free は 12GB のユーザーデータ・2 CPU・2GB RAM の制限内で商用利用も無償。XE の後継で、開発・テスト・小規模システムで Oracle が無料で使えます。

PL/SQL: 独自手続き型言語

SQL を拡張した手続き型言語。ストアドプロシージャ・関数・トリガー・パッケージとして DB 内に格納し実行できます。

-- 簡単な PL/SQL ブロック
DECLARE
    v_count NUMBER;
BEGIN
    SELECT COUNT(*) INTO v_count FROM employees WHERE dept_id = 10;
    IF v_count > 0 THEN
        DBMS_OUTPUT.PUT_LINE('社員数: ' || v_count);
    ELSE
        DBMS_OUTPUT.PUT_LINE('該当なし');
    END IF;
EXCEPTION
    WHEN NO_DATA_FOUND THEN
        DBMS_OUTPUT.PUT_LINE('データなし');
END;
/

-- ストアドプロシージャ
CREATE OR REPLACE PROCEDURE add_employee(
    p_name IN VARCHAR2,
    p_salary IN NUMBER
) AS
BEGIN
    INSERT INTO employees (name, salary) VALUES (p_name, p_salary);
    COMMIT;
END;
/

SQL*Plus と SQL Developer

SQL*Plus は CLI クライアント、SQL Developer は無償の GUI クライアントです。

# SQL*Plus 接続
sqlplus username/password@//host:1521/SERVICE_NAME

# EZConnect 構文
sqlplus scott/tiger@//db.example.com:1521/ORCLPDB1

# 管理者接続
sqlplus / as sysdba

# SQL*Plus 内で
SQL> SELECT instance_name, version FROM v$instance;
SQL> SHOW USER
SQL> SET LINESIZE 200
SQL> SET PAGESIZE 50
SQL> SPOOL output.log
SQL> @script.sql
SQL> EXIT

メモリ構造: SGA / PGA

領域共有/専用主な内容
SGA (System Global Area)全プロセス共有共有プール(SQL/PL/SQL キャッシュ)、DB バッファキャッシュ、REDO ログバッファ
PGA (Program Global Area)プロセス専用セッション情報、ソート領域、ハッシュ領域

テーブル空間 (Tablespace)

Oracle の物理ストレージ管理単位。データファイルとオブジェクト(表・索引)の中間層です。

-- テーブル空間作成
CREATE TABLESPACE app_data
    DATAFILE '/u01/oradata/orcl/app_data01.dbf'
    SIZE 1G AUTOEXTEND ON NEXT 100M MAXSIZE 10G;

-- ユーザーにデフォルトテーブル空間を割当
CREATE USER appuser IDENTIFIED BY password
    DEFAULT TABLESPACE app_data
    TEMPORARY TABLESPACE temp
    QUOTA UNLIMITED ON app_data;

GRANT CONNECT, RESOURCE TO appuser;

-- テーブル空間使用状況確認
SELECT tablespace_name,
       ROUND(SUM(bytes)/1024/1024) AS used_mb
FROM dba_segments
GROUP BY tablespace_name;

リスナー / SCAN

リスナー (Listener) はクライアント接続を受け付けるネットワークプロセス。デフォルト 1521 ポート。SCAN (Single Client Access Name) は RAC クラスタへの統一接続名。

# リスナー操作
lsnrctl status
lsnrctl start
lsnrctl stop
lsnrctl services

# tnsnames.ora 例
ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = db.example.com)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orclpdb1)
    )
  )

# 接続テスト
tnsping ORCL

RAC / Data Guard / Oracle Cloud

  • Oracle RAC (Real Application Clusters): 複数ノードで 1 つの DB を共有するアクティブ-アクティブクラスタ。スケールアウトと高可用性
  • Oracle Data Guard: スタンバイ DB へのレプリケーション。災害対策 (DR) の定番
  • Oracle Cloud Infrastructure (OCI): Autonomous Database、Exadata Cloud Service、DBCS など

Oracle Instant Client

SQL*Plus / OCI ドライバを含む軽量ランタイム。アプリケーションサーバーや開発 PC から Oracle に接続する際に必要。フル DB のインストール不要で数百 MB。

# Linux にインストール
sudo yum install oracle-instantclient-basic oracle-instantclient-sqlplus

# 環境変数
export ORACLE_HOME=/usr/lib/oracle/21/client64
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH

# 接続確認
sqlplus user/pass@//host:1521/service

他 RDBMS との比較

項目OraclePostgreSQLSQL ServerMySQL
ライセンス商用(無料版あり)OSS商用OSS / 商用
手続き言語PL/SQLPL/pgSQLT-SQLSQL/PSM
シーケンス○ (古くから)○ (2012+)×(AUTO_INCREMENT)
マルチテナントCDB/PDB×××
強み大規模・実績機能・規格準拠Windows 統合Web 用途・軽量

FAQ

Q: Oracle を無料で使いたい
A: Oracle Database 23c Free をダウンロード。商用利用も可。制限は 12GB データ・2 CPU・2GB RAM。

Q: 19c と 23c、どちらを選ぶべき
A: 既存システム移行は実績豊富な 19c、新規プロジェクトで AI/ベクトル検索を使うなら 23c。両方 Long Term Support 対象。

Q: SQL Developer は無料か
A: はい、完全無償。Oracle 公式サイトからダウンロードできます。Oracle 以外の DB (MySQL / PostgreSQL) にも接続可能です。

編集
Post Share
子ページ
  1. 環境構築
  2. データベースの構成
  3. SQL
  4. DBオブジェクト
  5. 表領域
  6. 管理ツール
  7. パフォーマンス関連
同階層のページ
  1. Oracle
  2. MySQL & MariaDB
  3. DB2
  4. SQLite
  5. PostgreSQL
  6. RDBMS共通