[Oracle] CentOS 7 minimal に Oracle Database XE 11gR2 をインストール

2017年12月8日

 CentOS 7 minimal に Oracle Database XE 11gR2 をインストールする場合の手順のメモ。
 主にここの手順をみて行いましたので、より詳しい解説はそちらへ。
 http://www.ajisaba.net/db/ora_linux_install.html

  1. Oracle XE をダウンロードします。

     OTN のダウンロードサイト (http://www.oracle.com/technetwork/jp/database/database-technologies/express-edition/downloads/index.html) から Oracle Database Express Edition 11g Release 2 for Linux x64 を選択し oracle-xe-11.2.0-1.0.x86_64.rpm.zip をダウンロードします。

  2. CentOS 7 minimal のインストールをします。

     CentOS minimal 自体のインストール方法はこちらを参照してください。 (http://ooltcloud.sakura.ne.jp/blog/201711/article_30210409.html)
     CentOS 7.4 インストール直後, メインメモリ 1GB 環境で Oracle Database XE 11.2 はインストール出来ましたが、環境によってはメモリ不足などでインストール出来ない場合があるので注意してください。

  3. インストールした CennOS に SSH を使って root でログインします。

     ダウンロードした oracle-xe-11.2.0-1.0.x86_64.rpm.zip を /tmp に SSH-SCP で転送しておきます。

  4. インストールに必要なパッケージのインストールをします。
    yum install unzip
    yum install bc
    yum install nano
    

     bc は計算式(?)を渡すと答えを戻してくるようなコマンドのようです。Oracle のインストーラーか使っているようなので用意しておきます。bc 自体の使用例は以下のような感じです。

    echo "1+2+3" | bc
    6
    

     nano はエディタです。(個人的な好みです。お好みに応じて emacs とかどうぞ)

  5. oracle-xe-11.2.0-1.0.x86_64.rpm.zip を /tmp に解凍します。
    cd /tmp
    unzip oracle-xe-11.2.0-1.0.x86_64.rpm.zip
    
  6. /tmp/Disk1 をカレントにして、解凍された rpm をインストールします。
    cd /tmp/Disk1 
    rpm -ivh oracle-xe-11.2.0-1.0.x86_64.rpm
    
  7. インストールが完了したら /etc/init.d/oracle-xe configure を実行し、初期化を行います。

     例えば以下のような感じで入力します。(網掛部分)
     また、netstat でエラーが出ていますが問題なさそうなので無視しています。(そのかわり Listen ポートが被らないように設定します。使用ポートは ss コマンドで確認します。)
     エラーが気になる人は netstat をインストール (yum install net-tools) してから以下の初期化を実行してください。

    [root@localhost ~]# /etc/init.d/oracle-xe configure
    
    Oracle Database 11g Express Edition Configuration
    -------------------------------------------------
    This will configure on-boot properties of Oracle Database 11g Express
    Edition.  The following questions will determine whether the database should
    be starting upon system boot, the ports it will use, and the passwords that
    will be used for database accounts.  Press  to accept the defaults.
    Ctrl-C will abort.
    
    Specify the HTTP port that will be used for Oracle Application Express [8080]: 8080
    
    /etc/init.d/oracle-xe: line 362: netstat: command not found
    Specify a port that will be used for the database listener [1521]: 1521
    
    /etc/init.d/oracle-xe: line 405: netstat: command not found
    Specify a password to be used for database accounts.  Note that the same
    password will be used for SYS and SYSTEM.  Oracle recommends the use of
    different passwords for each database account.  This can be done after
    initial configuration: (管理者用のパスワード)
    Confirm the password: (管理者用のパスワード)
    
    Do you want Oracle Database 11g Express Edition to be started on boot (y/n) [y]: y
    
    Starting Oracle Net Listener...Done
    Configuring database...Done
    Starting Oracle Database 11g Express Edition instance...Done
    Installation completed successfully.
  8.  最後に Installation completed successfully. が出ていれば成功です。

  9. sqlplus 用に rlwrap をインストールします。

     標準の状態だと sqlplus でカーソルキーを使った操作ができないので rlwrap というラッパーを導入します。
     詳しくはここを参照して下さい。 https://qiita.com/inomasa/items/391c025532db6b87a1d5

     rlwrap は 公式リポジトリにはないパッケージらしく、epel リポジトリを参照する必要があるらしいです。なので、まずは epel リポジトリを参照できるようにします。
     epel についてはここを参照しました。http://note.kurodigi.com/centos7-epel/

    yum install epel-release.noarch
    

     デフォルトの設定だと公式リポジトリにあるパッケージも epel から取得するようになるらしいので、設定を変更し普段は epel を参照しないようにしておきます。

    nano /etc/yum.repos.d/epel.repo
    

     [epel] ブロックにある enabled を 0 にします。

    [epel]
    name=Extra Packages for Enterprise Linux 7 - $basearch
    #baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch
    mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
    failovermethod=priority
    enabled=0
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
    

     rlwrap をインストールします。上記の設定で epel を参照しない設定にしたので、--enablerepo=epel オプションを付加して epel リポジトリを参照するように指定してインストールします。

    yum install --enablerepo=epel rlwrap
    
  10. 環境設定をします。

     Oracle ユーザーでログインし、.bash_profile, .bashrc の設定をします。
     Oracle のインストールで作成された oracle ユーザーには、.bash_profile, .bashrc がないらしいので、ひな形フォルダ (/etc/skel/) から .bash_profile, .bashrc をコピーしてから行います。

    su - oracle
    cp /etc/skel/.bash_profile /u01/app/oracle/
    cp /etc/skel/.bashrc /u01/app/oracle/
    nano ~/.bashrc
    

     .bashrc の内容を以下のように変更します。
     先頭の . (ドット) は忘れないように。これがないとスクリプト内で設定した環境変数が設定されません。(言い回しが難しい -_-;)

    # .bashrc
    
    # Source global definitions
    if [ -f /etc/bashrc ]; then
            . /etc/bashrc
    fi
    
    # Uncomment the following line if you don't like systemctl's auto-paging feature:
    # export SYSTEMD_PAGER=
    
    # User specific aliases and functions
    . /u01/app/oracle/product/11.2.0/xe/bin/oracle_env.sh
    
  11. Oracle への接続の確認をします。

    一旦 root に戻り、その後 oracle ユーザーで再接続してから oracle への接続を確認します。

    [oracle@localhost root]$ rlwrap sqlplus / as sysdba
    
    SQL*Plus: Release 11.2.0.2.0 Production on 金 12月 8 00:00:00 2017
    
    Copyright (c) 1982, 2011, Oracle.  All rights reserved.
    
    
    
    Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
    に接続されました。
    SQL> select status from v$instance;
    
    STATUS
    ------------
    OPEN
    
    SQL> 
    

     sqlplus の前に rlwrap を書かないと、カーソルキーを操作したとき謎の文字が表示されるので注意します。

    Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
    に接続されました。
    SQL> ^[[A
    

     面倒くさい、と思うようであれば .bashrc に alias を設定してください。

    alias sqlplus='rlwrap sqlplus'
    
  12. 外部からの接続確認をします。

     外部から接続する場合にはファイアウォールを適切な設定にします。今回は面倒なので停止にします。

    systemctl stop firewalld
    systemctl disable firewalld
    

     これで、外部からの接続に成功すれば OK です。
     以下は Windows のコマンドプロンプトからの接続の例です。

    C>sqlplus sys/管理者用のパスワード@xxx.xxx.xxx.xxx/xe as sysdba
    
    SQL*Plus: Release 12.1.0.1.0 Production on 金 12月 8 20:59:15 2017
    
    Copyright (c) 1982, 2013, Oracle.  All rights reserved.
    
    
    
    Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
    に接続されました。
    SQL>
    





カテゴリー: Linux, Oracle, OS, サーバー管理, データベース

Follow comments via the RSS Feed | Leave a comment | Trackback URL

コメントを投稿する

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)


«   »
 
Powered by Wordpress and MySQL. Theme by Shlomi Noach, openark.org