今月入ったプロジェクトで開発環境の構築での出来事です。

最近はVMWareやDockerといった仮想環境を利用した開発が多く環境構築がとても簡単なのですが、今回は珍しく使用するソフトをPCに直接インストールするタイプでした。

今回利用するOracleはインストーラーのない頃から何度も構築しているのですが業務ではSQLServer系のデータベースを使うプロジェクトが多く、またインストーラーになってからはエラーなしで構築できたことがないくらい相性が悪いです。

今回も「Oracle database 19c」のインストール中に以下のエラーが発生してインストールできなくなりました。

[INS-30014] 指定された場所がCFSにあるかチェックできません

Oracleでのエラーの説明は以下の通りですが何のこっちゃわかりません。

原因: 指定された場所には必要な権限がない可能性があります。

処置: 適切な必要な権限を持つ場所を指定してください。

CFSとはCluster File Systemの略らしいのですが、原因をネットで調べてみるとパソコン名が15文字以上に設定されていると発生するそうです。

CFSがなぜパソコン名の文字数と関係があるのか意味がわからないのですが、とにかくOracleのインストールを中断してパソコン名を修正しようと思ったら設定しているパソコン名は12文字でした。

文字数は問題なさそうですが、アンダースコア(_)が入っていましたのでそれを削除して11文字に変更してパソコンを再起動しました。

再びインストールを行いましたがエラーは解消されません。ググっても、パソコン名を変更する以外の対応方法がありません。ちなみにGEMINIにも聞いたんですけど、答えは同じでした。

途方に暮れてたら「グローバル・データベース名」に「docker」という見慣れた単語があります。環境構築書にここを「orcl.localdomain」にするように指示があったので上書きしていて忘れていました。

そもそもdockerは今回のプロジェクトで使用していないのでアンインストールしていて出てくるはずがないのです。ちなみにグローバル・データベース名をそのままに進めると無事に次のステップに進みます。つまりグローバル・データベース名を「orcl.localdomain」に変更したことが原因でした。

今回は環境構築書のとおりにしないとプロジェクトで問題発生時に情報共有できないと困るので「orcl.localdomain」でインストールできるようにします。

エラーの本当の原因はOracleをインストールするパソコンのドメインとグローバル・データベース名に指定したドメインが違うからエラーになっているようなのでパソコンのドメインを修正すればいいはずです。

ドメインといったらhostsファイルなので「C:\Windows\System32\drivers\etc\hosts」の中身を確認すると以下のとおり記載されていました。ご丁寧にDockerが追加しましたというコメント付きです。

# For example:
#
#      102.54.94.97     rhino.acme.com          # source server
#       38.25.63.10     x.acme.com              # x client host

# localhost name resolution is handled within DNS itself.
#	127.0.0.1       localhost
#	::1             localhost
# Added by Docker Desktop
192.168.1.2 host.docker.internal
192.168.1.2 gateway.docker.internal
# To allow the same kube context to work on the host and the container:
127.0.0.1 kubernetes.docker.internal

# End of section

Dockerはアンインストールしているので、Dokcerが追加した部分をなんの迷いもなくバックアップもせずに削除します。これでドメインは指定していないことになるので「localdomain」になるはずです。

hostsを変更したので、念のためにOSを再起動します。

パソコン起動後に再びOracleのインストールを行うと今度は以下のとおりグローバル・データベース名が「orcl.localdomain」になっており、次ステップにエラーなく進み、無事にOracle databaseのインストールができました。

Oracleにはエラーメッセージの正確性を上げてもらいたいものです。