2017年4月8日土曜日

ubuntuに oracle 12c (12.1.0.2.0) をインストール

サポート対象外ではあるが、ubuntu16.10 に oracle12c(12.1.0.2.0) をインストールする際、以下のようなエラーが発生する。
/usr/bin/ld: /u01/app/oracle/product/12.1.0/dbhome_1/lib//libpls12.a(plzsql.o): relocation R_X86_64_32 against`.rodata.str1.4' can not be used when making a shared object。 -fPIC を付けて再コンパイルしてください。
/usr/bin/ld: 最終リンクに失敗しました: 出力に対応するセクションがありません

このエラーには、該当箇所に -no-pie オプションを付与することで解決した。
※このエラーについては、「Ubuntu 16 で Stack + GHC がライブラリのリンクに失敗する場合の対処法」 を参照させて頂いた。

省力化のため、この問題も含めインストール中に出るエラーの対策をまとめた patch と oracle12c(12.1.0.2.0) をインストールする前準備のシェルを作成した。 なお、この手順は VirtualBox に ubuntu16.10 をインストールし、2017/03/19日時点までの update を当てておこなった。



1.事前準備として以下の構成のディレクトリを作成
 /mnt/vbox/share/oracle12c 
 |-- database : linuxamd64_12102_database_[12]of2.zip を展開
 `-- inst12c : inst12c.tar.gz を展開

2.oracle12c が要求する各種設定を適用
$ sudo -s
# cd /mnt/vbox/share/oracle12c/inst12c
# ./inst12c.sh

※inst12c.sh の内容は、 「oracle12c が要求する各種設定を一括設定」 を参照

3.oracle12c のインストール
# cd /mnt/vbox/share/oracle12c/database/install
# cp /usr/bin/unzip .
# passwd oracle
Changing password for user oracle.
New UNIX password: <oracle ユーザーパスワード>
Retype new UNIX password: <oracle ユーザーパスワード>
passwd: all authentication tokens updated successfully.  
# xhost +
# su - oracle
$ cd /mnt/vbox/share/oracle12c/database
$ ./runInstaller -jreloc /usr/lib/jvm/default-java
4.エラーが発生したら patch を適用
$ cd /u01/app/oracle/product/12.1.0/dbhome_1
$ patch -p1 -d . < /mnt/vbox/share/oracle12c/inst12c/ora12c_12.1.0.2.0-ubuntu.patch
<再施行>
$ exit
# /u01/app/oraInventory/orainstRoot.sh
# /u01/app/oracle/product12.1.0/dbhome_1/root.sh
# su - oracle



5.リスナとデータベース作成の前準備
 $HOME/.profile に以下の行を追記
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/12.1.0/dbhome_1
export ORACLE_SID=orcl
export PATH=$ORACLE_HOME/bin:$PATH
export NLS_LANG=JAPANESE_JAPAN.UTF8

6.リスナの作成
$ vi `which netca`
===========================================================
diff bin.org/netca bin/netca
95c95,96
< JRE_DIR=/u01/app/oracle/product/12.1.0/dbhome_1/jdk/jre
---
> #JRE_DIR=/u01/app/oracle/product/12.1.0/dbhome_1/jdk/jre
> JRE_DIR=/usr/lib/jvm/default-java
===========================================================
$ netca
 ※リスナー作成時のメニュー選択は1521ポートを使用するのであれば全てリターンで作成可

7.データベースの作成
$ vi `which dbca`
===========================================================
diff bin.org/dbca bin/dbca
70c70,71
< JRE_DIR=/u01/app/oracle/product/12.1.0/dbhome_1/jdk/jre
---
> #JRE_DIR=/u01/app/oracle/product/12.1.0/dbhome_1/jdk/jre
> JRE_DIR=/usr/lib/jvm/default-java
===========================================================
$ dbca

8.データベース、リスナの起動、終了

 ※作成中


9.オラクルクライアントのインストール

 ※「ubuntu に oracle client をインストール」を参照

10.プログラムからのデータベース接続

0 件のコメント:

コメントを投稿