Oracle12cR2をインストールしていく2/4【自宅検証用】
Oracle Linuxインストール後の設定を実施していきます。
OS側の設定ですね。
OSの基本的な設定とOracleをインストールするための設定を記載していきます。
先に書きますが、NTPだけは設定していないので、別の機会に設定したいと思います。
それでは始めていきたいと思います。
OS設定作業
まずは今回は検証なので、GUIからネットワークの設定を実施していきます。
本番環境では、/etc/sysconfig/network-scripts/配下のファイルを直接設定します。
NetworkManagerを使わないとか、そういう制約があるのですがここら辺はOSの記事で書きたいと思います。
ネットワーク設定
以下、有線で【オフ】になっているデバイスをクリックします。
画面の通り、【自動接続】にチェックをいれます。
直接ファイルをいじる場合のonbootですね。
IPv4の設定を実施します。
今回は以下のように設定しました。
ゲートウェイとDNSは、NATしてインタ―ネットに出るためのルータを指定しています。
ESXで構成する場合、ESXのデフォルトゲートもこのルータになります。
IPv6は使う理由がありません。
という事で無効化して完了です。
最後にネットワークサービスをリスタートします。
(chkconfig依存症がようやく解消してきました)
ターミナルソフトの設定
Oracleとは直接関係ないですが、ターミナルソフトではRLoginがお勧めです。
今回構築しているサーバを接続先に登録します。
クリップボードはTeratermなどと同様にコピペを効率化するために以下の設定をすればOKです。
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機能を使っています。
正常にコピーが完了しました。
[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の設定が完了したので後はインストールのみです。
しかし、問題も発生したので、それも書いていきたいと思います。