Oracle Database を使ってみた
目次
Oracle Databaseの稼働
以前の「Oracle Database をインストールしてみた」の記事では、インストールする工程を紹介しました。
今回は、インストールの完了したデータベースをを実際に使用してみる事にします。
Oracle Enterprise Manager Database Express
WEBブラウザから Oracle Database を管理できるツールです。
https:// [インストールしたサーバー名かipアドレス]:[ポート]/em で接続します。
Oracle Database をインストールしてみた」の記事中では、
で5500を指定したので、ポートは5500です。
サーバーのアドレスが192.168.1.23だったときは
192.168.1.23https://192.168.1.23:5500/emhttps://192.168.1.23:5500/em
となります。
エラーが出ますが、現在のSSLの形式とあっていないためのようです。
これはGoogle Chromeの画面ですが、詳細設定ボタンから、安全でない事を承知で開くリンクがありますので、そこから開きます。
接続できました。
ネットワークからOracleを使う
「Oracle Database をインストールしてみた」の記事中では、Oracle Linux上にデータベースをインストールしました。
これを、同じLAN上のWindows 10マシンから使用してみます。
Oracle Database clientの取得
Windows10からネットワーク上のoracleを使用するには、オラクルのサイトからOracle Database client ファイルを取得します。
Oracle Database client 19cのワードで検索します。
Windows10にあわせ、64bitを選択します。
oracleからダウンロードされるのは、サーバーやLinuxのisoと同様、exeファイルなので、それを実行し、ダウンロード場所をきめてファイルを取得します。
zipファイルが取得できたら展開しますが、フォルダが深いようで、エラーが出る場合があります。
その場合は、zipファイルをCドライブやDドライブの直下など、浅い場所だと問題なく解凍できるようです。
Oracle Database clientのインストール
解凍が終わったら、clientというフォルダが出来ているので、その中にあるsetup.exeを実行します。
exeファイルを実行します。
管理者を選択します。
Windowsは既にユーザーがいるはずなので、それを使用します。
インストール位置です。デフォルトで問題ないでしょう
サマリが表示されます
インストールが開始されます。
成功しましたと表示されたら完了です、
Windowsのコマンドプロンプトから接続できました。
A5M2でも問題無く接続できました。
Windowsのコマンドプロンプトには次のコマンドをいれました。
sqlplus /nolog
CONNECT HR/HR@oracledb:1521/orcl
Oracle Databaseサーバーを停止する
Oracle の動いているLinuxサーバーを停止させるには、事前にOracleデータベースを停止します。
同時にリスナーも停止します。
$ sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Tue Apr 20 15:36:13 2021
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle. All rights reserved.
Connected to an idle instance.
SQL>SHUTDOWN NORMAL
$ lsnrctl stop
LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 27-APR-2021 14:58:50
Copyright (c) 1991, 2019, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracledb)(PORT=1521)))
The command completed successfully
Oracle Databaseサーバーを起動する
一度、停止させたので、Oracle Databaseを起動させます。
$ sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Tue Apr 20 15:36:13 2021
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle. All rights reserved.
Connected to an idle instance.
SQL>STARTUP
ORACLE instance started.
Total System Global Area 2415917880 bytes
Fixed Size 8899384 bytes
Variable Size 520093696 bytes
Database Buffers 1879048192 bytes
Redo Buffers 7876608 bytes
Database mounted.
Database opened.
SQL> quit
Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
$
リスナーが動いているか確認します。
$ lsnrctl
LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 20-APR-2021 16:03:16
Copyright (c) 1991, 2019, Oracle. All rights reserved.
Welcome to LSNRCTL, type "help" for information.
LSNRCTL> service
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
TNS-12541: TNS:no listener
TNS-12560: TNS:protocol adapter error
TNS-00511: No listener
Linux Error: 111: Connection refused
※起動していないので、起動します。
LSNRCTL>start
LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 20-APR-2021 18:40:50
Copyright (c) 1991, 2019, Oracle. All rights reserved.
Starting /u01/app/oracle/product/19.3.0/dbhome_1/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Log messages written to /u01/app/oracle/diag/tnslsnr/oracledb/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracledb)(PORT=1521)))
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date 20-APR-2021 18:40:52
Uptime 0 days 0 hr. 0 min. 2 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Log File /u01/app/oracle/diag/tnslsnr/oracledb/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracledb)(PORT=1521)))
The listener supports no services
The command completed successfully
LSNRCTL> status
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date 20-APR-2021 18:40:52
Uptime 0 days 0 hr. 0 min. 8 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Log File /u01/app/oracle/diag/tnslsnr/oracledb/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracledb)(PORT=1521)))
The listener supports no services
The command completed successfully
LSNRCTL> quit
パラメーター値も確認しておきます
SQL> show parameter dispatchers
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
dispatchers string (PROTOCOL=TCP) (SERVICE=orclXD
B)
max_dispatchers integer
SQL>show parameter shared_servers
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
max_shared_servers integer
shared_servers integer 1
SQL> SELECT DBMS_XDB_CONFIG.GETHTTPSPORT FROM DUAL;
GETHTTPSPORT
------------
5500
これで、Windowsマシンから、sqlplus や A5M2で再度接続できました。
ODBCで接続する
ODBCでOracleに接続し、Excelなどにデータを取り込むには、ドライバーとDSNの設定が必要です。
MySQLのように、ODBCドライバをダウンロードしてくる必要がある場合もありますが、今回は、Oracle Database clientをインストールしているため、ドライバはそれが表示されています。
ユーザーDSNタグを選択し、追加ボタンを押すと、ドライバの選択画面になります。
インストールしたOracle Database clientの名前を選択し、完了ボタンをクリックします。
すると、接続するデータベースの情報を入力する画面になるのですが、MySQLやPostgreSQLのDSN設定画面と違い、サーバー名やユーザー名を入力するフィールドが無い事が判ります。
これは、OracleのODBSに、TNSサービス名が必要なためです。
作成には、OracleのNet Managerを使用します。
TNSサービス名の作成
Windows10のスタートボタンから、インストールしたOracle Database clientを探します。
プログラムのなかに、Net Manager があるはずなので、クリックして起動します。
Net Managerが立ち上がりました。
+ボタンで作成し、名前としてORACLE19Cを与えます。
プロトコルはデフォルトのTCP/IPのままです
ホスト名は、Oracleデータベースが稼働中のLinuxのホスト名を指定します
サーバーでデータベース作成に決めたサービス名を入力します
完了しました。テストを押下してみます。
接続に成功しました。
出来上がったサービス名を保存します
Oracle Database clientをインストールしたフォルダ+network\admin にファイルができています。
環境変数の設定
Oracle Database clientをインストールしたフォルダ+network\admin に出来ない場合は、環境変数がうまく設定されていないかもしれません。
環境変数で、ユーザー環境変数に、TNS_ADMINという変数名で、Oracle Database clientをインストールしたフォルダ+network\admin を設定します。
tnsnames.ora の内容
入力内容で作成されたテキストファイルになっています。
# tnsnames.ora Network Configuration File: C:\app\client\kazuhiro\product\19.0.0\client_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
ORACLE19C =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracledb)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
改めて、TNSサービス名に先ほど決めたサービス名を設定します。
データーソース名は判りやすいものを適当に入力します。
接続テストを押せば、Oracleデータベースサーバーに接続しているはずです。
Excelにサンプルスキーマーを呼び出してみる
ExcelからODBCでOracleを指定し、データを呼び出してみます。
作成したODBCで、データを呼び出す事ができました。