概要
Oracle 19c はリレーショナル データベース管理システムであり、CentOS 7 は一般的な Linux オペレーティング システムです。場合によっては、CentOS 7 に Oracle 19c をインストールする必要があります。コマンド ライン サイレント インストールは、人間の介入を必要としないインストール方法であり、インストールを高速化し、エラーの可能性を減らすことができます。このインストール方法では、特定のコマンド ライン パラメーターと構成ファイルを使用して、インストール オプションと構成情報を指定する必要があります。このインストール方法は、Oracle 19c を複数のサーバーにインストールする必要がある状況に適しており、自動スクリプトによってバッチ インストールを実現できます。つまり、コマンド ラインのサイレント インストール方法を使用すると、CentOS 7 での Oracle 19c のインストール効率と精度を向上させることができ、価値のあるインストール方法です。
1. 環境
1.1. ローカル YUM ソースの設定
mount -t auto /dev/cdrom /mnt
rm -rf /etc/yum.repos.d/
mkdir -p /etc/yum.repos.d/
cat >> /etc/yum.repos.d/CentOS-Media.repo<<EOF
[c7-media]
name=CentOS-$releasever - Media
baseurl=file:///mnt/
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
EOF
yum clean all
yum makecache
1.2. 依存パッケージのインストール
yum -y install gcc make binutils gcc-c++ compat-libstdc++-33 elfutils-libelf-devel elfutils-libelf-devel-static elfutils-libelf-devel ksh libaio libaio-devel numactl-devel sysstat unixODBC unixODBC-devel pcre-devel libXext* unzip
1.3. ユーザーグループの作成
groupadd -g 1001 oinstall
groupadd -g 1002 dba
groupadd -g 1003 oper
groupadd -g 1004 asmdba
groupadd -g 1005 backupdba
groupadd -g 1006 dgdba
groupadd -g 1007 kmdba
groupadd -g 1008 racdba
useradd -u 1001 -m -g oinstall -G dba,oper,asmdba,backupdba,dgdba,kmdba,racdba oracle
id oracle
a=1
echo oracle:$a|chpasswd
1.4. ソフトウェアのインストールディレクトリとデータベースディレクトリの作成
mkdir -p /u01/app/oracle
chown -R oracle:oinstall /u01
chmod -R 775 /u01
mkdir -p /oracle/oinstall
chown -R oracle:oinstall /oracle
1.5. その他の条件を準備する
hostnamectl set-hostname oracle19c
cat >> /etc/hosts <<EOF
17.21.68.132 oracle19c
EOF
cat >> /etc/sysctl.conf <<EOF
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 6597069766656
kernel.panic_on_oops = 1
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
#net.ipv4.conf.eth3.rp_filter = 2
#net.ipv4.conf.eth2.rp_filter = 2
#net.ipv4.conf.eth0.rp_filter = 1
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500
EOF
cat >> /etc/security/limits.conf <<EOF
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 65536
oracle hard nofile 65536
EOF
cat >> /etc/pam.d/login <<EOF
session required /lib/security/pam_limits.so
EOF
cat >> /etc/profile <<EOF
if [ \$USER = "oracle" ]; then
if [ \$SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
EOF
cat >> /etc/csh.login <<EOF
if ( \$USER == "oracle" ) then
limit maxproc 16384
limit descriptors 65536
umask 022
endif
EOF
cat >>/home/oracle/.bash_profile<<EOF
unset USERNAME
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=\$ORACLE_BASE/product/18.0/db
export ORACLE_SID=orcl
export PATH=\$PATH:\$HOME/bin:\$ORACLE_HOME/bin:\$ORA_CRS_HOME/bin:\$ORACLE_BASE/common/oracle/bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin
export ORACLE_PATH=\$ORACLE_BASE/common/oracle/sql:\$ORACLE_HOME/rdbms/admin
export ORACLE_TERM=xterm
export TNS_ADMIN=\$ORACLE_HOME/network/admin
export ORA_NLS10=\$ORACLE_HOME/nls/data
export LD_LIBRARY_PATH=\$ORACLE_HOME/lib
export LD_LIBRARY_PATH=\${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export CLASSPATH=\$ORACLE_HOME/JRE
export CLASSPATH=\${CLASSPATH}:\$ORACLE_HOME/jlib
export CLASSPATH=\${CLASSPATH}:\$ORACLE_HOME/rdbms/jlib
export CLASSPATH=\${CLASSPATH}:\$ORACLE_HOME/network/jlib
export THREADS_FLAG=native
export TEMP=/tmp
export TMPDIR=/tmp
umask=022
EOF
su - oracle
mkdir -p $ORACLE_HOME
exit
1.7、ファイアウォールとselinuxを閉じます。
systemctl status firewalld
systemctl stop firewalld
systemctl disable firewalld
sed -i 's/=enforcing/=disabled/g' /etc/selinux/config
setenforce 0
getenforce
1.8. データベースファイルを解凍します。
cd /oracle/
unzip LINUX.X64_190000_db_home.zip
/u01/app/oracle/product/19.0/db
2. データベースをインストールする
2.1. データベース ソフトウェアのインストール
cat >/tmp/db_install.rsp <<EOF
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v18.0.0
oracle.install.option=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oraInventory
ORACLE_HOME=/u01/app/oracle/product/19.0/db
ORACLE_BASE=/u01/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.OSDBA_GROUP=dba
oracle.install.db.OSOPER_GROUP=oper
oracle.install.db.OSBACKUPDBA_GROUP=backupdba
oracle.install.db.OSDGDBA_GROUP=dgdba
oracle.install.db.OSKMDBA_GROUP=kmdba
oracle.install.db.OSRACDBA_GROUP=racdba
EOF
[oracle@oracle19c db]$ ./runInstaller -silent -ignorePrereq -responseFile /tmp/db_install.rsp
Oracle データベース セットアップ ウィザードを起動しています...
[警告] [INS-13014] ターゲット環境は、いくつかのオプション要件を満たしていません。
原因: オプションの前提条件の一部が満たされていません。詳細についてはログを参照してください。installActions2022-04-04_03-47-48AM.log
アクション: 失敗した前提条件チェックのリストをログ (installActions2022-04-04_03-47-48AM.log) から特定します。次に、ログ ファイルまたはインストール マニュアルから、前提条件を満たす適切な構成を見つけて、手動で修正します。
このセッションの応答ファイルは次の場所にあります。
/u01/app/oracle/product/18.0/db/install/response/db_2022-04-04_03-47-48AM.rsp
このインストール セッションのログは次の場所にあります。
/tmp/InstallActions2022-04-04_03-47-48AM/installActions2022-04-04_03-47-48AM.log
root ユーザーとして、次のスクリプトを実行します。
1. /u01/app/oraInventory/orainstRoot.sh
2. /u01/app/oracle/product/18.0/db/root.sh
次のノードで /u01/app/oraInventory/orainstRoot.sh を実行します。
[オラクル19c]
次のノードで /u01/app/oracle/product/18.0/db/root.sh を実行します。
[オラクル19c]
ソフトウェアのセットアップは正常に完了しましたが、警告がありました。
インストール セッション ログを次の場所に移動しました。
/u01/app/oraInventory/logs/InstallActions2022-04-04_03-47-48AM
[root@oracle19c ~]# sh /u01/app/oraInventory/orainstRoot.sh
/u01/app/oraInventory の権限を変更します。
グループに読み取り、書き込み権限を追加します。
ワールドの読み取り、書き込み、実行権限を削除します。
/u01/app/oraInventory のグループ名を oinstall に変更します。
スクリプトの実行が完了しました。
[root@oracle19c ~]# sh /u01/app/oracle/product/18.0/db/root.sh
/u01/app/oracle/product/18.0/db/install/root_oracle19c_2022-04-04_03-49-19-555893641.log で root スクリプトの出力を確認してください。
3. サイレントに作成して監視する
netca -silent -responsefile /u01/app/oracle/product/18.0/db/assistants/netca/netca.rsp
[oracle@oracle19c db]$ netca -silent -responsefile /u01/app/oracle/product/18.0/db/assistants/netca/netca.rsp
コマンドライン引数の解析:
パラメータ「サイレント」= true
パラメータ「responsefile」 = /u01/app/oracle/product/18.0/db/assistants/netca/netca.rsp
コマンドライン引数の解析が完了しました。
Oracle Net Servicesの構成:
プロファイルの設定が完了しました。
Oracle Net リスナーの起動:
リスナー コントロールの実行:
/u01/app/oracle/product/18.0/db/bin/lsnrctl start LISTENER
リスナー制御が完了しました。
リスナーは正常に開始されました。
リスナーの設定が完了しました。
Oracle Net Servicesの構成は成功しました。終了コードは0です
4.pdbタイプのデータベースを作成する
4.1. PDB 応答ファイルの準備
mkdir /oradata
chown oracle:oinstall /oradata
touch /oracle/dbca_install.rsp
cat >/oracle/dbca_install.rsp<<EOF
responseFileVersion=/oracle/install/rspfmt_dbca_response_schema_v19.0
gdbName=orcl
sid=orcl
databaseConfigType=SI
createAsContainerDatabase=true
numberOfPDBs=1
pdbName=orclpdb
templateName=/u01/app/oracle/product/19.0/db/assistants/dbca/templates/General_Purpose.dbc
emExpressPort=5500
omsPort=0
characterSet=AL32UTF8
listeners=LISTENER
memoryPercentage=40
automaticMemoryManagement=false
totalMemory=0
datafileDestination =/oradata
EOF
cat /oracle/dbca_install.rsp
4.2、dbca データベース -pdb の構築
dbca -silent -createDatabase -responseFile /oracle/dbca_install.rsp
[oracle@oracle19c テンプレート]$ dbca -silent -createDatabase -responseFile /oracle/dbca_install.rsp
SYS ユーザーのパスワードを入力してください:
SYSTEM ユーザーのパスワードを入力してください:
PDBADMIN ユーザーのパスワードを入力してください:
データベース操作の準備
8%完了
データベースファイルのコピー
31%完了
Oracleインスタンスの作成と起動
32%完了
36%完了
40%完了
43%完了
46%完了
データベース作成の完了
51%完了
53%完了
54%完了
プラガブルデータベースの作成
58%完了
77%完了
構成後のアクションの実行
100%完了
データベースの作成が完了しました。詳細については、次のログファイルを確認してください。
/u01/app/oracle/cfgtoollogs/dbca/orcl。
データベース情報:
グローバルデータベース名:orcl
システム識別子(SID):orcl
詳細については、ログ ファイル「/u01/app/oracle/cfgtoollogs/dbca/orcl/orcl.log」を参照してください。
[oracle@oracle19c テンプレート]$ sqlplus / sysdba として
SQL*Plus: リリース 19.0.0.0.0 - 2022 年 4 月 4 日土曜日 04:05:11 に本番稼働
バージョン 19.3.0.0.0
著作権 (c) 1982、2018、Oracle。全著作権所有。
に接続されています:
Oracle Database 19c Enterprise Edition リリース 19.0.0.0.0 - 本番環境
バージョン 19.3.0.0.0
SQL> pdb を表示
CON_ID CON_NAME オープンモード制限あり
---------- ------------------------------ ---------- ----------
2 PDB$SEED 読み取り専用 いいえ
3 ORCLPDB 読み取り書き込みいいえ
5. 通常の図書館の建物 - pdb を除く
5.1. 応答ファイルの準備
cat >/oracle/dbca_nopdb.rsp<<EOF
responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v12.2.0
gdbName=oab
sid=oab
templateName=/u01/app/oracle/product/18.0/db/assistants/dbca/templates/General_Purpose.dbc
sysPassword=Oracle123
oracleHomeUserPassword=Oracle123
emExpressPort=5500
totalMemory=1500
sysPassword = Oracle123
systemPassword = Oracle123
datafileDestination =/oradata
characterSet =ZHS16GBK
nationalCharacterSet=AL16UTF16
databaseType = OLTP
automaticMemoryManagement = TRUE
EOF
5.2、dbca ビルド共通ライブラリ
dbca -silent -createDatabase -responseFile /oracle/dbca_nopdb.rsp
[oracle@oracle19c テンプレート]$ dbca -silent -createDatabase -responseFile /oracle/dbca_nopdb.rsp
SYS ユーザーのパスワードを入力してください:
SYSTEM ユーザーのパスワードを入力してください:
データベース操作の準備
10%完了
データベースファイルのコピー
40%完了
Oracleインスタンスの作成と起動
42%完了
46%完了
50%完了
54%完了
60%完了
データベース作成の完了
66%完了
69%完了
70%完了
構成後のアクションの実行
100%完了
データベースの作成が完了しました。詳細については、次のログファイルを確認してください。
/u01/app/oracle/cfgtoollogs/dbca/oab。
データベース情報:
グローバルデータベース名:oab
システム識別子(SID):oab
詳細については、ログ ファイル「/u01/app/oracle/cfgtoollogs/dbca/oab/oab.log」を参照してください。
[oracle@oracle19c テンプレート]$ sqlplus / sysdba として
SQL*Plus: リリース 19.0.0.0.0 - 2022 年 4 月 4 日土曜日 04:13:51 に本番稼働
バージョン 19.3.0.0.0
著作権 (c) 1982、2018、Oracle。全著作権所有。
に接続されています:
Oracle Database 19c Enterprise Edition リリース 19.0.0.0.0 - 本番環境
バージョン 19.3.0.0.0
SQL> pdb を表示
SQL>