- Database Configuration Assistant(dbca) の起動
- データベース操作の選択 1/14
- データベース作成モードの選択 2/14
- データベース・デプロイメント・タイプの選択 3/14
- データベースIDの詳細指定 4/14
- データベース記憶域オプションの選択 5/14
- 高速リカバリ・オプションの選択 6/14
- ネットワーク構成詳細の指定 7/14
- Oracle Data Vault構成オプションの選択 8/15
- 構成オプションの指定 9/15
- 管理オプションの指定 10/15
- データベース作成オプションの選択 12/15
- サマリー 13/15
- 進行状況ページ 14/15
- 終了 15/15
- oracleユーザの環境変数追記
OracleLinux7.3インストール
Install Oracle Linux 7.3選択 |
日本語![]() |
サーバGUIとFTPサーバを選択 GUIは当該ホストでOracleDB設定が可能だから。FTPはDBインストールファイルを転送したいから |
パーティーション設定 ここでは/boot / swapのみで構成しほとんどを/に充てた |
ネットワークとホスト名![]() |
![]() |
rootパスワードの設定![]() |
再起動 |
ライセンス規約に合意チェック![]() |
![]() |
OSの設定
hosts設定
1 2 3 |
# cat /etc/hosts 127.0.0.1 vmdb1016 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 vmdb1016 localhost localhost.localdomain localhost6 localhost6.localdomain6 |
SELINUX無効設定(セキュリティリスクあり)
1 2 3 4 5 6 7 8 9 10 11 12 |
vi /etc/selinux/config # 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 #SELINUX=enforcing # SELINUXTYPE= can take one of these two values: # targeted - Targeted processes are protected, # mls - Multi Level Security protection. SELINUXTYPE=targeted |
起動カーネル
Hyper-V仮想マシンとして構築しているためUEKは用いずRedHat互換カーネルを選択する
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# cat /etc/oracle-release Oracle Linux Server release 7.4 # uname -a Linux vmdb1016 4.1.12-94.5.9.el7uek.x86_64 #2 SMP Tue Aug 15 13:56:37 PDT 2017 x86_64 x86_64 x86_64 GNU/Linux Hyper-V上で稼働させるためUEKではなくRedHat互換カーネルで常時起動出来るようにする # grep "^menuentry" /boot/grub2/grub.cfg | cut -d "'" -f2 Oracle Linux Server (4.1.12-94.5.9.el7uek.x86_64 with Unbreakable Enterprise Kernel) 7.4 Oracle Linux Server (4.1.12-61.1.18.el7uek.x86_64 with Unbreakable Enterprise Kernel) 7.4 Oracle Linux Server (3.10.0-693.1.1.el7.x86_64 with Linux) 7.4 Oracle Linux Server (3.10.0-514.el7.x86_64 with Linux) 7.4 Oracle Linux Server (0-rescue-d31eee8d6d8842d0853fc9ac817939d4 with Linux) 7.4 または # grep ^menuentry /boot/grub2/grub.cfg | awk -F\' '{print $2}' | nl -v0 0 Oracle Linux Server (4.1.12-94.5.9.el7uek.x86_64 with Unbreakable Enterprise Kernel) 7.4 1 Oracle Linux Server (4.1.12-61.1.18.el7uek.x86_64 with Unbreakable Enterprise Kernel) 7.4 2 Oracle Linux Server (3.10.0-693.1.1.el7.x86_64 with Linux) 7.4 3 Oracle Linux Server (3.10.0-514.el7.x86_64 with Linux) 7.4 4 Oracle Linux Server (0-rescue-d31eee8d6d8842d0853fc9ac817939d4 with Linux) 7.4 現在の起動カーネル=0番 # grub2-editenv list saved_entry=0 デフォルトの起動を2番にする(RedHat互換) # grub2-set-default 2 ⇒Oracle Linux Server (3.10.0-693.1.1.el7.x86_64 with Linux) 7.4 確認 # grub2-editenv list saved_entry=2 OSの再起動 RedHat互換カーネルで起動していることを確認 $ uname -a Linux vmdb1016 3.10.0-693.1.1.el7.x86_64 #1 SMP Tue Aug 15 06:03:19 PDT 2017 x86_64 x86_64 x86_64 GNU/Linux |
便利に使うためのアプリケーションなどインストール・設定
FTPサーバ | vsftpd.conf |
NTPサーバ | ntp.conf |
VNCサーバ | |
iptable | |
各種DAEMON | 起動制御 |
OSアップデート
1 |
# yum update |
OracleDBインストール前準備
必要パッケージ・設定ファイルが一度に出来る便利rpm適用
1 |
yum install oracle-database-server-12cR2-preinstall.x86_64 |
必要パッケージ
上記rpm適用だけではマニュアル掲載のパッケージが入っていないので1つずつ確認しながら足りない物を入れていく。主にi686(必要なのか?)が入っていない。
要求
binutils-2.20.51.0.2-5.36.el6 (x86_64)
compat-libcap1-1.10-1 (x86_64)
compat-libstdc++-33-3.2.3-69.el6 (x86_64)
compat-libstdc++-33-3.2.3-69.el6 (i686)
e2fsprogs-1.42.8-1.0.2.el6.x86_64
e2fsprogs-libs-1.42.8-1.0.2.el6.x86_64
glibc-2.12-1.7.el6 (i686)
glibc-2.12-1.7.el6 (x86_64)
glibc-devel-2.12-1.7.el6 (x86_64)
glibc-devel-2.12-1.7.el6 (i686)
ksh
libgcc-4.4.4-13.el6 (i686)
libgcc-4.4.4-13.el6 (x86_64)
libs-1.42.8-1.0.2.el6.x86_64
libstdc++-4.4.4-13.el6 (x86_64)
libstdc++-4.4.4-13.el6 (i686)
libstdc++-devel-4.4.4-13.el6 (x86_64)
libstdc++-devel-4.4.4-13.el6 (i686)
libaio-0.3.107-10.el6 (x86_64)
libaio-0.3.107-10.el6 (i686)
libaio-devel-0.3.107-10.el6 (x86_64)
libaio-devel-0.3.107-10.el6 (i686)
libXtst-1.0.99.2 (x86_64)
libXtst-1.0.99.2 (i686)
libX11-1.5.0-4.el6 (i686)
libX11-1.5.0-4.el6 (x86_64)
libXau-1.0.6-4.el6 (i686)
libXau-1.0.6-4.el6 (x86_64)
libxcb-1.8.1-1.el6 (i686)
libxcb-1.8.1-1.el6 (x86_64)
libXi-1.3 (x86_64)
libXi-1.3 (i686)
make-3.81-19.el6
sysstat-9.0.4-11.el6 (x86_64)
smartmontools-5.43-1.el6.x86_64
カーネルパラメータ確認
oracle-database-server-12cR2-preinstallをインストールしているので以下は自動で設定されていた。
# vi /etc/sysctl.conf
要求 | インストール後 |
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 |
fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 1073741824 kernel.shmmax = 4398046511104 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 |
念のためカーネルパラメータの反映をインストールガイド通りに行う
1 |
# /sbin/sysctl -p |
OSグループの作成
1 2 3 4 5 6 7 |
# groupadd -g 54321 oinstall # groupadd -g 54322 dba # groupadd -g 54323 oper # groupadd -g 54324 backupdba # groupadd -g 54325 dgdba # groupadd -g 54326 kmdba # groupadd -g 54327 racdba |
OracleDatabaseOS用ユーザ作成・パスワード設定
oracle-database-server-12cR2-preinstallでoracleユーザは作成されていたがグループなどの設定はされていないのでインストールガイド通りに進める。
いったんoracleユーザとhomeディレクトリ削除後以下のコマンド
1 2 |
# useradd -u 1200 -g oinstall -G dba,oper,backupdba,dgdba,kmdba,racdba -d /home/oracle oracle # passwd oracle |
インストールディレクトリ準備
1 2 3 4 |
# mkdir -p /u01/app/oracle # chown oracle:oinstall /u01/app/oracle //oraInventoryが出来ないと怒られたので所有権を以下のとおりにした # chown -R oracle:oinstall /u01 # chmod -R 775 /u01 |
ユーザoracleの環境リソース設定
1 2 3 4 5 6 7 |
# 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でrunInstallerを起動
セキュリティ・アップデートの構成 1/9
はい(Y)
インストール・オプション 2/9
データベース・ソフトウエアのみインストールを選択
データベース・インストール・オプションの選択 3/9
単一インスタンス・データベースのインストール を選択
データベース・エディションの選択 4/10
インストール場所の指定5/10
インベントリの作成 6/10
oraInventoryディレクトリを作れないという意味のエラーメッセージ
手順通り行っていますが、自構築環境ではエラーで進めません。
ディレクトリの作成と権限付与をする
1 2 3 4 |
# pwd /u01/app # mkdir oraInventory # chown -R oracle:oinstall /u01/app/oraInventory |
権限のあるオペレーティング・システム・グループ7/11
サマリー9/11
製品のインストール 10/11
rootスクリプトの実行
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# /u01/app/oraInventory/orainstRoot.sh 権限を変更中 /u01/app/oraInventory. グループの読取り/書込み権限を追加中。 全ユーザーの読取り/書込み/実行権限を削除中。 グループ名の変更 /u01/app/oraInventory 宛先 oinstall. スクリプトの実行が完了しました。 # /u01/app/oracle/product/12.2.0/dbhome_1/root.sh Performing root user operation. The following environment variables are set as: ORACLE_OWNER= oracle ORACLE_HOME= /u01/app/oracle/product/12.2.0/dbhome_1 Enter the full pathname of the local bin directory: [/usr/local/bin]: Copying dbhome to /usr/local/bin ... Copying oraenv to /usr/local/bin ... Copying coraenv to /usr/local/bin ... Creating /etc/oratab file... Entries will be added to the /etc/oratab file as needed by Database Configuration Assistant when a database is created Finished running generic part of root script. Now product-specific root actions will be performed. Do you want to setup Oracle Trace File Analyzer (TFA) now ? yes|[no] : Oracle Trace File Analyzer (TFA - User Mode) is available at : /u01/app/oracle/product/12.2.0/dbhome_1/suptools/tfa/release/tfa_home/bin/tfactl OR Oracle Trace File Analyzer (TFA - Daemon Mode) can be installed by running this script : /u01/app/oracle/product/12.2.0/dbhome_1/suptools/tfa/release/tfa_home/install/roottfa.sh |
終了 11/11
oracleユーザの環境変数設定
1 2 3 4 5 6 7 8 |
$ vi .bash_profile #追記 umask 022 export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=/u01/app/oracle/product/12.2.0/dbhome_1 export PATH=$ORACLE_HOME/bin:$PATH export LANG=ja_JP.UTF-8 export NLS_LANG=Japanese_Japan.AL32UTF8 |
データベースの作成
Database Configuration Assistant(dbca) の起動
データベース操作の選択 1/14
データベースの作成
データベース作成モードの選択 2/14
拡張構成
データベース・デプロイメント・タイプの選択 3/14
データベースIDの詳細指定 4/14
従来型とするためにコンテナ・データベースのチェックは外す
データベース記憶域オプションの選択 5/14
高速リカバリ・オプションの選択 6/14
ネットワーク構成詳細の指定 7/14
LISTENERをここで作れるはずなのだがポートを使っているというエラーメッセージが出て作ることが出来ない為、ここでは作成せずに進む。
Oracle Data Vault構成オプションの選択 8/15
構成オプションの指定 9/15
キャラクタセット
メモリー
管理オプションの指定 10/15
リスナー構成が、、、はい
データベース作成オプションの選択 12/15
サマリー 13/15
進行状況ページ 14/15
終了 15/15
oracleユーザの環境変数追記
1 |
export ORACLE_SID=ORCL016 |
LISTENERを構成
インストール途中での新規作成が出来なかったためnetcaでLISTENERを作成する。ここで作成するよりも、データベースをインストールした直後がよかったかも。
やはりポートが使用中とあるがかまわず はい
LISTENERの起動
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
$ lsnrctl start LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 17-8月 -2017 14:13:30 Copyright (c) 1991, 2016, Oracle. All rights reserved. /u01/app/oracle/product/12.2.0/dbhome_1/bin/tnslsnrを起動しています。お待ちくだ さい... TNSLSNR for Linux: Version 12.2.0.1.0 - Production システム・パラメータ・ファイルは/u01/app/oracle/product/12.2.0/dbhome_1/network/admin/listener.oraです。 ログ・メッセージを/u01/app/oracle/diag/tnslsnr/vmdb1016/listener/alert/log.xmlに書き込みました。 リスニングしています: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=vmdb1016)(PORT=1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=vmdb1016)(PORT=1521)))に接続中 リスナーのステータス ------------------------ 別名 LISTENER バージョン TNSLSNR for Linux: Version 12.2.0.1.0 - Production 開始日 17-8月 -2017 14:13:31 稼働時間 0 日 0 時間 0 分 0 秒 トレース・レベル off セキュリティ ON: Local OS Authentication SNMP OFF パラメータ・ファイル /u01/app/oracle/product/12.2.0/dbhome_1/network/admin/listener.ora ログ・ファイル /u01/app/oracle/diag/tnslsnr/vmdb1016/listener/alert/log.xml リスニング・エンドポイントのサマリー... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=vmdb1016)(PORT=1521))) リスナーはサービスをサポートしていません。 コマンドは正常に終了しました。 |
OEM ORACLE Enterprize Manager
稼働確認
sys SYSDBA権限で
OEMで表領域・ユーザを作成
SQL発行でも当然可能(というかこちらが本流?)ですが、10gのころからOEMで作っているので今回もOEMで作ります。
ユーザログイン環境
ユーザの有効期限を無期限化
デフォルトだと180日間が有効期限。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
$ sqlplus /nolog $ connect /as sysdba 変更前 SQL> select u.username, u.profile, p.resource_name,p.limit 2 from dba_users u, dba_profiles p 3 where u.profile = p.profile and p.resource_name = 'PASSWORD_LIFE_TIME' 4 and u.username='ユーザ名'; USERNAME -------------------------------------------------------------------------------- PROFILE -------------------------------------------------------------------------------- RESOURCE_NAME -------------------------------------------------------------------------------- LIMIT -------------------------------------------------------------------------------- ユーザ名 DEFAULT PASSWORD_LIFE_TIME 180 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
変更後 SQL> alter profile DEFAULT limit PASSWORD_LIFE_TIME unlimited; USERNAME -------------------------------------------------------------------------------- PROFILE -------------------------------------------------------------------------------- RESOURCE_NAME -------------------------------------------------------------------------------- LIMIT -------------------------------------------------------------------------------- ユーザ名ユーザ名 DEFAULT PASSWORD_LIFE_TIME UNLIMITED |
パスワードの大文字小文字区分を撤廃(リスクあり)
1 2 |
SQL> ALTER SYSTEM SET SEC_CASE_SENSITIVE_LOGON = FALSE; システムが変更されました。 |
これだけでは解決出来ずsqlnet.oraの設定が必要 とても悩んだ箇所。。。。
sqlplusでもログインが出来ない。。。ORA-01017頻発でユーザlockしてしまう。。
1 2 3 4 5 |
$ sqlplus ユーザ名/パスワード SQL*Plus: Release 12.2.0.1.0 Production on 金 8月 25 11:04:28 2017 Copyright (c) 1982, 2016, Oracle. All rights reserved. ERROR: ORA-01017: ユーザー名/パスワードが無効です。ログオンは拒否されました。 |
ここを見ながら対処 sqlnet.oraは一行だけなのでエディタで作成
1 2 3 4 5 |
$ pwd /u01/app/oracle/product/12.2.0/dbhome_1/network/admin $ vi sqlnet.ora SQLNET.ALLOWED_LOGON_VERSION_SERVER=11 |
該当ユーザのパスワード再設定
1 |
SQL> alter user ユーザ名 identified by パスワード; |
1 2 3 4 5 6 7 8 |
SQL> select username, password_versions from DBA_USERS where username='ユーザ名'; USERNAME -------------------------------------------------------------------------------- PASSWORD_VERSIONS --------------------------------------------------- ユーザ名 10G 11G 12C |
接続が出来た
1 2 3 4 5 6 |
$ sqlplus ユーザ名/パスワード SQL*Plus: Release 12.2.0.1.0 Production on 金 8月 25 11:10:01 2017 Copyright (c) 1982, 2016, Oracle. All rights reserved. Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production に接続されました。 |
データベース自動起動する
ここが本家の説明
oratabの編集
N⇒Yとする。最初からYで良いと思うが、、
1 2 |
# vi /etc/oratab ORCL016:/u01/app/oracle/product/12.2.0/dbhome_1:Y |
自動起動スクリプト
systemdでの公式な解説が無かったので従来のinit.dでの自動起動した。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# vi /etc/init.d/dbora #! /bin/sh # description: Oracle auto start-stop script. # # Set ORACLE_HOME to be equivalent to the $ORACLE_HOME # from which you wish to execute dbstart and dbshut; # # Set ORA_OWNER to the user id of the owner of the # Oracle database in ORACLE_HOME. ORA_HOME=/u01/app/oracle/product/12.2.0/dbhome_1 ORA_OWNER=oracle case "$1" in 'start') # Start the Oracle databases: # The following command assumes that the oracle login # will not prompt the user for any values # Remove "&" if you don't want startup as a background process. su - $ORA_OWNER -c "$ORA_HOME/bin/dbstart $ORA_HOME" & touch /var/lock/subsys/dbora ;; 'stop') # Stop the Oracle databases: # The following command assumes that the oracle login # will not prompt the user for any values su - $ORA_OWNER -c "$ORA_HOME/bin/dbshut $ORA_HOME" & rm -f /var/lock/subsys/dbora ;; esac |
グループと権限
1 2 |
# chgrp dba dbora # chmod 750 dbora |
シンボリックリンク作成
1 2 3 |
# ln -s /etc/init.d/dbora /etc/rc.d/rc0.d/K01dbora # ln -s /etc/init.d/dbora /etc/rc.d/rc3.d/S99dbora # ln -s /etc/init.d/dbora /etc/rc.d/rc5.d/S99dbora |
dbshut後OS再起動をしてデータベースが起動していることを確認する。
datapump環境設定
ディレクトリ作成
1 |
# mkdir /dmp_backup |
OracleDBでのディレクトリ作成
1 2 3 4 |
SQL> CREATE DIRECTORY DumpDir as '/dmp_backup'; ディレクトリが作成されました。 SQL> CREATE DIRECTORY LogDir as '/dmp_backup'; ディレクトリが作成されました。 |
都度スナップショットを取りながら構築
仮想マシンで構築するときにとても便利なスナップショット。細かく取得しておけば気軽に戻れます。ディスク容量増大となりますが、現環境では問題になりません。
コメント