Oracle Linuxは、Oracle社がRHELをベースにしたクローンOSです。今回、こちらのOSに対して、Oracle Database 19cをインストールしてみました。
(1) Oracle LinuxでOracle DB 19cをインストール(準備編)
(2) Oracle LinuxでOracle DB 19cをインストール(インストール編)
(3) Oracle LinuxでOracle DB 19cをインストール(DB構築編)
(4) Oracle LinuxでOracle DB 19cをインストール(自動起動編)
検証した環境
$ cat /etc/os-release
NAME="Oracle Linux Server"
VERSION="8.8"
ID="ol"
ID_LIKE="fedora"
VARIANT="Server"
VARIANT_ID="server"
VERSION_ID="8.8"
PLATFORM_ID="platform:el8"
PRETTY_NAME="Oracle Linux Server 8.8"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:oracle:linux:8:8:server"
HOME_URL="https://linux.oracle.com/"
BUG_REPORT_URL="https://bugzilla.oracle.com/"
ORACLE_BUGZILLA_PRODUCT="Oracle Linux 8"
ORACLE_BUGZILLA_PRODUCT_VERSION=8.8
ORACLE_SUPPORT_PRODUCT="Oracle Linux"
ORACLE_SUPPORT_PRODUCT_VERSION=8.8
$ uname -r
5.15.0-101.103.2.1.el8uek.x86_64
マウントポイントとディレクトリーについて
OracleDBには、OFA(Optimal Flexible Architecture)というものがあり、推奨されるディレクトリー構成というものがあります。
マニュアルに記載はありますが、私には難解で、結局どれがベストなのかわかりませんでした。
とりあえず、下記のようにしました。
マウントポイント | 主な用途 | パーミッション、所有者とグループ、ディレクトリーとファイル名 |
---|---|---|
/ora01 | OracleDB本体 | 755 root:root /ora01/ 755 root:root /ora01/app/ 755 oracle:oinstall /ora01/app/oracle/ 755 oracle:oinstall /ora01/app/oracle/product/ 755 oracle:oinstall /ora01/app/oracle/product/19.3.0/ 755 oracle:oinstall /ora01/app/oracle/product/19.3.0/dbhome_1/* 755 oracle:oinstall /ora01/app/oraInventory/ |
/ora02 | オンラインREDOログ-a 制御ファイル-1 | 755 root:root /ora02/ 755 root:root /ora02/app/ 755 oracle:oinstall /ora02/app/oracle/ 755 oracle:oinstall /ora02/app/oracle/oradata/ 755 oracle:oinstall /ora02/app/oracle/oradata/CDB名/ 644 oracle:oinstall /ora02/app/oracle/oradata/CDB名/control01.ctl 755 oracle:oinstall /ora02/app/oracle/oradata/CDB名/onlinelog/ 644 oracle:oinstall /ora02/app/oracle/oradata/CDB名/onlinelog/redo0[1-3]a.log |
/ora03 | オンラインREDOログ-b 制御ファイル-2 | 755 root:root /ora03/ 755 root:root /ora03/app/ 755 oracle:oinstall /ora03/app/oracle/ 755 oracle:oinstall /ora03/app/oracle/oradata/ 755 oracle:oinstall /ora03/app/oracle/oradata/CDB名/ 644 oracle:oinstall /ora03/app/oracle/oradata/CDB名/control02.ctl 755 oracle:oinstall /ora03/app/oracle/oradata/CDB名/onlinelog/ 644 oracle:oinstall /ora03/app/oracle/oradata/CDB名/onlinelog/redo0[1-3]b.log |
/ora04 | アーカイブREDOログ-1 | 755 root:root /ora04/ 755 root:root /ora04/app/ 755 oracle:oinstall /ora04/app/oracle/ 755 oracle:oinstall /ora04/app/oracle/admin/ 755 oracle:oinstall /ora04/app/oracle/admin/CDB名/ 755 oracle:oinstall /ora04/app/oracle/admin/CDB名/archivelog/ 644 oracle:oinstall /ora04/app/oracle/admin/CDB名/archivelog/%T-%S-%r.arc |
/ora05 | アーカイブREDOログ-2 | 755 root:root /ora05/ 755 root:root /ora05/app/ 755 oracle:oinstall /ora05/app/oracle/ 755 oracle:oinstall /ora05/app/oracle/admin/ 755 oracle:oinstall /ora05/app/oracle/admin/CDB名/ 755 oracle:oinstall /ora05/app/oracle/admin/CDB名/archivelog/ 644 oracle:oinstall /ora05/app/oracle/admin/CDB名/archivelog/%T-%S-%r.arc |
/ora06 | データファイル | 755 root:root /ora06/ 755 root:root /ora06/app/ 755 oracle:oinstall /ora06/app/oracle/ 755 oracle:oinstall /ora06/app/oracle/oradata/ 755 oracle:oinstall /ora06/app/oracle/oradata/CDB名/ 644 oracle:oinstall /ora06/app/oracle/oradata/CDB名/sysaux01.dbf 644 oracle:oinstall /ora06/app/oracle/oradata/CDB名/system01.dbf 644 oracle:oinstall /ora06/app/oracle/oradata/CDB名/temp01.dbf 644 oracle:oinstall /ora06/app/oracle/oradata/CDB名/undotbs01.dbf 644 oracle:oinstall /ora06/app/oracle/oradata/CDB名/users01.dbf 755 oracle:oinstall /ora06/app/oracle/oradata/CDB名/PDB名/ 644 oracle:oinstall /ora06/app/oracle/oradata/CDB名/PDB名/sysaux01.dbf 644 oracle:oinstall /ora06/app/oracle/oradata/CDB名/PDB名/system01.dbf 644 oracle:oinstall /ora06/app/oracle/oradata/CDB名/PDB名/temp01.dbf 644 oracle:oinstall /ora06/app/oracle/oradata/CDB名/PDB名/undotbs01.dbf 644 oracle:oinstall /ora06/app/oracle/oradata/CDB名/PDB名/users01.dbf |
/ora07 | 高速リカバリー 制御ファイル-3 | 755 root:root /ora07/ 755 root:root /ora07/app/ 755 oracle:oinstall /ora07/app/oracle/ 755 oracle:oinstall /ora07/app/oracle/fast_recovery_area/ 755 oracle:oinstall /ora07/app/oracle/fast_recovery_area/CDB名/ |
ホスト名の設定
ホスト名の設定を行い、その名称で名前解決ができるようにします。
ここでは、「/etc/hosts」ファイルに記述していますが、システム内にDNSサーバがあれば、そちらで名前解決ができるようになっていれば良いです。
$ hostnamectl
Static hostname: localhost.localdomain
: (省略)
$ su - root
Password:xxxxxxx
# hostnamectl set-hostname oracle
# hostnamectl
Static hostname: oracle ・・・ 「oracle」というホスト名
: (省略)
# echo "192.168.11.201 oracle oracle.orangetakam.com" >> /etc/hosts
# tail /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.11.201 oracle oracle.orangetakam.com
KVMのアンインストール
KVMは必要ありませんので、アンインストールを行います。アンインストールを行うことで仮想ブリッジの「virbr0」もなくなります。
KVMアンインストール前の状態
KVMがインストールされていると、「virbr0」というデバイスが存在していると思います。
$ nmcli device status
DEVICE TYPE STATE CONNECTION
ens192 ethernet connected ens192
virbr0 bridge connected (externally) virbr0
lo loopback unmanaged --
nfs_utilsのアンインストール時に/var/lib/nfs/rpc_pipefsが残ってしまう対処
KVMのアンインストールで、nfs_utilsというパッケージもアンインストールされますが、その際、「warning: directory /var/lib/nfs/rpc_pipefs: remove failed: Device or resource busy」と出力され、ディレクトリーが残ってしまうので、事前に対処しておきます。
$ systemctl status var-lib-nfs-rpc_pipefs.mount
* var-lib-nfs-rpc_pipefs.mount - RPC Pipe File System
Loaded: loaded (/usr/lib/systemd/system/var-lib-nfs-rpc_pipefs.mount; static; vendor preset: disabled)
Active: active (mounted) since Thu 2023-03-30 23:25:38 JST; 32min ago
Where: /var/lib/nfs/rpc_pipefs
What: sunrpc
Tasks: 0 (limit: 23499)
Memory: 16.0K
CGroup: /system.slice/var-lib-nfs-rpc_pipefs.mount
: (省略)
$ sudo systemctl stop var-lib-nfs-rpc_pipefs.mount
$ systemctl status var-lib-nfs-rpc_pipefs.mount
* var-lib-nfs-rpc_pipefs.mount - RPC Pipe File System
Loaded: loaded (/usr/lib/systemd/system/var-lib-nfs-rpc_pipefs.mount; static; vendor preset: disabled)
Active: inactive (dead) since Thu 2023-03-30 23:58:14 JST; 1s ago
Where: /var/lib/nfs/rpc_pipefs
What: sunrpc
: (省略)
KVMアンインストール
$ sudo dnf -y remove qemu-kvm
: (省略)
Complete!
マシンリブート
$ sudo systemctl reboot
KVMアンインストール後の状態
KVMをアンインストールすると「virbr0」が消えています。
$ nmcli device status
DEVICE TYPE STATE CONNECTION
ens192 ethernet connected ens192
lo loopback unmanaged --
インストール済みパッケージのアップデート
最新のパッケージにアップデートします。
$ sudo dnf -y update
: (省略)
Complete!
マシンリブート
$ sudo systemctl reboot
アップデート後の検証環境状態
$ cat /etc/os-release
NAME="Oracle Linux Server"
VERSION="8.8"
ID="ol"
ID_LIKE="fedora"
VARIANT="Server"
VARIANT_ID="server"
VERSION_ID="8.8"
PLATFORM_ID="platform:el8"
PRETTY_NAME="Oracle Linux Server 8.8"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:oracle:linux:8:8:server"
HOME_URL="https://linux.oracle.com/"
BUG_REPORT_URL="https://github.com/oracle/oracle-linux"
ORACLE_BUGZILLA_PRODUCT="Oracle Linux 8"
ORACLE_BUGZILLA_PRODUCT_VERSION=8.8
ORACLE_SUPPORT_PRODUCT="Oracle Linux"
ORACLE_SUPPORT_PRODUCT_VERSION=8.8
$ uname -r
5.15.0-105.125.6.2.1.el8uek.x86_64
OracleDB前提パッケージのインストール
OracleDBのインストール前に必要となるパッケージを事前にインストールします。
$ sudo dnf -y install bc binutils elfutils-libelf elfutils-libelf-devel fontconfig-devel glibc glibc-devel ksh libaio libaio-devel libXrender libX11 libXau libXi libXtst libgcc libnsl librdmacm libstdc++ libstdc++-devel libxcb libibverbs make policycoreutils policycoreutils-python-utils smartmontools sysstat
: (省略)
Complete!
OracleDBのグループとユーザーの作成
OracleDBで必要となるグループとユーザーの作成をします。
また、Oracleユーザーは、sudoコマンドでスーパーユーザー権限で実行できるようにしておきます。
$ sudo groupadd -g 54321 oinstall ・・・ Oracleインベントリーグループ
$ sudo groupadd -g 54322 dba ・・・ Oracle DatabaseのOSDBAグループ
$ sudo groupadd -g 54323 oper ・・・ Oracle DatabaseのOSOPERグループ
$ sudo groupadd -g 54324 backupdba ・・・ Oracle DatabaseのOSBACKUPDBAグループ
$ sudo groupadd -g 54325 dgdba ・・・ Oracle Data GuardのOSDGDBAグループ
$ sudo groupadd -g 54326 kmdba ・・・ 暗号化鍵を管理するOSKMDBAグループ
$ sudo groupadd -g 54327 asmdba ・・・ Oracle ASMのOSDBAグループ
$ sudo groupadd -g 54328 asmoper ・・・ Oracle ASMのOSOPERグループ
$ sudo groupadd -g 54329 asmadmin ・・・ Oracle ASM管理のOSASMグループ
$ sudo groupadd -g 54330 racdba ・・・ Oracle RACのOSRACDBAグループ
$ sudo useradd -u 54321 -g oinstall -G dba,oper,backupdba,dgdba,kmdba,racdba oracle ・・・ Oracleユーザーの作成
$ sudo passwd oracle
Changing password for user oracle.
New password: xxxxxxxx
Retype new password: xxxxxxxx
passwd: all authentication tokens updated successfully.
$ sudo gpasswd -a oracle wheel ・・・ sudoコマンドでスーパーユーザー権限で実行できるようにする
Adding user oracle to group wheel
$ su - oracle ・・・ 作成したoracleユーザーになる
Password: xxxxxxxx
$ sudo echo sudotest ・・・ 「echo sudotest」コマンドをスーパーユーザー権限で実行して確認
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
[sudo] password for oracle: xxxxxxxx
sudotest
カーネルパラメータの調整
OracleDBが推奨するカーネルパラメータの値を調整します。推奨値は、最低限の値であって、パフォーマンスをみながら、それよりも大きい値を設定したりします。
とりあえず、現在の値が推奨値より、小さいものを調整することとします。
カーネルパラメータ変更前の確認
$ LANG=ja_JP.UTF-8 ipcs -l
------ メッセージの制約 --------
システム全体での最大キュー数 = 32000
メッセージの最大サイズ (バイト) = 8192
キューの既定最大値 (バイト) = 16384
------ 共有メモリの制限 --------
セグメントの最大数 = 4096
最大セグメントサイズ (キロバイト) = 18014398509465599
共有メモリの最大合計値 (キロバイト) = 18014398509481980
最小セグメントサイズ (バイト) = 1
------ セマフォの制限 --------
最大配列数 = 32000 ・・・ SEMMNI
配列ごとの最大セマフォ数 = 32000 ・・・ SEMMSL
システム全体の最大セマフォ数 = 1024000000 ・・・ SEMMNS
semop 呼び出しごとの最大命令数 = 500 ・・・ SEMOPM
セマフォ最大値 = 32767
$ cat /proc/sys/fs/file-max ・・・ ファイルハンドルの最大数(オープンファイルの最大数)
362060
$ cat /proc/sys/kernel/sem ・・・ セマフォ <SEMMSL> <SEMMNS> <SEMOPM> <SEMMNI>
32000 1024000000 500 32000
$ cat /proc/sys/kernel/shmmni ・・・ 共有メモリー 1プロセスごとのセグメントの最大数
4096
$ cat /proc/sys/kernel/shmall ・・・ 共有メモリー システム全体の最大合計値(単位:バイト)
18446744073692774399
$ cat /proc/sys/kernel/shmmax ・・・ 共有メモリー 1プロセスごとのセグメントの最大値(単位:バイト)
18446744073692774399
$ cat /proc/sys/kernel/panic_on_oops ・・・ oops発生時にカーネルパニックにするかどうか(0:しない,1:する)
1
$ cat /proc/sys/net/core/rmem_default ・・・ デフォルト受信ソケットメモリー
212992
$ cat /proc/sys/net/core/rmem_max ・・・ 最大受信ソケットメモリー
212992
$ cat /proc/sys/net/core/wmem_default ・・・ デフォルト送信ソケットメモリー
212992
$ cat /proc/sys/net/core/wmem_max ・・・ 最大送信ソケットメモリー
212992
$ cat /proc/sys/net/ipv4/conf/all/rp_filter ・・・ 戻り経路フィルター(0:無効,1:RFC3704厳密モード,2:RFC3704緩やかモード)
1
$ cat /proc/sys/net/ipv4/conf/default/rp_filter
0
$ cat /proc/sys/fs/aio-max-nr ・・・ 非同期I/Oの最大数
65536
$ cat /proc/sys/net/ipv4/ip_local_port_range ・・・ システムが使用できるポートの範囲
32768 60999
カーネルパラメータの設定ファイル作成
/etc/sysctl.conf
ファイルは非推奨となっているので、/etc/sysctl.d/97-oracle-database-sysctl.confファイルを作成します。
設定値は、Oracle Database Preinstallation RPMで自動設定される内容をもとに設定しました。
$ sudo vi /etc/sysctl.d/97-oracle-database-sysctl.conf
fs.file-max = 6815744
#kernel.sem = 250 32000 100 128
#kernel.shmmni = 4096
#kernel.shmall = 2097152
#kernel.shmmax = 4294967295
#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.all.rp_filter = 2
net.ipv4.conf.default.rp_filter = 2
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500
カーネルパラメータの設定ファイルの正当性確認
設定ファイルの記述に問題がないかを反映させて確認します。
$ sudo sysctl --system
* Applying /usr/lib/sysctl.d/01-unprivileged-bpf.conf ...
kernel.unprivileged_bpf_disabled = 1
* Applying /usr/lib/sysctl.d/10-default-yama-scope.conf ...
kernel.yama.ptrace_scope = 0
* Applying /usr/lib/sysctl.d/50-coredump.conf ...
kernel.core_pattern = |/usr/lib/systemd/systemd-coredump %P %u %g %s %t %c %h %e
kernel.core_pipe_limit = 16
* Applying /usr/lib/sysctl.d/50-default.conf ...
kernel.sysrq = 16
kernel.core_uses_pid = 1
kernel.kptr_restrict = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.all.promote_secondaries = 1
net.core.default_qdisc = fq_codel
fs.protected_hardlinks = 1
fs.protected_symlinks = 1
* Applying /usr/lib/sysctl.d/50-libkcapi-optmem_max.conf ...
net.core.optmem_max = 81920
* Applying /usr/lib/sysctl.d/50-pid-max.conf ...
kernel.pid_max = 4194304
* Applying /etc/sysctl.d/97-oracle-database-sysctl.conf ...
fs.file-max = 6815744
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
net.ipv4.conf.all.rp_filter = 2
net.ipv4.conf.default.rp_filter = 2
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500
* Applying /etc/sysctl.d/99-sysctl.conf ...
* Applying /etc/sysctl.conf ...
マシンリブート
設定ファイルによって、永続的に設定が正しく読み込まれるかを確認します。
$ sudo systemctl reboot
カーネルパラメータの設定後確認
$ cat /proc/sys/fs/file-max
6815744
$ cat /proc/sys/kernel/sem
32000 1024000000 500 32000
$ cat /proc/sys/kernel/shmmni
4096
$ cat /proc/sys/kernel/shmall
18446744073692774399
$ cat /proc/sys/kernel/shmmax
18446744073692774399
$ cat /proc/sys/kernel/panic_on_oops
1
$ cat /proc/sys/net/core/rmem_default
262144
$ cat /proc/sys/net/core/rmem_max
4194304
$ cat /proc/sys/net/core/wmem_default
262144
$ cat /proc/sys/net/core/wmem_max
1048576
$ cat /proc/sys/net/ipv4/conf/all/rp_filter
2
$ cat /proc/sys/net/ipv4/conf/default/rp_filter
2
$ cat /proc/sys/fs/aio-max-nr
1048576
$ cat /proc/sys/net/ipv4/ip_local_port_range
9000 65500
ユーザーのリソース制限
ユーザーのリソース制限変更前の状態
$ ulimit -Sa ・・・ すべてのユーザーリソース制限表示(ソフト)
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited ・・・ data
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 14163
max locked memory (kbytes, -l) 64 ・・・ memlock
max memory size (kbytes, -m) unlimited
open files (-n) 1024 ・・・ nofile
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192 ・・・ stack
cpu time (seconds, -t) unlimited
max user processes (-u) 14163 ・・・ nproc
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
$ ulimit -Ha ・・・ すべてのユーザーリソース制限表示(ハード)
core file size (blocks, -c) unlimited
data seg size (kbytes, -d) unlimited ・・・ data
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 14163
max locked memory (kbytes, -l) 64 ・・・ memlock
max memory size (kbytes, -m) unlimited
open files (-n) 262144 ・・・ nofile
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) unlimited ・・・ stack
cpu time (seconds, -t) unlimited
max user processes (-u) 14163 ・・・ nproc
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
$ ulimit -Sd ・・・ プロセスデータセグメントの最大値(Kbyte)
unlimited
$ ulimit -Hd ・・・ プロセスデータセグメントの最大値(Kbyte)
unlimited
$ ulimit -Sl ・・・ ロック可能なメモリーサイズの最大値(Kbyte)
64
$ ulimit -Hl ・・・ ロック可能なメモリーサイズの最大値(Kbyte)
64
$ ulimit -Sn ・・・ プロセスが使用できるファイルディスクリプターの最大数 + 1
1024
$ ulimit -Hn ・・・ プロセスが使用できるファイルディスクリプターの最大数 + 1
262144
$ ulimit -Ss ・・・ プロセスが使用できるスタック領域の最大値(Kbyte)
8192
$ ulimit -Hs ・・・ プロセスが使用できるスタック領域の最大値(Kbyte)
unlimited
$ ulimit -Su ・・・ 親プロセスが起動できる子プロセスの最大数
14163
$ ulimit -Hu ・・・ 親プロセスが起動できる子プロセスの最大数
14163
ユーザーのリソース制限設定ファイル作成
$ sudo vi /etc/security/limits.d/oracle-database.conf
#oracle soft data unlimited
#oracle hard data unlimited
oracle soft memlock 134217728
oracle hard memlock 134217728
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
#oracle hard stack 32768
oracle soft nproc 16384
oracle hard nproc 16384
マシンリブート
設定ファイルによって、永続的に設定が正しく読み込まれるかを確認します。
$ sudo systemctl reboot
ユーザーのリソース制限変更後の状態
$ ulimit -Sa
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 14695
max locked memory (kbytes, -l) 134217728
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 16384
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
$ ulimit -Ha
core file size (blocks, -c) unlimited
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 14695
max locked memory (kbytes, -l) 134217728
max memory size (kbytes, -m) unlimited
open files (-n) 65536
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 32768
cpu time (seconds, -t) unlimited
max user processes (-u) 16384
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
透過的なHugePagesとNUMAの無効化
透過的なHugePagesとNUMA(Non-Uniform Memory Access)は、OracleDBでは非推奨とのことなので、それらを無効化します。※ 検証ではCPUはシングルソケットなのでNUMAは無効であるが、設定として無効にしています。
設定変更前の確認
$ cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never ・・・ 有効になっている
$ cat /proc/sys/kernel/numa_balancing
0 ・・・ シングルソケットなので無効になっている
$ cat /proc/cmdline
BOOT_IMAGE=(hd0,gpt2)/vmlinuz-5.15.0-105.125.6.2.1.el8uek.x86_64 root=/dev/mapper/rootvg-rootlv ro crashkernel=auto resume=/dev/mapper/rootvg-swaplv rd.lvm.lv=rootvg/rootlv rd.lvm.lv=rootvg/swaplv rhgb quiet
$ cat /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto resume=/dev/mapper/rootvg-swaplv rd.lvm.lv=rootvg/rootlv rd.lvm.lv=rootvg/swaplv rhgb quiet"
GRUB_DISABLE_RECOVERY="true"
GRUB_ENABLE_BLSCFG=true
設定の変更
$ sudo grubby --update-kernel=ALL --args=numa=off
$ sudo grubby --update-kernel=ALL --args=transparent_hugepage=never
マシンリブート
$ sudo systemctl reboot
設定変更後の確認
$ cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never] ・・・ 無効になっている
$ cat /proc/sys/kernel/numa_balancing
0
$ cat /proc/cmdline
BOOT_IMAGE=(hd0,gpt2)/vmlinuz-5.15.0-105.125.6.2.1.el8uek.x86_64 root=/dev/mapper/rootvg-rootlv ro crashkernel=auto resume=/dev/mapper/rootvg-swaplv rd.lvm.lv=rootvg/rootlv rd.lvm.lv=rootvg/swaplv rhgb quiet numa=off transparent_hugepage=never
$ cat /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto resume=/dev/mapper/rootvg-swaplv rd.lvm.lv=rootvg/rootlv rd.lvm.lv=rootvg/swaplv rhgb quiet numa=off transparent_hugepage=never"
GRUB_DISABLE_RECOVERY="true"
GRUB_ENABLE_BLSCFG=true
ディレクトリーの作成とパーミッションの設定
OracleDBのインストールとセットアップをするため、最低限のディレクトリーを作成し、所有者とグループおよびパーミッションを設定します。
パーティションの作成
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 40G 0 disk
|-sda1 8:1 0 640M 0 part /boot/efi
|-sda2 8:2 0 1G 0 part /boot
`-sda3 8:3 0 38.4G 0 part
|-rootvg-rootlv 252:0 0 20G 0 lvm /
|-rootvg-swaplv 252:1 0 4G 0 lvm [SWAP]
|-rootvg-homelv 252:2 0 256M 0 lvm /home
|-rootvg-varlv 252:3 0 8G 0 lvm /var
|-rootvg-tmplv 252:4 0 1G 0 lvm /tmp
`-rootvg-worklv 252:5 0 4G 0 lvm /work
sdb 8:16 0 20G 0 disk
sdc 8:32 0 20G 0 disk
sdd 8:48 0 20G 0 disk
sde 8:64 0 20G 0 disk
sdf 8:80 0 20G 0 disk
sdg 8:96 0 20G 0 disk
sdh 8:112 0 20G 0 disk
sr0 11:0 1 1024M 0 rom
$ sudo sgdisk -n 1:: -t 1:8e00 /dev/sdb ・・・ パーティションの作成
Warning: Partition table header claims that the size of partition table
entries is 0 bytes, but this program supports only 128-byte entries.
Adjusting accordingly, but partition table may be garbage.
Warning: Partition table header claims that the size of partition table
entries is 0 bytes, but this program supports only 128-byte entries.
Adjusting accordingly, but partition table may be garbage.
Creating new GPT entries.
The operation has completed successfully.
$ sudo sgdisk -n 1:: -t 1:8e00 /dev/sdc
: (省略)
Creating new GPT entries.
The operation has completed successfully.
$ sudo sgdisk -n 1:: -t 1:8e00 /dev/sdd
: (省略)
Creating new GPT entries.
The operation has completed successfully.
$ sudo sgdisk -n 1:: -t 1:8e00 /dev/sde
: (省略)
Creating new GPT entries.
The operation has completed successfully.
$ sudo sgdisk -n 1:: -t 1:8e00 /dev/sdf
: (省略)
Creating new GPT entries.
The operation has completed successfully.
$ sudo sgdisk -n 1:: -t 1:8e00 /dev/sdg
: (省略)
Creating new GPT entries.
The operation has completed successfully.
$ sudo sgdisk -n 1:: -t 1:8e00 /dev/sdh
: (省略)
Creating new GPT entries.
The operation has completed successfully.
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 40G 0 disk
|-sda1 8:1 0 640M 0 part /boot/efi
|-sda2 8:2 0 1G 0 part /boot
`-sda3 8:3 0 38.4G 0 part
|-rootvg-rootlv 252:0 0 20G 0 lvm /
|-rootvg-swaplv 252:1 0 4G 0 lvm [SWAP]
|-rootvg-homelv 252:2 0 256M 0 lvm /home
|-rootvg-varlv 252:3 0 8G 0 lvm /var
|-rootvg-tmplv 252:4 0 1G 0 lvm /tmp
`-rootvg-worklv 252:5 0 4G 0 lvm /work
sdb 8:16 0 20G 0 disk
`-sdb1 8:17 0 20G 0 part
sdc 8:32 0 20G 0 disk
`-sdc1 8:33 0 20G 0 part
sdd 8:48 0 20G 0 disk
`-sdd1 8:49 0 20G 0 part
sde 8:64 0 20G 0 disk
`-sde1 8:65 0 20G 0 part
sdf 8:80 0 20G 0 disk
`-sdf1 8:81 0 20G 0 part
sdg 8:96 0 20G 0 disk
`-sdg1 8:97 0 20G 0 part
sdh 8:112 0 20G 0 disk
`-sdh1 8:113 0 20G 0 part
sr0 11:0 1 1024M 0 rom
論理ボリュームの作成とフォーマット
$ sudo pvcreate /dev/sdb1 ・・・ 物理ボリューム作成
Physical volume "/dev/sdb1" successfully created.
$ sudo pvcreate /dev/sdc1
Physical volume "/dev/sdc1" successfully created.
$ sudo pvcreate /dev/sdd1
Physical volume "/dev/sdd1" successfully created.
$ sudo pvcreate /dev/sde1
Physical volume "/dev/sde1" successfully created.
$ sudo pvcreate /dev/sdf1
Physical volume "/dev/sdf1" successfully created.
$ sudo pvcreate /dev/sdg1
Physical volume "/dev/sdg1" successfully created.
$ sudo pvcreate /dev/sdh1
Physical volume "/dev/sdh1" successfully created.
$ sudo vgcreate data01vg /dev/sdb1 ・・・ ボリュームグループ作成
Volume group "data01vg" successfully created
$ sudo vgcreate data02vg /dev/sdc1
Volume group "data02vg" successfully created
$ sudo vgcreate data03vg /dev/sdd1
Volume group "data03vg" successfully created
$ sudo vgcreate data04vg /dev/sde1
Volume group "data04vg" successfully created
$ sudo vgcreate data05vg /dev/sdf1
Volume group "data05vg" successfully created
$ sudo vgcreate data06vg /dev/sdg1
Volume group "data06vg" successfully created
$ sudo vgcreate data07vg /dev/sdh1
Volume group "data07vg" successfully created
$ sudo lvcreate -l 100%FREE -n ora01lv data01vg ・・・ 論理ボリューム作成
Logical volume "ora01lv" created.
$ sudo lvcreate -l 100%FREE -n ora02lv data02vg
Logical volume "ora02lv" created.
$ sudo lvcreate -l 100%FREE -n ora03lv data03vg
Logical volume "ora03lv" created.
$ sudo lvcreate -l 100%FREE -n ora04lv data04vg
Logical volume "ora04lv" created.
$ sudo lvcreate -l 100%FREE -n ora05lv data05vg
Logical volume "ora05lv" created.
$ sudo lvcreate -l 100%FREE -n ora06lv data06vg
Logical volume "ora06lv" created.
$ sudo lvcreate -l 100%FREE -n ora07lv data07vg
Logical volume "ora07lv" created.
$ sudo mkfs -t xfs /dev/data01vg/ora01lv ・・・ ファイルシステム作成
meta-data=/dev/data01vg/ora01lv isize=512 agcount=4, agsize=1310464 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1 bigtime=0 inobtcount=0
data = bsize=4096 blocks=5241856, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=25600, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
Discarding blocks...Done.
$ sudo mkfs -t xfs /dev/data02vg/ora02lv
: (省略)
Discarding blocks...Done.
$ sudo mkfs -t xfs /dev/data03vg/ora03lv
: (省略)
Discarding blocks...Done.
$ sudo mkfs -t xfs /dev/data04vg/ora04lv
: (省略)
Discarding blocks...Done.
$ sudo mkfs -t xfs /dev/data05vg/ora05lv
: (省略)
Discarding blocks...Done.
$ sudo mkfs -t xfs /dev/data06vg/ora06lv
: (省略)
Discarding blocks...Done.
$ sudo mkfs -t xfs /dev/data07vg/ora07lv
: (省略)
Discarding blocks...Done.
マウントポイント作成とディレクトリー作成
$ sudo mkdir /ora01 /ora02 /ora03 /ora04 /ora05 /ora06 /ora07 ・・・ マウントポイントのディレクトリー作成
$ sudo mount /dev/data01vg/ora01lv /ora01 ・・・ マウント実行
$ sudo mount /dev/data02vg/ora02lv /ora02
$ sudo mount /dev/data03vg/ora03lv /ora03
$ sudo mount /dev/data04vg/ora04lv /ora04
$ sudo mount /dev/data05vg/ora05lv /ora05
$ sudo mount /dev/data06vg/ora06lv /ora06
$ sudo mount /dev/data07vg/ora07lv /ora07
$ lsblk ・・・ 確認
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 40G 0 disk
|-sda1 8:1 0 640M 0 part /boot/efi
|-sda2 8:2 0 1G 0 part /boot
`-sda3 8:3 0 38.4G 0 part
|-rootvg-rootlv 252:0 0 20G 0 lvm /
|-rootvg-swaplv 252:1 0 4G 0 lvm [SWAP]
|-rootvg-homelv 252:2 0 256M 0 lvm /home
|-rootvg-varlv 252:3 0 8G 0 lvm /var
|-rootvg-tmplv 252:4 0 1G 0 lvm /tmp
`-rootvg-worklv 252:5 0 4G 0 lvm /work
sdb 8:16 0 20G 0 disk
`-sdb1 8:17 0 20G 0 part
`-data01vg-ora01lv 252:6 0 20G 0 lvm /ora01
sdc 8:32 0 20G 0 disk
`-sdc1 8:33 0 20G 0 part
`-data02vg-ora02lv 252:7 0 20G 0 lvm /ora02
sdd 8:48 0 20G 0 disk
`-sdd1 8:49 0 20G 0 part
`-data03vg-ora03lv 252:8 0 20G 0 lvm /ora03
sde 8:64 0 20G 0 disk
`-sde1 8:65 0 20G 0 part
`-data04vg-ora04lv 252:9 0 20G 0 lvm /ora04
sdf 8:80 0 20G 0 disk
`-sdf1 8:81 0 20G 0 part
`-data05vg-ora05lv 252:10 0 20G 0 lvm /ora05
sdg 8:96 0 20G 0 disk
`-sdg1 8:97 0 20G 0 part
`-data06vg-ora06lv 252:11 0 20G 0 lvm /ora06
sdh 8:112 0 20G 0 disk
`-sdh1 8:113 0 20G 0 part
`-data07vg-ora07lv 252:12 0 20G 0 lvm /ora07
sr0 11:0 1 1024M 0 rom
$ sudo mkdir -p /ora01/app/oracle /ora01/app/oraInventory ・・・ ディレクトリー作成
$ sudo mkdir -p /ora02/app/oracle
$ sudo mkdir -p /ora03/app/oracle
$ sudo mkdir -p /ora04/app/oracle
$ sudo mkdir -p /ora05/app/oracle
$ sudo mkdir -p /ora06/app/oracle
$ sudo mkdir -p /ora07/app/oracle
$ sudo chown oracle:oinstall /ora01/app/oracle /ora01/app/oraInventory ・・・ 所有者・グループ変更
$ sudo chown oracle:oinstall /ora02/app/oracle
$ sudo chown oracle:oinstall /ora03/app/oracle
$ sudo chown oracle:oinstall /ora04/app/oracle
$ sudo chown oracle:oinstall /ora05/app/oracle
$ sudo chown oracle:oinstall /ora06/app/oracle
$ sudo chown oracle:oinstall /ora07/app/oracle
$ tree -u -g -p /ora0?
/ora01
`-- [drwxr-xr-x root root ] app
|-- [drwxr-xr-x oracle oinstall] oraInventory
`-- [drwxr-xr-x oracle oinstall] oracle
/ora02
`-- [drwxr-xr-x root root ] app
`-- [drwxr-xr-x oracle oinstall] oracle
/ora03
`-- [drwxr-xr-x root root ] app
`-- [drwxr-xr-x oracle oinstall] oracle
/ora04
`-- [drwxr-xr-x root root ] app
`-- [drwxr-xr-x oracle oinstall] oracle
/ora05
`-- [drwxr-xr-x root root ] app
`-- [drwxr-xr-x oracle oinstall] oracle
/ora06
`-- [drwxr-xr-x root root ] app
`-- [drwxr-xr-x oracle oinstall] oracle
/ora07
`-- [drwxr-xr-x root root ] app
`-- [drwxr-xr-x oracle oinstall] oracle
15 directories, 0 files
$ sudo cp -a /etc/fstab /etc/BK-fstab.original
$ sudo vi /etc/fstab
: (省略)
/dev/mapper/data01vg-ora01lv /ora01 xfs defaults 0 0
/dev/mapper/data02vg-ora02lv /ora02 xfs defaults 0 0
/dev/mapper/data03vg-ora03lv /ora03 xfs defaults 0 0
/dev/mapper/data04vg-ora04lv /ora04 xfs defaults 0 0
/dev/mapper/data05vg-ora05lv /ora05 xfs defaults 0 0
/dev/mapper/data06vg-ora06lv /ora06 xfs defaults 0 0
/dev/mapper/data07vg-ora07lv /ora07 xfs defaults 0 0
$ sudo systemctl daemon-reload
マシンリブート
$ sudo systemctl reboot
マウント状態の確認
$ df -h /ora0?
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/data01vg-ora01lv 20G 175M 20G 1% /ora01
/dev/mapper/data02vg-ora02lv 20G 175M 20G 1% /ora02
/dev/mapper/data03vg-ora03lv 20G 175M 20G 1% /ora03
/dev/mapper/data04vg-ora04lv 20G 175M 20G 1% /ora04
/dev/mapper/data05vg-ora05lv 20G 175M 20G 1% /ora05
/dev/mapper/data06vg-ora06lv 20G 175M 20G 1% /ora06
/dev/mapper/data07vg-ora07lv 20G 175M 20G 1% /ora07
/etc/fstabの内容をuuidで記述
Linuxのデバイス名は起動時に変更されることがあり、最悪の場合、起動に失敗することがあります。それを回避するため、UUIDを使用します。
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 40G 0 disk
|-sda1 8:1 0 640M 0 part /boot/efi
|-sda2 8:2 0 1G 0 part /boot
`-sda3 8:3 0 38.4G 0 part
|-rootvg-rootlv 252:0 0 20G 0 lvm /
|-rootvg-swaplv 252:1 0 4G 0 lvm [SWAP]
|-rootvg-homelv 252:2 0 256M 0 lvm /home
|-rootvg-varlv 252:3 0 8G 0 lvm /var
|-rootvg-tmplv 252:5 0 1G 0 lvm /tmp
`-rootvg-worklv 252:6 0 4G 0 lvm /work
sdb 8:16 0 20G 0 disk
`-sdb1 8:17 0 20G 0 part
`-data01vg-ora01lv 252:10 0 20G 0 lvm /ora01
sdc 8:32 0 20G 0 disk
`-sdc1 8:33 0 20G 0 part
`-data02vg-ora02lv 252:11 0 20G 0 lvm /ora02
sdd 8:48 0 20G 0 disk
`-sdd1 8:49 0 20G 0 part
`-data07vg-ora07lv 252:9 0 20G 0 lvm /ora07
sde 8:64 0 20G 0 disk
`-sde1 8:65 0 20G 0 part
`-data03vg-ora03lv 252:7 0 20G 0 lvm /ora03
sdf 8:80 0 20G 0 disk
`-sdf1 8:81 0 20G 0 part
`-data04vg-ora04lv 252:8 0 20G 0 lvm /ora04
sdg 8:96 0 20G 0 disk
`-sdg1 8:97 0 20G 0 part
`-data05vg-ora05lv 252:12 0 20G 0 lvm /ora05
sdh 8:112 0 20G 0 disk
`-sdh1 8:113 0 20G 0 part
`-data06vg-ora06lv 252:4 0 20G 0 lvm /ora06
sr0 11:0 1 1024M 0 rom
$ sudo blkid | grep mapper | sort
/dev/mapper/data01vg-ora01lv: UUID="1230b4f8-a066-4f8f-81d0-caceae213da8" BLOCK_SIZE="512" TYPE="xfs"
/dev/mapper/data02vg-ora02lv: UUID="9525b388-ad8e-4805-9acb-c725fcfa8376" BLOCK_SIZE="512" TYPE="xfs"
/dev/mapper/data03vg-ora03lv: UUID="ae4cc743-99c8-475d-b77f-dae734bc8cef" BLOCK_SIZE="512" TYPE="xfs"
/dev/mapper/data04vg-ora04lv: UUID="42f27e6e-3c56-436f-aff0-578ac5eb7200" BLOCK_SIZE="512" TYPE="xfs"
/dev/mapper/data05vg-ora05lv: UUID="663b9ce7-9a74-4ff0-9cbf-eea1980a9e53" BLOCK_SIZE="512" TYPE="xfs"
/dev/mapper/data06vg-ora06lv: UUID="7cc463db-25a8-4642-b024-121fb7ab0ead" BLOCK_SIZE="512" TYPE="xfs"
/dev/mapper/data07vg-ora07lv: UUID="d21e2a35-a602-49fd-8367-37d725a3e78f" BLOCK_SIZE="512" TYPE="xfs"
/dev/mapper/rootvg-homelv: UUID="a2e3cfdf-becb-4502-b02e-e377fb17778f" BLOCK_SIZE="512" TYPE="xfs"
/dev/mapper/rootvg-rootlv: UUID="412dac28-0291-4bc5-be2b-8b8ed617a171" BLOCK_SIZE="512" TYPE="xfs"
/dev/mapper/rootvg-swaplv: UUID="2b1f9665-8cbc-4e99-905a-050d52a18037" TYPE="swap"
/dev/mapper/rootvg-tmplv: UUID="270a22c3-77b1-4494-b4f8-24da39fb617a" BLOCK_SIZE="512" TYPE="xfs"
/dev/mapper/rootvg-varlv: UUID="74f2ac02-aa45-46a4-b241-43329a2d601b" BLOCK_SIZE="512" TYPE="xfs"
/dev/mapper/rootvg-worklv: UUID="08bcb361-03d2-44e4-808d-5d5adcd58384" BLOCK_SIZE="512" TYPE="xfs"
$ sudo cp -a /etc/fstab /etc/BK-fstab.20230920
$ sudo vi /etc/fstab
: (省略)
#/dev/mapper/rootvg-rootlv / xfs defaults 0 0
UUID=412dac28-0291-4bc5-be2b-8b8ed617a171 / xfs defaults 0 0
UUID=f7061b24-aa5c-49f3-b328-cc40a8d49c43 /boot xfs defaults 0 0
UUID=754E-47DB /boot/efi vfat umask=0077,shortname=winnt 0 2
#/dev/mapper/rootvg-homelv /home xfs defaults 0 0
UUID=a2e3cfdf-becb-4502-b02e-e377fb17778f /home xfs defaults 0 0
#/dev/mapper/rootvg-tmplv /tmp xfs defaults 0 0
UUID=270a22c3-77b1-4494-b4f8-24da39fb617a /tmp xfs defaults 0 0
#/dev/mapper/rootvg-varlv /var xfs defaults 0 0
UUID=74f2ac02-aa45-46a4-b241-43329a2d601b /var xfs defaults 0 0
#/dev/mapper/rootvg-worklv /work xfs defaults 0 0
UUID=08bcb361-03d2-44e4-808d-5d5adcd58384 /work xfs defaults 0 0
#/dev/mapper/rootvg-swaplv none swap defaults 0 0
UUID=2b1f9665-8cbc-4e99-905a-050d52a18037 none swap defaults 0 0
#/dev/mapper/data01vg-ora01lv /ora01 xfs defaults 0 0
UUID=1230b4f8-a066-4f8f-81d0-caceae213da8 /ora01 xfs defaults 0 0
#/dev/mapper/data02vg-ora02lv /ora02 xfs defaults 0 0
UUID=9525b388-ad8e-4805-9acb-c725fcfa8376 /ora02 xfs defaults 0 0
#/dev/mapper/data03vg-ora03lv /ora03 xfs defaults 0 0
UUID=ae4cc743-99c8-475d-b77f-dae734bc8cef /ora03 xfs defaults 0 0
#/dev/mapper/data04vg-ora04lv /ora04 xfs defaults 0 0
UUID=42f27e6e-3c56-436f-aff0-578ac5eb7200 /ora04 xfs defaults 0 0
#/dev/mapper/data05vg-ora05lv /ora05 xfs defaults 0 0
UUID=663b9ce7-9a74-4ff0-9cbf-eea1980a9e53 /ora05 xfs defaults 0 0
#/dev/mapper/data06vg-ora06lv /ora06 xfs defaults 0 0
UUID=7cc463db-25a8-4642-b024-121fb7ab0ead /ora06 xfs defaults 0 0
#/dev/mapper/data07vg-ora07lv /ora07 xfs defaults 0 0
UUID=d21e2a35-a602-49fd-8367-37d725a3e78f /ora07 xfs defaults 0 0
$ sudo systemctl daemon-reload
マシンリブート
$ sudo systemctl reboot
マウント状態の確認
$ df -h | grep mapper | sort -k 6
/dev/mapper/rootvg-rootlv 20G 5.1G 15G 26% /
/dev/mapper/rootvg-homelv 251M 30M 222M 12% /home
/dev/mapper/data01vg-ora01lv 20G 175M 20G 1% /ora01
/dev/mapper/data02vg-ora02lv 20G 175M 20G 1% /ora02
/dev/mapper/data03vg-ora03lv 20G 175M 20G 1% /ora03
/dev/mapper/data04vg-ora04lv 20G 175M 20G 1% /ora04
/dev/mapper/data05vg-ora05lv 20G 175M 20G 1% /ora05
/dev/mapper/data06vg-ora06lv 20G 175M 20G 1% /ora06
/dev/mapper/data07vg-ora07lv 20G 175M 20G 1% /ora07
/dev/mapper/rootvg-tmplv 1014M 40M 975M 4% /tmp
/dev/mapper/rootvg-varlv 8.0G 1.8G 6.3G 22% /var
/dev/mapper/rootvg-worklv 4.0G 61M 4.0G 2% /work