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だったときは
1 | <div class="linkcard"><div class="lkc-external-wrap"><div class="lkc-unlink"><div class="lkc-card"><div class="lkc-info"><div class="lkc-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=192.168.1.23" alt="" width="16" height="16"></div><div class="lkc-domain">192.168.1.23</div></div><div class="lkc-content"><figure class="lkc-thumbnail"><img decoding="async" class="lkc-thumbnail-img" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2F192.168.1.23%3A5500%2Fem?w=100" width="100px" height="" alt=""></figure><div class="lkc-title">https://192.168.1.23:5500/em</div><div class="lkc-url" title="https://192.168.1.23:5500/em"><strike>https://192.168.1.23:5500/em</strike></div></div><div class="clear"></div></div></div></div></div> |
となります。

エラーが出ますが、現在のSSLの形式とあっていないためのようです。
これはGoogle Chromeの画面ですが、詳細設定ボタンから、安全でない事を承知で開くリンクがありますので、そこから開きます。

接続できました。
ネットワークからOracleを使う
「Oracle Database をインストールしてみた」の記事中では、Oracle Linux上にデータベースをインストールしました。
これを、同じLAN上のWindows 10マシンから使用してみます。
Oracle Database clientの取得
Windows10からネットワーク上のoracleを使用するには、オラクルのサイトからOracle Database client ファイルを取得します。
oracleからダウンロードされるのは、サーバーやLinuxのisoと同様、exeファイルなので、それを実行し、ダウンロード場所をきめてファイルを取得します。
zipファイルが取得できたら展開しますが、フォルダが深いようで、エラーが出る場合があります。
その場合は、zipファイルをCドライブやDドライブの直下など、浅い場所だと問題なく解凍できるようです。
Oracle Database clientのインストール
解凍が終わったら、clientというフォルダが出来ているので、その中にあるsetup.exeを実行します。
Windowsのコマンドプロンプトには次のコマンドをいれました。
1 2 3 | sqlplus /nolog CONNECT HR/HR@oracledb:1521/orcl |
Oracle Databaseサーバーを停止する
Oracle の動いているLinuxサーバーを停止させるには、事前にOracleデータベースを停止します。
同時にリスナーも停止します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | $ 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を起動させます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | $ 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 $ |
リスナーが動いているか確認します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | $ 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 |
パラメーター値も確認しておきます
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | 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 があるはずなので、クリックして起動します。
環境変数の設定
Oracle Database clientをインストールしたフォルダ+network\admin に出来ない場合は、環境変数がうまく設定されていないかもしれません。

環境変数で、ユーザー環境変数に、TNS_ADMINという変数名で、Oracle Database clientをインストールしたフォルダ+network\admin を設定します。
tnsnames.ora の内容
入力内容で作成されたテキストファイルになっています。
1 2 3 4 5 6 7 8 9 10 11 12 | # 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で、データを呼び出す事ができました。