mattintosh note

どこかのエンジニアモドキの備忘録

CentOS 7×Oracle Database 11g XE×Ubuntu

VirtualBoxCentOS 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 をダウンロードして解凍。aliasLD_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

さて遊ぼう。