二楷堂昴の人生忙しい

二楷堂昴の人生忙しい

二楷堂昴が技術者のために技術知識を書いていきます

Oracle12cR2をインストールしていく2/4【自宅検証用】

Oracle Linuxインストール後の設定を実施していきます。
OS側の設定ですね。

OSの基本的な設定とOracleをインストールするための設定を記載していきます。

先に書きますが、NTPだけは設定していないので、別の機会に設定したいと思います。
それでは始めていきたいと思います。

OS設定作業


まずは今回は検証なので、GUIからネットワークの設定を実施していきます。
本番環境では、/etc/sysconfig/network-scripts/配下のファイルを直接設定します。
NetworkManagerを使わないとか、そういう制約があるのですがここら辺はOSの記事で書きたいと思います。

ネットワーク設定

以下、有線で【オフ】になっているデバイスをクリックします。

f:id:nikaidosubaru:20180320221338j:plain



画面の通り、【自動接続】にチェックをいれます。
直接ファイルをいじる場合のonbootですね。

f:id:nikaidosubaru:20180320221510j:plain



IPv4の設定を実施します。
今回は以下のように設定しました。
ゲートウェイDNSは、NATしてインタ―ネットに出るためのルータを指定しています。
ESXで構成する場合、ESXのデフォルトゲートもこのルータになります。

f:id:nikaidosubaru:20180320221613j:plain



IPv6は使う理由がありません。
という事で無効化して完了です。

f:id:nikaidosubaru:20180320221749j:plain



最後にネットワークサービスをリスタートします。
(chkconfig依存症がようやく解消してきました)

f:id:nikaidosubaru:20180320221855j:plain


ターミナルソフトの設定


Oracleとは直接関係ないですが、ターミナルソフトではRLoginがお勧めです。
今回構築しているサーバを接続先に登録します。

f:id:nikaidosubaru:20180320221945j:plain



クリップボードTeratermなどと同様にコピペを効率化するために以下の設定をすればOKです。

f:id:nikaidosubaru:20180320222134j:plain

OS基礎設定

それでは接続して確認してみましょう。
ゲートウェイなど間違えていると接続できないので、上手く行かない人は確認しましょう。
ログインしてIPを確認します。

[root@localhost ~]# ip a sh
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether 00:0c:29:70:b9:8a brd ff:ff:ff:ff:ff:ff
    inet 192.168.11.20/24 brd 192.168.11.255 scope global ens192
       valid_lft forever preferred_lft forever
    inet6 2404:7a80:2c60:be00:20c:29ff:fe70:b98a/64 scope global mngtmpaddr dynamic 
       valid_lft 2591941sec preferred_lft 604741sec
    inet6 fe80::20c:29ff:fe70:b98a/64 scope link 
       valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN 
    link/ether 52:54:00:5e:1d:06 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN qlen 500
    link/ether 52:54:00:5e:1d:06 brd ff:ff:ff:ff:ff:ff
[root@localhost ~]# 


正常にIPアドレスが設定できています。
ではサクサクいきます。
ホスト名を設定します。
今回は以下で設定していきます。

 [root@localhost ~]# hostnamectl set-hostname oracle12c_single


hostsを書き換えます。
これをしないと、OracleDBのインストールでエラーになります。

[root@localhost ~]# vi /etc/hosts


以下を追加します。
(後々エラーになるので、それも書きます)

192.168.11.20 oracle12c_single oracle12c localhost


次にSELinuxを無効化します。
こいつはアプリケーションなどに影響を与えることもありますが、DMZ上に構築する際は無暗に無効にするのは危険です。
今回は検証用かつNATするので無効化でOKです。

[root@localhost ~]# vi /etc/sysconfig/selinux
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled  #Disableへ変更する
# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted


一旦リブートします。
ホスト名やSElinuxの設定反映に再起動が必須です。

[root@localhost ~]# shutdown -r now


ちなみに、VMware toolsを入れてないと思いましたが、ESX6系ではデフォルトで入るようです。

[root@oracle12c_single ~]# ps -ef | grep toolsd
root       792     1  0 20:42 ?        00:00:00 /usr/bin/vmtoolsd
root      1713  1651  0 20:43 pts/0    00:00:00 grep --color=auto toolsd
[root@oracle12c_single ~]# 


不要なサービスを停止、自動起動から削除していきます。
Firewalldは先ほどのSELinuxと同じで、DMZ上に出すのであれば止めるのは危険です。

systemctl stop abrtd
systemctl disable abrtd
systemctl stop abrt-service
systemctl disable abrt-service
systemctl stop firewalld
systemctl disable firewalld
systemctl stop avahi-daemon.socket
systemctl disable avahi-daemon.socket
systemctl stop avahi-daemon
systemctl disable avahi-daemon

Oracleインストール用の設定

ここからはOracleインストール用に設定を修正していきます。
まずはカーネルパラメータを設定します。

[root@oracle12c_single ~]# vi /etc/sysctl.conf


以下の値を追記します。
設定理由が知りたければ、手っ取り早いのは設定をせずにOracleのインストールをすれば分かります。(投げやり)

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


以下のコマンドで即時反映です。

[root@oracle12c_single ~]# sysctl -p
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
[root@oracle12c_single ~]# 


次はOSのグループを作成します。
Oracle社のドキュメントのコピペですね。

[root@oracle12c_single ~]# groupadd -g 54321 oinstall
[root@oracle12c_single ~]# groupadd -g 54322 dba
[root@oracle12c_single ~]# groupadd -g 54323 backupdba
[root@oracle12c_single ~]# groupadd -g 54324 oper
[root@oracle12c_single ~]# groupadd -g 54325 dgdba
[root@oracle12c_single ~]# groupadd -g 54326 kmdba
[root@oracle12c_single ~]# groupadd -g 54327 asmdba
[root@oracle12c_single ~]# groupadd -g 54328 asmoper
[root@oracle12c_single ~]# groupadd -g 54329 asmadmin
[root@oracle12c_single ~]# groupadd -g 54330 racdba


次に、oracleユーザを作成します。
そしてパスワードも設定します。

useradd -u 1200 -g oinstall -G dba,oper,backupdba,dgdba,kmdba,asmdba,racdba -d /home/oracle oracle
[root@oracle12c_single ~]# passwd oracle
ユーザー oracle のパスワードを変更。
新しいパスワード:
よくないパスワード: このパスワードには一部に何らかの形でユーザー名が含まれています。
新しいパスワードを再入力してください:
passwd: すべての認証トークンが正しく更新できました。
[root@oracle12c_single ~]# 


Oracle用のディレクトリを作成します。
漏れなく権限も変更します。

[root@oracle12c_single ~]# mkdir -p /u01/app/oracle
[root@oracle12c_single ~]# chown -R oracle:oinstall /u01


次はリソース制限を修正します。
これはOracleに限らず使う事が多い設定です。

[root@oracle12c_single ~]# vi /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

必要なパッケージの導入

次は必要なパッケージ類を入れていきます。
Oracle Linuxのメディアをマウントしましょう。
また、rpmで不要なパッケージを入れないようにするのがSIerのやり方ですが、かなり非効率なのでyumでいきます。

最初に、メディアのリポジトリを作成します。

[root@dns ~]# cat /etc/yum.repos.d/dvd.repo
[dvd]
name=dvd
baseurl='file:///run/media/root/OL-7.4 Server.x86_64/'
gpcheck=0
enabled=0
gpgkey=file:'///run/media/root/OL-7.4 Server.x86_64/RPM-GPG-KEY-oracle'


作成したdvdリポジトリを指定して、パッケージを入れていきます。
最初なのでログも含めて全文載せます。

[root@oracle12c_single Packages]# yum --disablerepo=* --enablerepo=dvd install kernel-devel  libstdc++-devel -y
読み込んだプラグイン:langpacks, ulninfo
dvd                                                                                        | 3.6 kB  00:00:00     
(1/2): dvd/group_gz                                                                        | 136 kB  00:00:00     
(2/2): dvd/primary_db                                                                      | 4.7 MB  00:00:00     
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ kernel-devel.x86_64 0:3.10.0-693.el7 を インストール
---> パッケージ libstdc++-devel.x86_64 0:4.8.5-16.el7 を インストール
--> 依存性解決を終了しました。

依存性を解決しました

==================================================================================================================
 Package                         アーキテクチャー       バージョン                      リポジトリー         容量
==================================================================================================================
インストール中:
 kernel-devel                    x86_64                 3.10.0-693.el7                  dvd                  14 M
 libstdc++-devel                 x86_64                 4.8.5-16.el7                    dvd                 1.5 M

トランザクションの要約
==================================================================================================================
インストール  2 パッケージ

総ダウンロード容量: 16 M
インストール容量: 44 M
Downloading packages:
警告: /run/media/root/OL-7.4 Server.x86_64/Packages/kernel-devel-3.10.0-693.el7.x86_64.rpm: ヘッダー V3 RSA/SHA256 Signature、鍵 ID ec551f03: NOKEY
kernel-devel-3.10.0-693.el7.x86_64.rpm の公開鍵がインストールされていません
------------------------------------------------------------------------------------------------------------------
合計                                                                               48 MB/s |  16 MB  00:00:00     
file:///run/media/root/OL-7.4%20Server.x86_64/RPM-GPG-KEY-oracle から鍵を取得中です。
Importing GPG key 0xEC551F03:
 Userid     : "Oracle OSS group (Open Source Software group) <build@oss.oracle.com>"
 Fingerprint: 4214 4123 fecf c55b 9086 313d 72f9 7b74 ec55 1f03
 From       : /run/media/root/OL-7.4%20Server.x86_64/RPM-GPG-KEY-oracle
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中          : libstdc++-devel-4.8.5-16.el7.x86_64                                               1/2 
  インストール中          : kernel-devel-3.10.0-693.el7.x86_64                                                2/2 
  検証中                  : kernel-devel-3.10.0-693.el7.x86_64                                                1/2 
  検証中                  : libstdc++-devel-4.8.5-16.el7.x86_64                                               2/2 

インストール:
  kernel-devel.x86_64 0:3.10.0-693.el7                    libstdc++-devel.x86_64 0:4.8.5-16.el7                   

完了しました!
[root@oracle12c_single Packages]#


成功したら、他に必要なパッケージも全て入れています。
ログは長いだけの無用の長物なので省略します。

[root@oracle12c_single Packages]# yum --disablerepo=* --enablerepo=dvd install compat-libcap1 compat-libstdc++-33 
gcc-c++ ksh libaio-devel -y


最後に、OracleLinuxのPackageディレクトリへ移動して以下のファイルをインストールします。
これ、CentOSなどではファイルで持ってこないと取得できないので要注意です。

[root@oracle12c_single ]#cd /run/media/root/OL-7.4\ Server.x86_64/Packages/
[root@oracle12c_single Packages]# rpm -Uvh oracle-database-server-12cR2-preinstall-1.0-3.el7.x86_64.rpm 
準備しています...              ################################# [100%]
更新中 / インストール中...
   1:oracle-database-server-12cR2-prei################################# [100%]
[root@oracle12c_single Packages]# 

Oracleインストール準備

ここまで来たらあとはインストール作業です。
ですが、その前に環境変数を設定しておきます。

oracleユーザへスイッチします。

[root@oracle12c_single ~]# su - oracle


ログイン時のデフォルト環境変数を変えるためにbash_profileを編集します。

[oracle@oracle12c_single ~]$ vi .bash_profile 


以下に設定します。
SIDはそれぞれの環境に合わせて変えましょう。

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

stty erase ^H

NLS_LANG=American_Japan.JA16EUCTILDE
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/oracle/product/12.2.0/dbhome
ORACLE_SID=orcl
LD_LIBRARY_PATH=$ORACLE_HOME/lib
PATH=$PATH:$HOME/.local/bin:$HOME/bin:$ORACLE_HOME/bin

export NLS_LANG ORACLE_BASE ORACLE_HOME ORACLE_SID LD_LIBRARY_PATH PATH

export PATH


終わったらrootに戻ってOracleのファイルを/tmpに持ってきます。
以下、RLoginのSFTP機能を使っています。

f:id:nikaidosubaru:20180320224228j:plain


正常にコピーが完了しました。

[root@oracle12c_single ~]# cd /tmp
[root@oracle12c_single tmp]# ls -ltr linuxamd64_12102_database_*
-rw-r--r-- 1 root root 1673544724 11月 20  2016 linuxamd64_12102_database_1of2.zip
-rw-r--r-- 1 root root 1014530602 11月 20  2016 linuxamd64_12102_database_2of2.zip


ファイルを解凍しますが、ログは長いので省略します。
そして解凍したディレクトリにoracleユーザへアクセス権を付与します。

[root@oracle12c_single tmp]# unzip linuxamd64_12102_database_1of2.zip
[root@oracle12c_single tmp]# unzip linuxamd64_12102_database_2of2.zip
[root@oracle12c_single tmp]# chown -R oracle:oinstall database/


今回はここまでです。
OSの設定が完了したので後はインストールのみです。

しかし、問題も発生したので、それも書いていきたいと思います。