WinにVirtualBoxでOracle DB 環境構築! Solaris に Oracle Database を インストールする


Windows のクライアントツールから Oracle DB 接続する設定をしていきます。

VirtualBox ネットワーク設定

solaris-oracle-20171028-02
仮想マシンを選択し、設定>ネットワーク 画面を開きます。「高度」をクリックして詳細設定を表示し「ポートフォワーディング」ボタンをクリックします。
solaris-oracle-20171028-03
Oracle Universal Installer (OUI) で データベースを作成しましたが、特にポート番号を指定していないのでデフォルトの「1521」になっています。Solaris への接続で ポート「1521」を指定すれば Oracle DB に接続できます。
ポートフォワーディング で ゲストポートを「1521」に設定します。ホストポート( Windows側のポート)は他のネットワークと重ならなければ何でもいいのですが今回は「1521」にしました。
これで Windows に ポート「1521」で接続すれば、Solars の ポート「1521」に転送してくれます。逆の流れもうまい具合にポート変換してくれます。これで Windows から Oracle DB への接続設定ができました。

Oracle リスナー起動

Soralis で ポート「1521」での接続を監視し Oracle DB へ繋ぐ役割のリスナーを起動します。Oracle Universal Installer (OUI) で Oracle DB インストールやデータエース作成をすれば、自動でリスナー設定されています。あとは起動するだけになります。

root@Solaris:~# su - oracle
Oracle Corporation    SunOS 5.11    11.3    September 2015

Solaris のターミナルを起動し、oracle に シェルのユーザを切り替えます。

oracle@Solaris:/$ lsnrctl
LSNRCTL for Solaris: Version 12.1.0.2.0 - Production on 28-OCT-2017 17:30:24
Copyright (c) 1991, 2014, Oracle.  All rights reserved.
Welcome to LSNRCTL, type "help" for information.
LSNRCTL> 

lsnrctl コマンドで Oracle リスナーコントローラを立ち上げます。

oracle@Solaris:/$ LSNRCTL> start
Starting /oracle/app/oracle/product/12.1.0/dbhome_1/bin/tnslsnr: please wait...

TNSLSNR for Solaris: Version 12.1.0.2.0 - Production
System parameter file is /oracle/app/oracle/product/12.1.0/dbhome_1/network/admin/listener.ora
Log messages written to /oracle/app/oracle/diag/tnslsnr/Solaris/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=Solaris)(PORT=1521)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Solaris: Version 12.1.0.2.0 - Production
Start Date                28-OCT-2017 17:30:28
Uptime                    0 days 0 hr. 0 min. 0 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /oracle/app/oracle/product/12.1.0/dbhome_1/network/admin/listener.ora
Listener Log File         /oracle/app/oracle/diag/tnslsnr/Solaris/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=Solaris)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
The listener supports no services
The command completed successfully
LSNRCTL> 

start コマンドでリスナーを起動します。紐づいている Oracle DB情報やポート情報などが表示されながら起動しています。最後に successfully が表示されたらリスナー起動成功です。

LSNRCTL> exit
oracle@Solaris:/$ 

リスナーコントローラを閉じます。

Oracle DB 接続 と ユーザ作成

まだ自動起動設定していないので、Solarisを起動することに接続処理が必要になります。
また、外部接続用のユーザ「developer」を作成します。

oracle@Solaris:/$ sqlplus /nolog
SQL*Plus: Release 12.1.0.2.0 Production on Sat Oct 28 15:11:59 2017
Copyright (c) 1982, 2014, Oracle.  All rights reserved.
SQL>

SQLに接続しました。

SQL> conn / as sysdba
Connected.
SQL> 

OS認証接続をします。

SQL> startup
ORACLE instance started.

Total System Global Area 1577058304 bytes
Fixed Size		    3004088 bytes
Variable Size		  503318856 bytes
Database Buffers	 1056964608 bytes
Redo Buffers		   13770752 bytes
Database mounted.
Database opened.
SQL>

データベース(インスタンス)を起動しました。

SQL> CREATE USER developer IDENTIFIED BY pass1234 ACCOUNT UNLOCK ;
User created.
SQL> 

ユーザ名「developer」、パスワード「pass123」のユーザを作成しました。

SQL> GRANT DBA TO developer;
Grant succeeded.
SQL>

Oracle Database管理者(DBA)と同様の権限をユーザ「developer」に与えました。

Windwos上の Oracle クライアントで接続確認

今回は接続確認に「Oracle SQL Developer」を使いました。

solaris-oracle-20171028-04

■ 接続名:任意の名前
■ ユーザ名:developer
■ パスワード:pass1234
■ ホスト名:localhost
■ ポート:1521
■ SID:orcl

ホスト名は localhost です。つまり ホストOS (Windows自身)に接続します。ホストOSのポート1521 に接続すると、ポートフォワーディング機能により ゲストOS の Oracle DB に接続転送されます。これで Oracle DB へ繋ぐことができます。

solaris-oracle-20171028-05
無事接続できたことが確認できました。

終了処理

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> 

オプションに immediate をつけると クライアントが接続中でも強制終了します。immediate がなければ処理が終わるのを待ちます。

SQL> exit
Disconnected from Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
oracle@Solaris:/$ 

ターミナルからのOracle接続を抜けます。

oracle@Solaris:/$ lsnrctl stop
LSNRCTL for Solaris: Version 12.1.0.2.0 - Production on 28-OCT-2017 18:47:55
Copyright (c) 1991, 2014, Oracle.  All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))
The command completed successfully
oracle@Solaris:/$ 

Oracle リスナーを停止します。
あとは、Solaris をシャットダウンして終了処理完了です。

まとめ

Oracle DBの機能からみたら最小限の構成ですが、SQLの勉強をするだけなら十分な環境だと思います。
あとは Solaris起動時の自動起動と Solarisシャットダウン時の自動切断の設定をしないと、毎回リスナーとOracle DBの起動・切断をコマンドで叩くのは結構面倒です。また自動設定については別記事でまとめてみたいと思います。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です