Oracle Database メモ

最近Oracle Database に触れる機会が増えているので、学んだことをメモしていく。

概要

version

現在のLTSは 19cで、21cもイノベーション・リリースとして本番でも使えるレベルのリリースとして提供されている模様。
12cの次は18cに飛んでたりする、その辺りからバージョンを20xx年に合わせているぽい。

リリースの考え方は下記ブログがわかりやすい Oracle Database 19cとは何か? どういう位置づけのリリースなのか? | コーソルDatabaseエンジニアのBlog

エディション

EE とか XE 見かけてたけど、よく分かってなかったので調べてみた。

公式ドキュメント Oracle Databaseのエディション によると、

Enterprise Edition: EE
Standard Edition: SE
Express Edition: XE
Personal Edition: PE

などがあるとのこと。
SEは SEとSE1 と SE2 があるが、最新はSE2になっていくので過去のものはあまり気にしなくて良さそう。
また、XEも過去の11gとかしか使えないので、過去バージョンで許容できれば学習用に使う、という感じっぽい。

現状、本番で使うなら EE or SE2 で、違いは Oracle Databaseライセンスの定義とルールを正しく理解する ~第1回:エディション編~ | アシスト の連載を見るとなんとなくわかる。

資料

公式のマニュアルが結構充実している。

「概要マニュアル」を読んでいくと良さそう。 Oracle Databaseデータベース概要, 19c

追加で、

Oracle Database 2日でデータベース管理者 19cOracle Database 2日で開発者ガイド, 19c に進むと良さそう

また、 Oracle Japan のブログ の連載も良さそう。

https://blogs.oracle.com/otnjp/post/shibacho-index

とか

https://blogs.oracle.com/otnjp/post/tsushima-hakushi-index の連載を追っていきたい

M1 Mac のローカルで実行する方法

Running x86_64 Docker Images on Mac M1 Max (Oracle Database 19c) - DBASolved

この辺を参考に。
aarch64用のdocker image が用意されていないため、 M1 Macamd64 の docker image を実行できるように colima を導入する必要がある。

基本コマンド

sqlplus で DBに接続

sqlplus <ID>/<パスワード>@<IP or ホスト名>:<ポート番号>/<SID>

例)

sqlplus system/password@localhost:1521/ORCLCDB
sqlplus system/password@localhost:1521/ORCLPDB1

SQL*Plusコマンド一覧

接続中のコンテナの確認

show con_name;

CON_NAME
------------------------------
ORCLPDB1

表領域

表領域の確認

select * from dba_tablespaces;

表領域を構成する データ・ファイルの確認

select * from dba_data_files;

テーブル情報の確認

select * from user_tables where table_name = テーブル名;
desc テーブル名

データ・ディクショナリ

データ・ディクショナリと動的パフォーマンス・ビュー

データベースに関する情報はデータ・ディクショナリという形で提供され、実表とビューがある。

DICT_COLUMNSを利用するとどんなカラムがあるか確認できる

例 )

select * from DICT_COLUMNS where TABLE_NAME='USER_TABLES';