VirtualBoxに CentOS 7 Minimal をインストールして Oracle 11g XE(Express Edition)をインストールしたときのメモ。
VirtualBoxの設定は Red Hat (64-bit) でほぼデフォルト、ネットワークのみブリッジに変更。
いきなりネットワークが使えなかったのでまずはネットワーク。(インストール時に設定をしておけばいいようである)
# ip addr add 192.168.1.100/24 dev enp0s3 # ip route add default via 192.168.1.1 # echo nameserver 8.8.8.8 >>/etc/resolv.conf # echo nameserver 8.8.4.4 >>/etc/resolv.conf
インストール時に固定 IP で設定した場合の /etc/sysconfig/network-scripts/ifcfg-enp0s3
は以下の状態。(インストール時に設定しておくと二重引用符が付くのは何故だ…)
TYPE="Ethernet" BOOTPROTO="none" DEFROUTE="yes" IPV4_FAILURE_FATAL="no" IPV6INIT="yes" IPV6_AUTOCONF="yes" IPV6_DEFROUTE="yes" IPV6_FAILURE_FATAL="no" NAME="enp0s3" UUID="f0c2c328-ea1a-420c-9bc0-b872553ca1b8" ONBOOT="yes" HWADDR="08:00:27:DA:FD:20" IPADDR0="192.168.1.100" PREFIX0="24" GATEWAY0="192.168.1.1" DNS1="8.8.8.8" DNS2="8.8.4.4" IPV6_PEERDNS="yes" IPV6_PEERROUTES="yes"
システムのアップデート。
# yum update # reboot
Oracle 11g XE のインストールに bc、 libaio が必要。unzip はインストーラの展開用。net-tools は /etc/init.d/oracle-xe configure
するときに netstat
が無いというメッセージが出るので(特に無くてもかまわないとは思うが)。
# yum -y install bc libaio net-tools unzip
Oracle 11g XE のインストールには 980 MB のスワップが必要だが、CentOSのインストール時に 800 MB 程度に設定されていたようなのでスワップを追加。(インストール時に 1024 としておけばインストール可能だった)
# dd if=/dev/zero of=/swapfile bs=1M count=1000 # chmod 0600 /swapfile # mkswap /swapfile # swapon /swapfile # echo /swapfile swap swap defaults 0 0 >>/etc/fstab
Oracle 11g XE のインストール。
# unzip oracle-xe-11.2.0-1.0.x86_64.rpm.zip # rpm -ivh Disk1/oracle-xe-11.2.0-1.0.x86_64.rpm # /etc/init.d/oracle-xe configure
oracle_env.sh
の読み込みと ~/.bashrc
への設定。
$ . /u01/app/oracle/product/11.2.0/xe/bin/oracle_env.sh $ echo . /u01/app/oracle/product/11.2.0/xe/bin/oracle_env.sh >>~/.bashrc
クライアント側の Ubuntuに sqlplus をインストールするには alien
を使って RPMパッケージをインストールする方法があるようだが、Debian系に RPMはちょっとねぇ…ってことでパッケージシステムには入れないように進める。
instantclient の basic と sqlplus をダウンロードして解凍。alias
で LD_LIBRARY_PATH
を設定するようにして sqlplus
を使用可能にしておく。
$ unzip instantclient-basic-linux.x64-12.1.0.2.0.zip $ unzip instantclient-sqlplus-linux.x64-12.1.0.2.0.zip $ alias sqlplus="LD_LIBRARY_PATH=~/instantclient_12_1 ~/instantclient_12_1/sqlplus" $ alias sqlplus >>~/.bashrc
さて、接続…
$ sqlplus system/password@192.168.1.100
としたが、エラーが返ってきた。なんか接続できてないっぽい。
ERROR: ORA-12543: TNS:destination host unreachable
ファイヤーウォールかなぁと思って iptablesみたけど何も書いてない。ググると CentOS 7 は firewall-cmd
っていうので色々やってるらしい。へぇ。
1521 番ポートを解放しておく。
# firewall-cmd --zone=public --add-port=1521/tcp --permanent # firewall-cmd --reload # firewall-cmd --list-all
さて遊ぼう。