RHEL6.9にOracle12cR2をインストールする。
参考ドキュメント
前提条件
RHEL6.9はインストール済
ネットワークは使えること(yumが使えること)
1.事前準備
1-1.ファイアウォールを無効化
#/etc/rc.d/init.d/iptables stop
#chkconfig iptables off
1-2.必要なソフトウェアのインストール
ここから
binutils x86_64 2.20.51.0.2-5.48.el6 rhel-6-server-rpms 2.8 M
compat-libcap1 x86_64 1.10-1 rhel-6-server-rpms 17 k
compat-libstdc++-33 x86_64 3.2.3-69.el6 rhel-6-server-rpms 183 k
compat-libstdc++-33 i686 3.2.3-69.el6 rhel-6-server-rpms 189 k
e2fsprogs x86_64 1.41.12-24.el6 rhel-6-server-rpms 554 k
ksh x86_64 20120801-37.el6_9 rhel-6-server-rpms 761 k
libstdc++ i686 4.4.7-23.el6 rhel-6-server-rpms 303 k
libstdc++-devel i686 4.4.7-23.el6 rhel-6-server-rpms 1.6 M
libaio i686 0.3.107-10.el6 rhel-6-server-rpms 21 k
libaio-devel x86_64 0.3.107-10.el6 rhel-6-server-rpms 13 k
libaio-devel i686 0.3.107-10.el6 rhel-6-server-rpms 13 k
libXtst i686 1.2.3-1.el6 rhel-6-server-rpms 19 k
nfs-utils x86_64 1:1.2.3-78.el6 rhel-6-server-rpms 336 k
ここまで
yum install compat-libstdc++-33.i686
とする必要がある。
glibcはgcc4.8.5をインストール済のため、既に入っていた
e2fsprogsのバージョンが1.42では無いが大丈夫か不明。
libsはlibssの間違い?e2fsprogsをインストールする際に一緒に入った。
libstdc++は64bit版は入っていたが、32bit版が入っていなかった。
libstdc++-devel、 libaio、libXtstも同様。
1-3.カーネルパラメータの設定
「/etc/sysctl.conf」ファイルを編集する
変更後は「/sbin/sysctl -p」を実行する。
変更前
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
変更後
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 4294967295
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
kernel.panic_on_oops = 1
1-4.ユーザー・グループの作成
groupadd -g 54321 oinstall
groupadd -g 54322 dba
groupadd -g 54323 oper
groupadd -g 54324 backupdba
groupadd -g 54325 dgdba
groupadd -g 54326 kmdba
groupadd -g 54327 racdba
useradd -u 1200 -g oinstall -G dba,oper,backupdba,dgdba,kmdba,racdba -d /home/oracle oracle
パスワードを設定する
passwd oracle
1-5.インストールディレクトリの準備
mkdir -p /u01/app/oracle
chown oracle:oinstall /u01/app/oracle
chmod -R 775 /u01
1-6.リソースの制限
/etc/security/limits.conf
以下を追加する。
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
2.インストール
2-1. oraInventoryの書き込みに失敗
フォルダを作成し、所有者をoracle:oraInstにすることにより解決。
2-2./.bash_profile
umask 022
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/12.2.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
export LANG=ja_JP.UTF-8
export NLS_LANG=Japanese_Japan.AL32UTF8
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
3.インストール後の設定
起動方法
sqlplus system/<パスワード> as sysdba
show con_name ←①
show pdbs ←②
alter pluggable database orclpdb open; ←③
①「CDB$ROOT」になっていればOK
②PDBの一覧を表示し、OPEN MODEの値が「MOUNTED」になっている場合は③を実行
ODBC
file not found
isqlで接続した際に以下のようなエラーが発生する場合がる。
[oracle@localhost Debug]$ isql ORA -v
[01000][unixODBC][Driver Manager]Can't open lib '/u01/app/oracle/product/12.2.0/dbhome_1/lib/libsqora.so.12.1' : file not found
原因はODBCドライバが他のライブラリを使用しており、それが見つからないため。
以下の2つの方法で対応が可能。
1.LD_LIBRARY_PATHを設定。(bash_profileで説明済み)
2.必要なライブラリを調べ、/lib64/か/usr/lib64/にファイルをコピーする。
[oracle@localhost Debug]$ cd /u01/app/oracle/product/12.2.0/dbhome_1/lib/
[oracle@localhost lib]$ ldd libsqora.so.12.1
ldd: warning: you do not have execution permission for `./libsqora.so.12.1'
linux-vdso.so.1 => (0x00007fff911fc000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007fdd8c820000)
libm.so.6 => /lib64/libm.so.6 (0x00007fdd8c59c000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fdd8c37e000)
libnsl.so.1 => /lib64/libnsl.so.1 (0x00007fdd8c165000)
librt.so.1 => /lib64/librt.so.1 (0x00007fdd8bf5d000)
libaio.so.1 => /lib64/libaio.so.1 (0x00007fdd8bd5b000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x00007fdd8bb41000)
libclntsh.so.12.1 => not found
libclntshcore.so.12.1 => not found
libodbcinst.so.2 => /usr/lib64/libodbcinst.so.2 (0x00007fdd8b92f000)
libc.so.6 => /lib64/libc.so.6 (0x00007fdd8b59b000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fdd8b384000)
/lib64/ld-linux-x86-64.so.2 (0x0000003877a00000)
libltdl.so.7 => /usr/lib64/libltdl.so.7 (0x00007fdd8b17b000)
「ldd」コマンドは、「共有ライブラリへの依存関係を表示する」コマンド
[root@localhost lib]# cp libclntsh.so.12.1 /lib64/libclntsh.so.12.1
[root@localhost lib]# cp libclntshcore.so.12.1 /lib64/libclntshcore.so.12.1
当初は以下のようにリンクファイルを作成したがうまく認識してくれなかった。
ln -s libclntsh.so.12.1 /lib64/libclntsh.so.12.1
プラガブルデータベースへの接続
alter session set container = orclpdb;
4.エラー対応
ORA-01033
インスタンス起動処理実行中または停止処理中などにおいて、データベースへの接続を行った場合に発生。
http://www.cosol.jp/tech/detail/ot0007_ora01033.shtml
PDBが起動しているか確認する。
ORA-12162
http://tazakazushi.net/sqlplus_ora_12162.html
環境変数ORACLE_SIDがセットされていない場合に発生する。
ORA-12154
tnsnames.ora構成ファイルに指定されたネット・サービス名を検出できないことを示すエラー。
http://www.cosol.jp/tech/detail/ot0015_ora12154.shtml
sqlplusで「<ユーザ名>/<パスワード>@:<ポート番号>/<サービス名>」のサービス名に誤字が無いか確認すること。
ORA-12514
リスナーがクライアントからの接続要求を受け付けた時に、接続先となるサービスを認識していない時に発生する。
http://www.cosol.jp/tech/detail/ot0053_ora12514.shtml
DB(CDB、PDB)が起動しているか確認すること。
ORA-65096
http://cosol.jp/tech/detail/ora-65096.shtml
コンテナデータベースにユーザーを作成しようとしている。プラガブルデータベースにユーザーを作成する必要がある。
5.その他
ツールのインストール
https://dl.fedoraproject.org/pub/epel/6/x86_64/Packages/r/rlwrap-0.42-1.el6.x86_64.rpm
wgetで取得し、rpmでインストール
参考URL:http://www.intellilink.co.jp/article/column/oracle-yam05.html