Windows Server2022 Oracle Database 21c for Microsoft Windows x64 インストール

Oracle

Oracle Database 21cのソフトウェアをWindows Server 2022にインストールし、データベースインスタンスの作成/起動/停止方法を紹介します。

Oracle 12c(12.1.0.2)バージョンからはインスタンスの種類も次の二つの構造の中から一つを選択してインストールできるように変更されました。

  • 一般データベースインスタンス(General Purpose Database Instance)
    • 1 つのデータベース インスタンスに 1 つのデータベースを持つ既存の構造
  • コンテナデータベースインスタンス(Container Database Instance)
    • 1 つのデータベース インスタンスに複数のデータベースを持つ構造
    • 1 つ以上のカスタム データベース オブジェクト (PDB Instance) を含む
    • PDB Instanceは、独立したデータベース オブジェクト
    • CDB Instanceと共有されるメタデータとリソースを使用

この文では作成するデータベースインスタンス一般データベースインスタンスを選択しました。

ソフトウェアのダウンロードとインストール環境

edeliveryサイトのダウンロードには、次のようにオラクルアカウントが必要です。 アカウントがない場合は、下段の[アカウントの作成]から始めてください

ちなみにV1017685-01.zipとWINDOWS.X64_213000_db_home.zipを比較すると、ファイル名だけが違う同じファイルです。

ソフトウェアのインストール

Optimal Flexible Architecture(OFA)はOracle ホームとしてインストールします。 OracleホームはOracleソフトウェアを含むディレクトリです。 そしてOracle Database 21cのOracleホームのデフォルト値は以下のとおりです。

<Oracle Base Directory>\product\21.3.0\dbhome_1
( C:\app\oracle\product\21.3.0\dbhome_1 )

Oracle Database 18cからはOracle Databaseソフトウェアのインストール及び構成はイメージ基盤のインストールに変更されました。 Oracle Databaseをインストールするには、新しいOracleホームを作成し、イメージファイルを新しく作成したOracleホームに配置してから、構成ウィザードを実行してOracle Database製品を登録します。

V1017685-01.zip 又はWINDOWS.X64_213000_db_home.zipの圧縮を解除してC:\app\oracle\product\21.3.0\dbhome_1に配置してからsetupファイルを実行します。

デフォルトで選択されている [単一インスタンス・データベースを作成および構成します(C)。] で、[次(N)] ボタンをクリックします。

デフォルトで選択されている [デスクトップ・クラス(D)] で、[次(N)] ボタンをクリックします。 この選択は、ORCLのデフォルトのデータベース インスタンスを生成します。

デフォルトで選択されている [仮想アカウントの使用] で、[次へ] ボタンをクリックします。

Oracleベース入力ウィンドウの値を以下のように変更すると、ソフトウェアの位置データベースファイルの位置も自動的に以下のように変更されます。 データベースのバージョンはStandard Edition2を選択しました。 [次へ] ボタンをクリックします。

パスワードは推奨される標準に従わなくてもいいが、次のように警告メッセージが表示されると、[はい]ボタンを押して無視し、次のステップに進むことができます。 この文ではパスワードにadmin1234を指定しました。

インストールコンポーネントを表示するためのスキャンを実行するのに時間がかかります。 スキャンが完了し、[次へ] ボタンがアクティブになったら、ボタンをクリックします。

インストーラーの設定情報データベース情報の要約が表示されます。 [インストール(I)] ボタンをクリックします。

重要事項)全域データベース名に orclが指定されていることを覚えておいてください。後で外部からsqlplusに接続するときにサービス名として使用されます。

プログラムのインストールの進捗状況を表示します。

インストールが完了すると、次のように成功画面が表示されます。

環境変数の確認

[Oracle Database 21cインストーラ]は、自動的に関連する環境変数を設定します。これをregedit.exeコマンドを実行して確認すると、以下のようになります。

[Windows ロゴ キーWindows Key] + [R] キーを押して “実行” ダイアログ ボックスを開き、”regedit” を入力実行して [レジストリ エディタ] 画面を表示します。

[コンピュータ\HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDB21Home1]を選択すると、右側の領域に環境変数NLS_LANG、ORACLE_HOME、ORACLE_SID、ORACLE_BASEが設定されていることが確認できます。

実行ファイルの%PATH%経路を確認する

コマンドプロンプトで環境変数%PATH%値をechoコマンドで確認すると、環境変数PATHにOracle実行ファイルパス[C:\app\oracle\product\21.3.0\dbhome_1\bin;]が指定されていることが確認できます。 これにより、Oracleコマンドが実行するパスに存在しなくてもOracleコマンドを実行することができます。

メニュー登録の確認

[Windows ロゴ キーWindows Key] をクリックして、以下のようにインストールされているソフトウェアのリストを確認できます。

データベースサービスの確認

[WindowsロゴキーWindows Key + R] -> [実行] ウィンドウ -> [services.msc] 入力後、「OK」を押して [サービス] 画面を表示します。

サービス一覧でOracle ServiceORLとOracle OraDB21Home1TNSListenerサービスが実行中であることを確認します。

Oracleユーザー認証設定の確認

以下のとおり C:\app\oracle\homes\OraDB21Home1\network\admin\sqlnet.oraファイルの内容からSQL.NET.AUTOracleHENTICATION_SERVICESにNTSが設定されていることを確認します。この設定はOracle Databaseソフトウェアのインストール時のデフォルト値です。
NTS値で定義されている場合、これはWindowsのユーザ認証情報を利用するという意味で、Oracle Instanceに対する接続可否を現在ログインされているWindowsのユーザ権限と判断するということを意味します。
この場合、現在接続中のユーザアカウントがORA_DBA グループに属している場合は、”sqlplus/as sysdba”コマンドを使用して接続することができます。

# sqlnet.ora Network Configuration File: C:\app\oracle\homes\OraDB21Home1\NETWORK\ADMIN\sqlnet.ora
# Generated by Oracle configuration tools.
# This file is actually generated by netca. But if customers choose to 
# install "Software Only", this file wont exist and without the native 
# authentication, they will not be able to connect to the database on NT.
SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

Listener状態確認

コマンドプロンプトで、以下のコマンドでOracle Listenerのステータスを確認します。

C:\Users\Administrator>lsnrctl status
LSNRCTL for 64-bit Windows: Version 21.0.0.0.0 - Production on 17-5月 -2024 17:49:54
Copyright (c) 1991, 2021, Oracle.  All rights reserved.
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))に接続中
リスナーのステータス
------------------------
別名                      LISTENER
バージョン                TNSLSNR for 64-bit Windows: Version 21.0.0.0.0 - Production
開始日                    17-5月 -2024 16:48:14
稼働時間                  0 日 1 時間 1 分 40 秒
トレース・レベル          off
セキュリティ              ON: Local OS Authentication
SNMP                      OFF
パラメータ・ファイル      C:\app\oracle\homes\OraDB21Home1\network\admin\listener.ora
ログ・ファイル            C:\app\oracle\diag\tnslsnr\localhost\listener\alert\log.xml
リスニング・エンドポイントのサマリー...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=localhost)(PORT=5500))(Security=(my_wallet_directory=C:\APP\ORACLE\admin\orcl\xdb_wallet))(Presentation=HTTP)(Session=RAW))
サービスのサマリー...
サービス"722f284aa4184882876af6e7957c34a3"には、1件のインスタンスがあります。
  インスタンス"orcl"、状態READYには、このサービスに対する2件のハンドラがあります...
サービス"CLRExtProc"には、1件のインスタンスがあります。
  インスタンス"CLRExtProc"、状態UNKNOWNには、このサービスに対する1件のハンドラがあります...
サービス"bc74b627f47a416ab26784e660b5c7b2"には、1件のインスタンスがあります。
  インスタンス"orcl"、状態READYには、このサービスに対する2件のハンドラがあります...
サービス"orcl"には、1件のインスタンスがあります。
  インスタンス"orcl"、状態READYには、このサービスに対する2件のハンドラがあります...
サービス"orclXDB"には、1件のインスタンスがあります。
  インスタンス"orcl"、状態READYには、このサービスに対する1件のハンドラがあります...
サービス"orclpdb"には、1件のインスタンスがあります。
  インスタンス"orcl"、状態READYには、このサービスに対する2件のハンドラがあります...
コマンドは正常に終了しました。

注意事項) Oracleをインストールした後、Listener状態を確認すると、localhostまたは127.0.0.1がデフォルトのホスト名に設定されています。 この状態では外部から接続できません。 外部から接続可能なコンピュータ名(例:SERVER-001)またはIPアドレス(例:192.168.220.130)を指定してください。 指定方法は次のとおりです。

まず、以下のようにOracle Listenerを停止します。

C:\Users\Administrator>lsnrctl stop
LSNRCTL for 64-bit Windows: Version 21.0.0.0.0 - Production on 17-5月 -2024 17:51:22
Copyright (c) 1991, 2021, Oracle.  All rights reserved.
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))に接続中
コマンドは正常に終了しました。

次に、listener.oraファイルで(HOST = localhost)部分を以下のように修正します。

C:\>notepad C:\app\oracle\homes\OraDB21Home1\network\admin\listener.ora
# listener.ora Network Configuration File: C:\app\oracle\homes\OraDB21Home1\NETWORK\ADMIN\listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = C:\app\oracle\product\21.3.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:C:\app\oracle\product\21.3.0\dbhome_1\bin\oraclr.dll")
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.220.130)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

tnsnames.oraファイルで(HOST = localhost)部分も以下のように修正します。

C:\>notepad C:\app\oracle\homes\OraDB21Home1\network\admin\tnsnames.ora
# tnsnames.ora Network Configuration File: C:\app\oracle\homes\OraDB21Home1\NETWORK\ADMIN\tnsnames.ora
# Generated by Oracle configuration tools.

LISTENER_ORCL =
  (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.220.130)(PORT = 1521))

ORACLR_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (CONNECT_DATA =
      (SID = CLRExtProc)
      (PRESENTATION = RO)
    )
  )

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.220.130)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

修正後、コンピュータを再起動するか、次のようにOracle Listenerを再起動します。

C:\Users\Administrator>lsnrctl start
LSNRCTL for 64-bit Windows: Version 21.0.0.0.0 - Production on 17-5月 -2024 17:55:02
Copyright (c) 1991, 2021, Oracle.  All rights reserved.
tnslsnrを起動しています。お待ちください...
TNSLSNR for 64-bit Windows: Version 21.0.0.0.0 - Production
システム・パラメータ・ファイルはC:\app\oracle\homes\OraDB21Home1\network\admin\listener.oraです。
ログ・メッセージをC:\app\oracle\diag\tnslsnr\localhost\listener\alert\log.xmlに書き込みました。
リスニングしています: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.220.130)(PORT=1521)))
リスニングしています: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.220.130)(PORT=1521)))に接続中
リスナーのステータス
------------------------
別名                      LISTENER
バージョン                TNSLSNR for 64-bit Windows: Version 21.0.0.0.0 - Production
開始日                    17-5月 -2024 17:55:08
稼働時間                  0 日 0 時間 0 分 12 秒
トレース・レベル          off
セキュリティ              ON: Local OS Authentication
SNMP                      OFF
パラメータ・ファイル      C:\app\oracle\homes\OraDB21Home1\network\admin\listener.ora
ログ・ファイル            C:\app\oracle\diag\tnslsnr\S-WIN22-221\listener\alert\log.xml
リスニング・エンドポイントのサマリー...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.220.130)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
サービスのサマリー...
サービス"CLRExtProc"には、1件のインスタンスがあります。
  インスタンス"CLRExtProc"、状態UNKNOWNには、このサービスに対する1件のハンドラがあります...
コマンドは正常に終了しました。

lsnrctl start実行直後にはCLRextProcインスタンスのみリストに存在しますが、数分ほど経って確認すると、次のようにすべてのインスタンスが確認されます。

C:\Users\Administrator>lsnrctl status
LSNRCTL for 64-bit Windows: Version 21.0.0.0.0 - Production on 18-5月 -2024 12:17:12
Copyright (c) 1991, 2021, Oracle.  All rights reserved.
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.220.130)(PORT=1521)))に接続中
...省略...
リスニング・エンドポイントのサマリー...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.220.130)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=localhost)(PORT=5500))(Security=(my_wallet_directory=C:\APP\ORACLE\admin\orcl\xdb_wallet))(Presentation=HTTP)(Session=RAW))
サービスのサマリー...
サービス"722f284aa4184882876af6e7957c34a3"には、1件のインスタンスがあります。
  インスタンス"orcl"、状態READYには、このサービスに対する2件のハンドラがあります...
サービス"CLRExtProc"には、1件のインスタンスがあります。
  インスタンス"CLRExtProc"、状態UNKNOWNには、このサービスに対する1件のハンドラがあります...
サービス"bc74b627f47a416ab26784e660b5c7b2"には、1件のインスタンスがあります。
  インスタンス"orcl"、状態READYには、このサービスに対する2件のハンドラがあります...
サービス"orcl"には、1件のインスタンスがあります。
  インスタンス"orcl"、状態READYには、このサービスに対する2件のハンドラがあります...
サービス"orclXDB"には、1件のインスタンスがあります。
  インスタンス"orcl"、状態READYには、このサービスに対する1件のハンドラがあります...
サービス"orclpdb"には、1件のインスタンスがあります。
  インスタンス"orcl"、状態READYには、このサービスに対する2件のハンドラがあります...
コマンドは正常に終了しました。

sqlplus.exeコマンドでローカル接続を確認

コマンドプロンプトでsqlplus system/admin1234で接続できるか確認します。 接続に問題がなければ、次のように接続結果を表示します。

C:\Users\Administrator>sqlplus system/admin1234
SQL*Plus: Release 21.0.0.0.0 - Production on 金 5月 17 17:57:40 2024
Version 21.3.0.0.0
Copyright (c) 1982, 2021, Oracle.  All rights reserved.
最終正常ログイン時間: 金 5月  17 2024 16:53:57 +09:00
Oracle Database 21c Standard Edition 2 Release 21.0.0.0.0 - Production
Version 21.3.0.0.0
に接続されました。

外部コンピュータのsqlplus.exeコマンドでリモート接続を確認

外部コンピュータでsqlplusコマンドで遠隔接続すると、次のようにErrorが発生します。

C:\>sqlplus system/admin1234@192.168.220.130/orcl
C:\Users\Administrator>sqlplus system/admin1234@192.168.220.130/orcl
SQL*Plus: Release 21.0.0.0.0 - Production on 金 5月 17 18:31:56 2024
Version 21.3.0.0.0
Copyright (c) 1982, 2021, Oracle.  All rights reserved.
ERROR:
ORA-12170: TNS: 接続タイムアウトが発生しました。
ユーザー名を入力してください:

“ORA-12170: TNS: 接続タイムアウトが発生しました。” Errorを解決するためには、次のようにWindows Defender ファイアウォールにOracle Listener Port 1521を許可します。

[コントロールパネル\すべてのコントロールパネル項目]画面で、”Windows Defender ファイアウォール” アイコンをクリックして、[コントロールパネル\すべてのコントロールパネル項目\ Windows Defender ファイアウォール] 設定画面を表示します。

そして、[コントロールパネル\すべてのコントロールパネル項目\Windows Defender ファイアウォール] 設定画面の左側のメニューで、[詳細設定] リンクをクリックして、[セキュリティが強化された Windows Defender ファイアウォール] 画面を表示します。

最後に、[セキュリティが強化された Windows Defender ファイアウォール] 画面の受信の規則で、[新しい規則…] をクリックして、[新規の受信の規則ウィザード] 画面を表示します。

[新規の受信の規則ウィザード] 画面の [ステップ: 規則の種類] で、[ポート(O)] を選択し、[次(N)] ボタンを押して次の画面に進みます。

[新規の受信の規則ウィザード] 画面の [ステップ:プロトコルおよびポート] で [TCP(T)] を選択し、[特定のローカル ポート(S)] で 1521 の値を入力し、[次(N)] ボタンを押して次の画面に進みます。

[新規の受信の規則ウィザード] 画面の [ステップ:操作] で、[接続を許可する(A)] を選択し、[次(N)] ボタンを押して次の画面に進みます。

[新規の受信の規則ウィザード]画面の[ステップ:プロフィール]で、[ドメイン(D)]、[プライベート(P)]、[パブリック(U)] すべてチェックして、[次(N)]ボタンを押して次の画面に進みます。

[新規の受信の規則ウィザード] 画面の [ステップ:名前] で、[名前(N)] と [説明(オプション)(D)] を入力し、[完了(N)] ボタンを押して [セキュリティが強化された Windows Defender ファイアウォール] 画面に戻ります。

[セキュリティが強化された Windows Defender ファイアウォール] 画面の「受信の規則」で右クリックすると、[更新] コンテキストメニューが表示されます。 ここで、[更新] をクリックして、Oracle受信の規則が追加されたことを確認します。

Windows Defender ファイアウォールにOracle Listener Port 1521を許可することで、次のように外部コンピュータからsqlplusコマンドで遠隔接続されることを確認することができます。

C:\>sqlplus system/admin1234@192.168.220.130/orcl
SQL*Plus: Release 21.0.0.0.0 - Production on 金 5月 17 18:34:39 2024
Version 21.3.0.0.0
Copyright (c) 1982, 2021, Oracle.  All rights reserved.
最終正常ログイン時間: 金 5月  17 2024 17:57:40 +09:00
Oracle Database 21c Standard Edition 2 Release 21.0.0.0.0 - Production
Version 21.3.0.0.0
に接続されました。

コメント

タイトルとURLをコピーしました