仕事でWindows 10が入った2台のマシンにOracle Client 12cをインストールしようとしたときに発生したことです。
インストーラの検証実行に失敗する
インストーラを起動しインストール・タイプの管理者を選択し、次へをクリックすると。
[INS-30131] インストーラの検証実行に必要な最初の手順が失敗しました。
と表示されて全く進めなくなる現象がありました。
c$として共有
調べてみると、Cドライブ全体を「c$」として共有する設定に一時的に変更する解決策1がありましたが、
一時的とはいえ危険すぎると判断しこの方法は結局行いませんでした。
ちなみに全く同じ環境の2台が用意されてて同時に作業をしていたのですが、何故か片方一台だけこの現象が発生しました。2
-ignoreSysPrereqsを付与して起動
次に発見した解決策がOracle Universal Installer(Setup.exe)を -ignoreSysPrereqs
オプションを付与して起動する方法3でした。この方法を行うと動作保証が無くなるのですが、すでに別のWindows 10のマシンにはセットアップされた状態で稼働していた4ので問題無いと判断し、実行しました。
結論としてはダメでした。指定する際に誤字をやらかしているのか何度も見直したのですが結局わからないまま、次の手段を探すことにしました。
OracleRemExecを停止してやり直す
Oracle Clientはインストールの際にOracleRemExecサービスを利用しているらしく、止まるべき所が正常に停止せず、一時フォルダをロックしたまま死んでいる可能性があるとのことで、早速調べてみました。
そのため こちら の方法を参考に、インストーラを一度終了させ、タスクマネージャーを起動してサービスタブを見てみるとそもそも該当サービスが存在しないという。
そんな馬鹿なと思い、サービス管理ツールを開くをクリックしてもう一度見てみるといましたそれも起動中でした。
早速停止させようとするとそんなサービスは存在しないとエラーが表示され停止できないという。(じゃあなんで起動中かわかるんだよ)
ならもう存在しないなら再起動すれば勝手に消えるのでは?と考え、マシンを再起動してもう一度実行してみると何事も無かったように先に進めました。
困ったら再起動、以外と役に立つ手法かもしれません。5
PATHが取得できない
こちらは2台ある内の2台ともで発生したのでおそらくWindows 10特有の問題かもしれませんが、しばらく進めると前提条件のチェックの項目でPATHが長すぎるというなんとも意味不明6なエラーが出たのですが、無視が可能なので無視して大丈夫です。
PATHの設定に失敗する
PATHが取得できないのに無視して進めたから当たり前と思ったあなた、これ2台の内1台だけに発生したんですよ。
(それもさっきトラブルが発生したマシンとは別のマシン)
これに関してはPATHにインストール時にデフォルトの場所でインストールしたのであれば
C:\app\[ユーザ名]\client\product\[バージョン]\client_1
とかにインストールされているはずなのでそこからbin
フォルダまでのPATHを指定してあげたら大丈夫だと思います。
(パスがうろ覚えですまんな)
さいごに
すでにサーバーとの接続設定が済まされているtnsnames.ora等に入れ替えて、無事にSQLツール等からDBをOracle Client経由で操作可能になりました。
めでたしめでたし。Oracle Client 12c完全に理解した。