Oracle Databaseと言えば、GUIの Universal Installerでインストールするものですが、あえて GUIなしでインストールします。
そもそもが「GUI使えよ!(涙拭けよ)」って話なんですけど、色々と大人の事情がありまして、Universal Installer(長いので以降は「GUI」とします)を使うことができない事もあるのですね。
「Oracle Databaseってインストールには GUIを使うんじゃないの? それしかないのと違う?」という Oracle Database経験者もいるかも知れませんけど、GUIの実体である setup.exe には「サイレントモード」というオプションがありますね。
「レスポンスファイル」というのを setup.exeに渡して、GUI無しに、インタラクティブではなく自動でインストールできるようになっています。
レスポンスファイルって何かというと、皆さんが GUIで色々と選択をしたり入力をしていた値を予めテキストで記載しているものになります。
ですので仕組み的には難しいことはなく、ここの手順を見ていただければ覚えられてしまう程度のものです。
昨今はサーバー環境構築を自動化するケースが増えてきていますし、そもそもウィンドウシステムをインストールしていないサーバーOS相手に Oracleデータベースをインストールするにはこの方法になりますね。
大変申し訳ございませんが、ここからは GUIでのインストール経験のある方でないとそもそも意味不明かと思います。
まずGUIでのインストールの修行を経てから来て下さい。
環境は以下でやります。
- Windows Server 2022
- Oracle Database 19c (19.3.0) Standard Edition Two
Windows Server 2022のインストールについては「Windows Server 2022 インストール」に書いております。
ここでは、Windows Server 2022にログオンできる状態になって以降から始めます。
1.Oracle Database 19c (評価版)ダウンロード
Oracleは開発者の研究(お勉強)と検証目的に限り、無償で製品をダウンロードさせてくれますので、お勉強に有効に活用させて頂くことにします。
当然ながらここでダウンロードしたものは商用利用してはいけません。
ダウンロードサイトは以下になります。
Oracle Database Enterprise Edition
リンクでは「Enterprise Edition」とありますが、Standard Edition Twoのインストールもコレでやるようになっています。
ダウンロードサイトにある [Oracle Database 19c for Microsoft Windows x64 (64-bit)] の行の [ZIP] をクリックします。
多分そこで Oracleのアカウント(無料)を作るよう促されると思います。
ダウンロードには Oracleのアカウントが必要なのですが、これから Oracle Databaseと付き合っていくなら躊躇せず作成して下さい。
Oracle Masterという資格を取るときにも使いますので。
ダウンロードが完了すると [WINDOWS.X64_193000_db_home.zip] というファイルができます。
評価版ライセンスではパッチのダウンロードも適用もできませんので、このバージョンで我慢して下さい。
これでダウンロードは完了です。
2.ダウンロードファイルの解凍と配置
Oracleデータベースのインストールというと、以前は以下のような手順でした。
- ダウンロードファイルを解凍
- 中にある [setup.exe] を実行
- GUIの中でインストール先フォルダを指定
- [ORACLE_HOME] に相当するフォルダ以下にインストールされる
翻って最近のダウンロードファイルでのインストール手順は以下のように随分と変わっていて、解凍したフォルダが(以前なら)インストール後のフォルダのイメージになっているのです。
- ダウンロードファイルを解凍すると [ORACLE_HOME] に相当するフォルダができる
- [ORACLE_HOME] に相当するフォルダを任意の場所に移動
- 中にある [setup.exe] を実行すると、レジストリへの登録や各種ツールのメニューへの登録がされる
これを踏まえて、まずはフォルダの配置をします。
ダウンロードファイル [WINDOWS.X64_193000_db_home.zip] の解凍は任意の場所で構いません。
私は Windows Server 2022にデータベース環境構成を分かり易くするために Dドライブを増設して作業していますが、Dドライブが必須という訳ではありません。
Dドライブ直下に [WINDOWS.X64_193000_db_home.zip]ファイルを配置しました。
エクスプローラーでファイルのメニューから [すべて展開] を選んで解凍しますと [WINDOWS.X64_193000_db_home]フォルダができます。
このフォルダの中味が既に以前の方式でインストールした後の ORACLE_HOMEのフォルダと同じになっています。
[WINDOWS.X64_193000_db_home]フォルダを移動して、
[D:¥oracle¥product¥19.3.0¥db_home1]フォルダにしました。
ここでなくても良いのですが、10gの頃からの伝統的な場所でして、Oracle DBエンジニアなら「あぁ」と得心行く場所と思います。
このフォルダの一番下の方にいつも通りの [setup.exe]ファイルがありますが、動作は以前と変わっていてここからインストールが始まるのではなく OSへの各種登録をしているだけに見えます。
3.Oracle Databaseのインストール
これをインストールと呼ぶには若干抵抗がありますが、環境変数の設定・レジストリへの登録・スタートメニューへのアイコン登録等々をしているようです。
GUIでできることのどこまでをやるかはレスポンスファイルの作り次第なんですが、ここではプログラムのインストールまでとして、データベースインスタンスとリスナーの作成は後で別途やることにします。
その目的で作ったレスポンスファイルがこちらです。
[oracle19c_install.rsp]
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v19.0.0
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_BASE=D:\oracle\
oracle.install.IsBuiltInAccount=false
oracle.install.IsVirtualAccount=true
GUIでのインストール経験者は何となく分かるでしょうか。
Oracleデータベースを実行する OSユーザーは、デフォルトの仮想ユーザー( OSにログオンできない)にしているくらいが特筆事項でしょうか。
[ORACLE_BASE] が [D:¥oracle] になることはレスポンスファイル上で見えますが、[ORACLE_HOME] は自動的に [setup.exe]があるフォルダになってるんだと思います。
(変更はできそうな気もしますが、あまりそういうニーズはなさそうです。)
[D:¥oracle¥product¥19.0.3¥db_home1]フォルダに移動し、以下の通り [setup.exe] にオプションを渡して実行しました。
D:\oracle\product\19.0.3\db_home1>setup -silent -responseFile d:\work\oracle19c_install.rsp
Oracle Database設定ウィザードを起動中...
このセッションのレスポンス・ファイルは次の場所にあります:
D:\oracle\product\19.0.3\db_home1\install\response\db_2023-08-22_02-22-54PM.rsp
このインストール・セッションのログは次の場所にあります:
C:\Program Files\Oracle\Inventory\logs\InstallActions2023-08-22_02-22-54PM\installActions2023-08-22_02-22-54PM.log
PersistEnv
INFO: Oracle.DataAccess.Dll entry removed from extproc!
INFO: Oracle.DataAccess.Dll entry removed from extproc!
INFO: Oracle.DataAccess.Dll entry removed from extproc!
INFO: Oracle.Database.Extensions.Dll entry removed from extproc!
INFO: Oracle.Database.Extensions.Dll entry removed from extproc!
INFO: Oracle.Database.Extensions.Dll entry removed from extproc!
INFO: The following section has been added to extproc.exe.config .
INFO: The following section has been
added to extproc.exe.config .
INFO: The following section has been added to extproc.exe.config .
INFO: The following section has been added to extproc.exe.config .
INFO: The following s
ection has been added to extproc.exe.config .
INFO: The following section has been added
to extproc.exe.config .
Successfully Setup Software.
インストールできました。
Windows Serverのスタートメニューを見ると [Oracle - OraDB19Home1 ] というフォルダができて、中にツール類がありました。
GUIでインストールしたのと全く同じと言い切れませんが、多分同じ結果になっていると思います。
4.リスナー作成
デフォルト設定のリスナー [LISTENER] (1521/tcp) を作ります。
これも Net Configuration Assistant(netca.exe)をサイレントモードで動かして、レスポンスファイルを渡します。
レスポンスファイルの雛形が
[D:¥oracle¥product¥19.3.0¥db_home1¥assistant¥netca¥netca.rsp]ファイルとして用意されていますので、これをそのまま使いました。
[D:¥oracle¥product¥19.0.3¥db_home1¥bin]フォルダに移動し、以下の通り [netca.exe] にオプションを渡して実行しました。
D:\oracle\product\19.0.3\db_home1\bin>netca.bat -silent -responsefile D:\oracle\product\19.0.3\db_home1\assistants\netca\netca.rsp
コマンドライン引数の解析:
パラメータ "silent" = true
パラメータ "responsefile" = D:\oracle\product\19.0.3\db_home1\assistants\netca\netca.rsp
コマンドライン引数の解析が終了しました。
Oracle Net Servicesの構成:
プロファイルの構成が完了しました。
Oracle Net Listenerの起動:
リスナーの制御の実行:
D:\oracle\product\19.0.3\db_home1\bin\lsnrctl.exe start LISTENER
リスナーの制御が完了しました。
リスナー・サービスが自動的に起動するように設定中。
リスナーの起動に成功しました。
リスナーの構成が完了しました。
デフォルトのローカル・ネーミング構成が完了しました。
Oracle Net Servicesの構成に成功しました。終了コードは次のとおりです。0
リスナーが作られ、起動されました。
メッセージにある通り、Windowsサービス [OracleOraDB19Home1TNSListener] という名前のものができていましたので、OS再起動後も自動実行されるようになっています。
5.データベースインスタンス作成
最初のデータベースインスタンスを作ります。
(昔からあるタイプのオーソドックスでシンプルなインスタンスにします)
[orcl]インスタンスを作るとして、その条件を羅列するとこう。
- ノーアーカイブログモード
- 自動共有メモリ管理(PGA/PGAが別のやつ)
- 高速リカバリ領域(Fast Recovery Area)を使用しない
- PDB/CDB形式にしない
- 文字コードは utf-8(AL32UTF8)
- 専用サーバーモード
- Enterprise Manager Database Expressは使わない
- データベース・コンポーネントは全外し
これも Database Configuration Assistant(dbca.exe)にレスポンスファイルを与えて自動作成します。
データベースインスタンス作成のレスポンスファイルはこんな感じです。
[orcl.rsp]
responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v12.2.0
gdbName=orcl
sid=orcl
databaseConfigType=SI
RACOneNodeServiceName=
policyManaged=false
createServerPool=false
serverPoolName=
cardinality=
force=false
pqPoolName=
pqCardinality=
createAsContainerDatabase=false
numberOfPDBs=0
pdbName=
useLocalUndoForPDBs=true
pdbAdminPassword=
nodelist=
templateName=D:\oracle\product\19.0.3\db_home1\assistants\dbca\templates\New_Database.dbt
sysPassword=nAsdfghjk1
systemPassword=nAsdfghjk1
serviceUserPassword=
emConfiguration=
emExpressPort=5500
runCVUChecks=FALSE
dbsnmpPassword=
omsHost=
omsPort=0
emUser=
emPassword=
dvConfiguration=false
dvUserName=
dvUserPassword=
dvAccountManagerName=
dvAccountManagerPassword=
olsConfiguration=false
datafileJarLocation=
datafileDestination={ORACLE_BASE}\oradata\{DB_UNIQUE_NAME}\
recoveryAreaDestination=
storageType=FS
diskGroupName=
asmsnmpPassword=
recoveryGroupName=
characterSet=AL32UTF8
nationalCharacterSet=AL16UTF16
registerWithDirService=false
dirServiceUserName=
dirServicePassword=
walletPassword=
listeners=LISTENER
variablesFile=
variables=ORACLE_BASE_HOME=D:\oracle\product\19.0.3\db_home1,DB_UNIQUE_NAME=orcl,ORACLE_BASE=D:\oracle,PDB_NAME=,DB_NAME=orcl,ORACLE_HOME=D:\oracle\product\19.0.3\db_home1,SID=orcl
initParams=undo_tablespace=UNDOTBS1,sga_target=2457MB,db_block_size=8192BYTES,nls_language=JAPANESE,dispatchers=(PROTOCOL=TCP) (SERVICE=orclXDB),diagnostic_dest={ORACLE_BASE},control_files=("{ORACLE_BASE}\oradata\{DB_UNIQUE_NAME}\control01.ctl", "{ORACLE_BASE}\oradata\{DB_UNIQUE_NAME}\control02.ctl"),remote_login_passwordfile=EXCLUSIVE,audit_file_dest={ORACLE_BASE}\admin\{DB_UNIQUE_NAME}\adump,processes=320,pga_aggregate_target=819MB,nls_territory=JAPAN,local_listener=LISTENER_ORCL,open_cursors=300,compatible=19.0.0,db_name=orcl,audit_trail=db
sampleSchema=false
memoryPercentage=40
databaseType=MULTIPURPOSE
automaticMemoryManagement=false
totalMemory=0
ピンク色のところは、管理ユーザーの [SYS]・[SYSTEM]のパスワードになります。
8文字以上・英字の大文字小文字・数字 を含むルールがありますね。
[dbca.exe] はデータベースインスタンスを作成したり削除したりの機能があるので、[-createDatabase]オプションも渡す必要がありました。
D:\oracle\product\19.0.3\db_home1\bin>D:\oracle\product\19.0.3\db_home1\bin>dbca -silent -createDatabase -responsefile D:\work\orcl.rsp
DB操作の準備
4%完了
Oracleインスタンスの作成および起動中
6%完了
9%完了
データベース・ファイルの作成中
13%完了
データ・ディクショナリ・ビューの作成中
14%完了
17%完了
18%完了
21%完了
22%完了
24%完了
26%完了
Oracle JVM
33%完了
39%完了
46%完了
48%完了
Oracle Text
49%完了
51%完了
52%完了
Oracle Multimedia
65%完了
Oracle OLAP
66%完了
67%完了
68%完了
70%完了
Oracle Spatial
78%完了
Oracle Database Extensions for .NET
83%完了
データベース作成の完了
85%完了
87%完了
構成後アクションの実行
100%完了
データベースの作成が完了しました。詳細は、次の場所にあるログ・ファイルを参照してください:
D:\oracle\cfgtoollogs\dbca\orcl。
データベース情報:
グローバル・データベース名:orcl
システム識別子(SID):orcl
詳細はログ・ファイル"D:\oracle\cfgtoollogs\dbca\orcl\orcl.log"を参照してください。
結構時間がかかりましたが、これは私の PCが遅いだけだと思います。
皆さんの環境では %の表示もこんなに出ないかもです。
Windowsサービスには [OracleServiceORCL] という名前のものができていましたので、OS再起動後も自動実行されるようになっています。
データベースインスタンスの作成はこれで完了です。
6.Windows Defender Firewall ポート開放
これは他のノードから [orcl]インスタンスに接続する場合に限り必要です。
「Windowsサーバーのファイアウォール」に書いていますので、[1521/tcp] の開放を行って下さい。
====================
Windows Server 2022に Oracle Database 19cをサイレントモードでインストールしてみましたが、GUIを使う場合と比べて偉く手間がありません。
同じ設定のものを一杯作るなら、GUIでやるよりこちらの方がずっと楽ですね。
ここでは、プログラムのインストール・リスナー立ち上げ・データベースインスタンス作成と別々にやっているようになっていますが、コマンドバッチスクリプトにしてしまえばバッチ実行一発で終わりますから、設計は別としてインストール作業自体は誰でもできる所まで簡略化できてしまいます。
Windows Server Coreへのインストールも、これを応用して行けそうな感じがします。
Oracleの基本はそんなに変わらないので、参考書もそれ程陳腐化しません。
1冊は持っていたいです。