Oracle のインストール
なんか意外な感じがしますが、Oracle って評価版がちゃんとあるんですよね。
評価版ダウンロード:Oracle Database ソフトウェア・ダウンロード
どの範囲まで利用していいのかですが、以下のように明記されています。
お客様のアプリケーションの開発、テスト、プロトタイプ作成、及びデモンストレーションのみを目的として(かつ、お客様のアプリケーションが、データ処理、業務、商用又は本番利用を目的として使用されたことがない場合に限られます)、その他のいかなる目的でもなく、本プログラムを内部的に使用するための、非独占的、譲渡不能の限定的なライセンスを許諾します。
つまるところ Oracle Database の評価版って自社内や個人での開発や検証は認められているんです。これもなんか意外。
インストール手順
インストール手順を記載しますが、これはあくまで「勉強用の環境」です。インストールユーザも分けませんし、「動けばよかろうなのだ!!」というスタンスです。
① ダウンロードサイトから取得した Oracle Database 12c Release2 の ZIP を解凍すると以下のようになっています。
② 電子メールもアップデートもいりません。下図のようにしてください。
③ 電子メールが設定されていない場合必ず警告が表示されるので「はい」をクリックしてください。
④ 「データベースの作成および構成」を選択してください。
⑤ 「デスクトップ・クラス」を選択してください。
⑥ 「Windows組込みアカウントの使用」を選択してください。
⑦ セキュリティ警告が表示されますが「はい」をクリックしてください。
⑧ 下図のように設定してください。ここで設定するパスワードはデータベース作成時に自動的に作成される管理者ユーザのパスワードになります。
⑨ 前提条件がチェックされます。すぐ終わります。
⑩ サマリが表示されるので「インストール」をクリックしてください。
⑪ インストールは結構時間がかかります(30分~1時間程度)。
⑫ インストール完了後は以下のように「OracleServiceSID」というサービスが自動的に作成され、起動しています。
SQL *Plus の起動と接続
Windows の場合、Oracle インストール完了時点でデータベースは起動しています。
また、CUI ベースの管理ツールである「SQL *Plus」と GUI ベースの管理ツールである「SQL Developer」も Oracle インストール時に一緒にインストールされています。
ここでは SQL *Plus への接続方法を紹介します。
基本的には、以下のように「sqlplus /nolog」コマンドで SQL *Plus を起動してから「connect」コマンドを利用してログインします。
C:\Users\Administrator> sqlplus /nolog
SQL*Plus: Release 12.2.0.1.0 Production on 日 9月 8 21:07:34 2019
Copyright (c) 1982, 2016, Oracle. All rights reserved.
SQL> connect system/oraPassw0rd
接続されました。
SQL>
以下のように初手からログインすることも可能ですが、コマンドプロンプトにパスワードが記憶されてしまうということになりますので、セキュリティ上避けている DB 運用者が多いようです。
C:\Users\Administrator> sqlplus system/oraPassw0rd
SQL*Plus: Release 12.2.0.1.0 Production on 日 9月 8 21:05:01 2019
Copyright (c) 1982, 2016, Oracle. All rights reserved.
最終正常ログイン時間: 日 9月 08 2019 20:51:46 +09:00
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 – 64bit Production
に接続されました。
SQL>
もしくは「sqlplus /nolog」ではなく「sqlplus ユーザ名」だけで実行する方法もあります。そうするとパスワードは SQL *Plus の中で入力することになるので、セキュリティ上の不都合は無くなります。
C:\Users\Administrator> sqlplus system
SQL*Plus: Release 12.2.0.1.0 Production on 日 9月 8 21:22:10 2019
Copyright (c) 1982, 2016, Oracle. All rights reserved.
パスワードを入力してください:
最終正常ログイン時間: 日 9月 08 2019 21:07:41 +09:00
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 – 64bit Production
に接続されました。
SQL>
「sqlplus ユーザ名」を利用する方法では、後述する “as sysdba” オプションを追加できないので、SYSDBA権限を持ったユーザでログインすることができません。結局のところ「sqlplus /nolog」を使うことになるかもしれませんね。
データベースの起動と停止
実は、先ほどの SYSTEM ユーザにはデータベースを起動/停止する権限(SYSDBA権限)がありません。既定で SYSDBA権限を持っているのは SYS ユーザのみです。
SYS ユーザで connect するには、以下のように「as sysdba」を追記しなければなりません。
SQL> connect sys/oraPassw0rd as sysdba
接続されました。
SQL>
as sysdba をつけなかった場合、以下のように SYS ユーザでログインすることはできません。
SQL> connect sys/oraPassw0rd
ERROR:
ORA-28009: SYSでの接続はSYSDBAまたはSYSOPERで行う必要があります
SQL>
また、Oracle をインストールした OS ユーザで SQL *Plus を実行する場合は、ユーザ名 SYS とパスワードを省略できます。これは OS 認証と呼ばれます。
C:\Users\Administrator>sqlplus / as sysdba
SQL*Plus: Release 12.2.0.1.0 Production on 日 9月 8 21:27:09 2019
Copyright (c) 1982, 2016, Oracle. All rights reserved.
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 – 64bit Production
に接続されました。
SQL>
データベースの停止
データベースは既に起動しているので、停止手順からご紹介します。
データベースを停止するには SQL *Plus からデータベースに SYS ユーザで接続し、SHUTDOWN コマンドを実行します。SHUTDOWN コマンドには以下の3つのオプションがあります。
オプション | 説明 | すでに確立されている接続の扱い | 実行中の SQL の扱い |
NORMAL | 接続がすべて切断されるまで待機し、停止処理を行う。オプション未指定時のデフォルト | ユーザが接続を切断するまで待機する | なにもしない |
IMMEDIATE | 実行していた処理を取り消したうえで、停止処理を行う | 切断される | 取り消す |
ABORT | 実行中の処理に対する取り消し処理を実行せず、強制的に停止する | 切断される | 強制停止(取り消し処理を実行しない) |
SHUTDOWN NORMAL だといつまでもデータベースがシャットダウンできないという事態になりかねないため、一般的には IMMEDIATE オプションを指定します。ABORT オプションを指定する時はよっぽどの時です。普通は使用しません。
SQL> shutdown immediate
データベースがクローズされました。
データベースがディスマウントされました。
ORACLEインスタンスがシャットダウンされました。
SQL>
Windows 版 Oracle はサービスにデータベースが含まれる構造になっているので、サービスを停止するとデータベースも停止されます。この停止はデフォルトで IMMEDIATE オプションと同じ動作です。なお、Linux/UNIX 版 Oracle にはサービスに相当する概念はありません。
データベースの起動
オプション | 説明 | 接続できるユーザ |
NOMOUNT | データベースの常駐部分(インスタンス)が起動する。
初期化パラメータファイルが読み込まれるが、制御ファイル、データファイル、オンラインREDOログファイルはまだ読み込まれていない。 |
SYSユーザのみ ※ |
MOUNT | NOMOUNTに加えて制御ファイルが読み込まれる。 | SYSユーザのみ ※ |
OPEN | 制御ファイルに加えて、データファイル、オンラインREDOログファイルが読み込まれ、データベースに格納されたデータの参考/更新ができるようになる。オプション未指定時のデフォルト | すべてのユーザ |
※厳密には「SYSDBA権限」「SYSOPER権限」「SYSBACKUP権限」「SYSDG権限」「SYSKM権限」を持つユーザが接続可能
SHUTDOWN とは異なり、STARTUP は通常オプションは指定しません。
SQL> startup
ORACLEインスタンスが起動しました。
Total System Global Area 1728053248 bytes
Fixed Size 8747704 bytes
Variable Size 1107297608 bytes
Database Buffers 603979776 bytes
Redo Buffers 8028160 bytes
データベースがマウントされました。
データベースがオープンされました。
SQL>
Windows 版 Oracle は、サービスが起動すると自動的にデータベースが起動するため、STARTUP コマンドでデータベースを起動する状況はほとんどありません。また、Windows 環境においてサービスが起動していない状態で SYS ユーザでデータベースに接続しようとするとエラーが発生して接続に失敗します。まずサービスを起動してからデータベースを起動してください。
テストユーザの作成
SYS や SYSTEM といったユーザは力が強すぎます。そのため通常運用では使用しないのが一般的な運用方法です。
勉強用の環境なのでやらかしても問題ないとうこともあり、SYS や SYSTEM ユーザで作業したい気持ちがありますが、それに慣れてしまわないためにもユーザを使い分けておきましょう。というわけで勉強用のユーザを作成します。
SQL> connect system/oraPassw0rd
接続されました。
SQL> CREATE USER test IDENTIFIED BY testPassw0rd;
ユーザーが作成されました。
SQL> GRANT CREATE SESSION TO test;
権限付与が成功しました。
SQL> GRANT RESOURCE TO test;
権限付与が成功しました。
SQL> GRANT UNLIMITED TABLESPACE TO test;
権限付与が成功しました。
SQL> CONNECT test/testPassw0rd
接続されました。
付与した権限は以下のとおりです。
ロール / 権限 | 説明 |
RESOURCE ロール | テーブルなどのオブジェクトの作成を可能とする権限のセット |
CREATE SESSION 権限 | データベースへの接続を許可するシステム権限。この権限が無いとデータベースに接続できない。 |
UNLIMITED TABLESPACE 権限 | 無制限に領域を使用できる権限。 |
あとはテストユーザで遊ぶだけです。