なんだか久しぶりの更新となりました(`・ω・´)
OracleクラウドでDB作ったやんけ、と言われそうですが、
ローカルPC上に作ったVM上に、別途Oracle DBを入れてみたいと思います。
私がクラウドを使いこなせてないだけかもですが、
クラウド上だとOracle DBの仕組みがいまいち見えてこないので…(´・ω・`)
1.環境
2.インストール方法2通りの紹介と、インストーラのダウンロード
1.環境
・CentOS8
※なお、CentOSはGUI操作可能な状態であることを前提とする
2.インストール方法2通りと、Oracleのダウンロード
Linuxの場合、インストール方法は2通りある。
①rpmファイルから実施(②より簡単だが、インターネット環境が必要)
②zipファイルから実施(①より難しいが、オフラインでも対応できる。手作業する分、仕組は見えやすい)
今回は、②の方法について説明する。
①②のどちらにしても、まずはOracleをダウンロードしてくるところから始める。
(オフライン環境の場合、インターネットにつなげられる環境で先にダウンロードして、移送することが必要)
ダウンロード元
https://www.oracle.com/jp/database/technologies/oracle-database-software-download.html
→zipを選択。なおダウンロードには、Oracleのプロファイルへの登録が必要となる。
(①のrpmの方法でやる場合はrpmを選んでください)
3.インストール事前準備
とにかく事前準備が多いのが、OracleDB。
(それを最小限に抑えているのがクラウド上のOracleDBだったりするけど…。今回はオンプレで。)
Oracle Databaseのインストール準備内容一覧
①~⑩まではrootユーザで、⑪のみoracleユーザで実施する。
①カーネルパラメータの設定
$ vi /etc/sysctl.d/97-oracle-database-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
上記の値は、いずれもOracleのドキュメントにあった推奨値を採用している。
値は環境に応じて適宜変更のこと。
カーネルパラメータを編集後は、確認と反映を行う。
$ /sbin/sysctl --system # 設定した値が追加されていることを確認
(前略)
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
* Applying /etc/sysctl.d/99-sysctl.conf ...
* Applying /etc/sysctl.conf ...
設定全体を確認。
$ /sbin/sysctl -a
OSを再起動する。
$ systemctl reboot
※設定するカーネルパラメータの詳細:
②透過的なHugePagesを無効化(オプションだが実施推奨)
HugePagesとは、Linuxカーネルに統合された機能であり、大容量のメモリで動作する場合に効果的である。
透過的なHugePagesは、CentOS8ではデフォルトで有効になっているが、有効にしておくと、OracleDBの実行中にメモリ割当ての遅延が生じる。そのためパフォーマンス最適化観点から、透過的なHugePagesはすべてのOracle Databaseサーバーで無効にすることが推奨されている。
参考:https://docs.oracle.com/cd/E57425_01/121/CWLIN/memry.htm
※12cの記事だけど19cでも同様。
今回はそこまでパフォーマンスを求めるわけではないが、推奨に従って透過的HugePagesを無効化しておく。
透過的HugePagesの状態を確認するコマンド
$cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never # [ ] でくくられている値が、現在の状態を表す
無効であるには、neverが選ばれている必要がある。
デフォルトではalwaysになっていると思われるため、以下のようにして無効化(never)する。
(1)まず、「/sys/kernel/mm/transparent_hugepage/enabled」の、「GRUB_CMDLINE_LINUX」キーに、
値"transparent_hugepage=never"を追加する。
$cat /sys/kernel/mm/transparent_hugepage/enabled
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=UUID=d498f4f8-2150-4019-ad8d-ecbe83173d21 rhgb quiet transparent_hugepage=never" #赤字箇所を追加する
GRUB_DISABLE_RECOVERY="true"
GRUB_ENABLE_BLSCFG=true
(2)(1)の設定内容を有効化するために、「/boot/grub2/grub.cfg」を再編成する。
$ grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
done
(3)(1)と(2)の設定内容を有効化するために、OSを再起動する。
$ systemctl reboot
(4)設定が反映され、透過的HugePagesが無効化されたことを確認する。
$cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never] # neverが選択されていることを確認
透過的HugePagesの無効化設定は以上。
③OSメモリとswap領域のサイズを確認
Oracle Databaseのインストールには、1GB以上のメモリ(RAM)が必要であり、推奨は2GBとなっている。
またメモリサイズに対して、以下のサイズのswap領域が必要となる。
(swap領域とは: メモリ容量が足りなくなった時、メモリの中で不要な部分を退避させるためのハードディスク内領域。この領域を確保することで、速度パフォーマンスが落ちることを防ぐ)
OSのメモリサイズ | 必要なswap領域 |
---|---|
1GB~2GB | メモリの1.5倍 |
2GB~16GB | メモリと同じサイズ |
16GBより大きい | 16GB |
メモリサイズとswap領域のサイズを確認するには、freeコマンドを使う。
(freeコマンドとは: システムの物理メモリとスワップメモリの使用量、空き容量を表示するLinuxコマンド。)
$free -m
total used free shared buff/cache available
Mem: 791 514 52 3 224 257
Swap: 2047 37 2010
-mは、MB単位で表示するためのオプション。
◎メモリが不足していた場合
あんまりないケースだと思うが、(私のように)1GB未満だった場合は、環境に応じて増設が必要。
(私はVMware上のVMだったので、VM設定変更により調節しました)
◎swap領域が不足していた場合
swap領域を拡張する。以下サイト様等が参考になるかと思う。(必要に応じて適宜ググってください)
https://www.wakuwakubank.com/posts/685-linux-swap/
※注意点
Oracle Restartを使う場合は必要なswap領域が変わってくる。詳しくは公式を参照。
④/tmpディレクトリに1GB以上の領域を確保
パーティションを確認して、/tmpディレクトリに1GB以上の領域があるかを確認。
(/tmp単独でパーティションを切るか、/(ルート)に含まれているからOKとするかは、状況に応じて判断してください。私は/に含むと考えてスルーしました)
$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 884M 0 884M 0% /dev
tmpfs 901M 0 901M 0% /dev/shm
tmpfs 901M 9.7M 891M 2% /run
tmpfs 901M 0 901M 0% /sys/fs/cgroup
/dev/sda3 18G 4.9G 13G 28% / # 1GB以上の空きを確認
/dev/sda1 283M 145M 120M 55% /boot
tmpfs 181M 1.2M 179M 1% /run/user/42
tmpfs 181M 5.7M 175M 4% /run/user/1000
⑤共有メモリの確認
共有メモリ(/dev/shm
)に十分なサイズのメモリがマウントされていることを確認。
また、/dev/shmのファイルシステムは、tmpfsである必要がある。
確認コマンドは、/tmp領域の確認時と同じく、dfを用いる。
$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 884M 0 884M 0% /dev
tmpfs 901M 0 901M 0% /dev/shm #tmpfsとして領域が確保されていることを確認
tmpfs 901M 9.7M 891M 2% /run
tmpfs 901M 0 901M 0% /sys/fs/cgroup
/dev/sda3 18G 4.9G 13G 28% /
/dev/sda1 283M 145M 120M 55% /boot
tmpfs 181M 1.2M 179M 1% /run/user/42
tmpfs 181M 5.7M 175M 4% /run/user/1000
⑥Oracle用ユーザとグループの作成
Oracle用のグループを作る。
GID(グループID)は環境によって適切に設定でOK。グループ名はointsallとする。
$ groupadd -g 2000 oinstall
Oracle用のユーザも作る。
グループ同様、UID(ユーザID)は任意で、ユーザ名はoracle固定とする。
oracleユーザは、1つ前で作ったoinstallグループに所属させる。
$ useradd -u 2000 oracle -g oinstall # ユーザ作成
$ passwd oracle # oracleユーザのパスワードも設定しておく
Changing password for user oracle.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
⑦Oracleソフトウェア所有者環境を構成
umask(ファイル・モード作成マスク)のデフォルト値の設定を行う。
(umaskとは: ファイルやディレクトリ作成時のパーミッションを設定するLinuxコマンド。
ファイルの場合は「666」、ディレクトリは「777」から、指定した値を引いた値をデフォルトのパーミッション値にする。そのため、「umask 022」とすると、ファイルは「644」、ディレクトリは「755」がデフォルトになる。
パーミッションって何?という方はすみませんがググってください)
oracleユーザの.bash_profile(/home/oracle/.bash_profile)に、以下を追加する。
umask 022
.bash_profileの変更を反映する。
$ source /home/oracle/.bash_profile
⑧oracleユーザのリソース制限設定
oracleユーザ(インストールソフトウェア所有者ユーザ)について、
インストールのリソース制限も行う必要がある。
制限を行うことで、システムリソースが1ユーザーによって占有されないようにする。
oracleユーザで制限すべきリソースは以下の4つで、それぞれソフト/ハードの制限を加える必要がある。
リソース名 | 説明 |
---|---|
nofile | オープンできる最大ファイル数 |
nproc | 単一ユーザーが使用可能な最大プロセス数 |
stack | プロセスのスタック・セグメントのサイズ |
memlock | ロックされたメモリの最大上限。 HugePagesを有効にする場合に設定が必要。 |
以下8行を追加する。
なお、各数値は推奨範囲の最低値としている(単位はKB)ため、環境によって値の検討が必要である。
$ vi /etc/security/limits.conf
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft stack 10240
oracle hard stack 32768
⑨ディレクトリの作成
Oracleで利用するディレクトリを2つ作成し、所有ユーザをoracleとする。
作成場所は、状況に応じて適当なところでOK。(私は/opt配下としました)
$ mkdir /opt/app/oracle -p
$ mkdir /opt/app/oraInventory -p
$ chown oracle:oinstall /opt/app -R
⑩必須となる前提パッケージをインストール
Oracleのインストールにあたり、前提として必要となるパッケージ群をインストールする。
$ yum install -y bc binutils elfutils-libelf elfutils-libelf-devel fontconfig-devel glibc glibc-devel ksh libaio libaio-devel libgcc libnsl librdmacm-devel libstdc++ libstdc++-devel libX11 libXau libxcb libXi libXrender libXrender-devel libXtst make net-tools nfs-utils python3 python3-configshell python3-rtslib python3-six smartmontools sysstat targetcli unzip
⑪インストーラの配置
ここで、最初にダウンロードしたOracleのインストーラファイルが、ようやく出てくる。
まず、最初にダウンロードしたファイルを、OracleDBをインストールしたいサーバ上(/tmp配下など)に配置する。(私はteratermのSCP機能を使ってサーバにあげました)
Oracleのインストール先となるディレクトリ(パスは任意なので適宜変更ください)を作成し、インストーラを展開する。
$ su oracle # oracleユーザに切替
$ mkdir /opt/app/oracle/19.3/oradb -p
$ cd /opt/app/oracle/19.3/oradb
$ unzip -q /tmp/LINUX.X64_193000_db_home.zip # Oracleのインストーラファイルを展開
展開後はこんなかんじ。
$ ll /opt/app/oracle/19.3/oradb
total 68
drwxr-xr-x. 2 oracle oinstall 102 Apr 18 2019 addnode
drwxr-xr-x. 6 oracle oinstall 4096 Apr 17 2019 apex
drwxr-xr-x. 9 oracle oinstall 93 Apr 17 2019 assistants
drwxr-xr-x. 2 oracle oinstall 8192 Apr 18 2019 bin
drwxr-xr-x. 4 oracle oinstall 87 Apr 18 2019 clone
drwxr-xr-x. 6 oracle oinstall 55 Apr 17 2019 crs
drwxr-xr-x. 3 oracle oinstall 18 Apr 17 2019 css
drwxr-xr-x. 11 oracle oinstall 119 Apr 17 2019 ctx
drwxr-xr-x. 7 oracle oinstall 71 Apr 17 2019 cv
drwxr-xr-x. 3 oracle oinstall 20 Apr 17 2019 data
drwxr-xr-x. 3 oracle oinstall 19 Apr 17 2019 dbjava
drwxr-xr-x. 2 oracle oinstall 22 Apr 17 2019 dbs
drwxr-xr-x. 5 oracle oinstall 191 Apr 18 2019 deinstall
drwxr-xr-x. 3 oracle oinstall 20 Apr 17 2019 demo
drwxr-xr-x. 3 oracle oinstall 20 Apr 17 2019 diagnostics
drwxr-xr-x. 13 oracle oinstall 198 Apr 17 2019 dmu
drwxr-xr-x. 4 oracle oinstall 30 Apr 17 2019 drdaas
drwxr-xr-x. 3 oracle oinstall 19 Apr 17 2019 dv
-rw-r--r--. 1 oracle oinstall 852 Aug 18 2015 env.ora
drwxr-xr-x. 3 oracle oinstall 18 Apr 17 2019 has
drwxr-xr-x. 5 oracle oinstall 41 Apr 17 2019 hs
drwxr-xr-x. 10 oracle oinstall 4096 Apr 18 2019 install
drwxr-xr-x. 2 oracle oinstall 29 Apr 17 2019 instantclient
drwxr-x---. 13 oracle oinstall 219 Apr 18 2019 inventory
drwxr-xr-x. 8 oracle oinstall 82 Apr 18 2019 javavm
drwxr-xr-x. 3 oracle oinstall 35 Apr 17 2019 jdbc
drwxr-xr-x. 6 oracle oinstall 219 Apr 18 2019 jdk
drwxr-xr-x. 2 oracle oinstall 4096 Apr 17 2019 jlib
drwxr-xr-x. 10 oracle oinstall 112 Apr 17 2019 ldap
drwxr-xr-x. 4 oracle oinstall 12288 Apr 18 2019 lib
drwxr-xr-x. 9 oracle oinstall 98 Apr 17 2019 md
drwxr-xr-x. 4 oracle oinstall 31 Apr 17 2019 mgw
drwxr-xr-x. 10 oracle oinstall 106 Apr 17 2019 network
drwxr-xr-x. 5 oracle oinstall 46 Apr 17 2019 nls
drwxr-xr-x. 8 oracle oinstall 101 Apr 17 2019 odbc
drwxr-xr-x. 5 oracle oinstall 42 Apr 17 2019 olap
drwxr-x---. 14 oracle oinstall 4096 Apr 12 2019 OPatch
drwxr-xr-x. 7 oracle oinstall 65 Apr 17 2019 opmn
drwxr-xr-x. 4 oracle oinstall 34 Apr 17 2019 oracore
drwxr-xr-x. 6 oracle oinstall 52 Apr 17 2019 ord
drwxr-xr-x. 4 oracle oinstall 66 Apr 17 2019 ords
drwxr-xr-x. 3 oracle oinstall 19 Apr 17 2019 oss
drwxr-xr-x. 8 oracle oinstall 226 Apr 18 2019 oui
drwxr-xr-x. 4 oracle oinstall 33 Apr 17 2019 owm
drwxr-xr-x. 5 oracle oinstall 39 Apr 17 2019 perl
drwxr-xr-x. 6 oracle oinstall 78 Apr 17 2019 plsql
drwxr-xr-x. 6 oracle oinstall 56 Apr 18 2019 precomp
drwxr-xr-x. 2 oracle oinstall 26 Apr 17 2019 QOpatch
drwxr-xr-x. 5 oracle oinstall 52 Apr 17 2019 R
drwxr-xr-x. 4 oracle oinstall 29 Apr 17 2019 racg
drwxr-xr-x. 13 oracle oinstall 140 Apr 18 2019 rdbms
drwxr-xr-x. 3 oracle oinstall 21 Apr 17 2019 relnotes
-rwx------. 1 oracle oinstall 638 Apr 18 2019 root.sh
-rwx------. 1 oracle oinstall 786 Apr 17 2019 root.sh.old
-rw-r-----. 1 oracle oinstall 10 Apr 17 2019 root.sh.old.1
-rwxr-x---. 1 oracle oinstall 1783 Mar 8 2017 runInstaller
-rw-r--r--. 1 oracle oinstall 2927 Oct 14 2016 schagent.conf
drwxr-xr-x. 5 oracle oinstall 119 Apr 17 2019 sdk
drwxr-xr-x. 3 oracle oinstall 18 Apr 17 2019 slax
drwxr-xr-x. 4 oracle oinstall 41 Apr 17 2019 sqldeveloper
drwxr-xr-x. 3 oracle oinstall 17 Apr 17 2019 sqlj
drwxr-xr-x. 4 oracle oinstall 236 Apr 18 2019 sqlpatch
drwxr-xr-x. 6 oracle oinstall 53 Apr 18 2019 sqlplus
drwxr-xr-x. 6 oracle oinstall 54 Apr 17 2019 srvm
drwxr-xr-x. 5 oracle oinstall 45 Apr 17 2019 suptools
drwxr-xr-x. 3 oracle oinstall 35 Apr 17 2019 ucp
drwxr-xr-x. 4 oracle oinstall 31 Apr 17 2019 usm
drwxr-xr-x. 2 oracle oinstall 33 Apr 17 2019 utl
drwxr-xr-x. 3 oracle oinstall 19 Apr 17 2019 wwg
drwxr-x---. 7 oracle oinstall 69 Apr 17 2019 xdk
4.インストール実行
GUIが使えるように、teratermなどではなく、画面を開く。
oracleユーザでログインし、画面上でターミナルを開いて、インストーラを起動する。
$ cd /opt/app/oracle/19.3/
$ ./runInstaller
※インストール画面がもし文字化けしたら、一度インストール画面をキャンセルして、
以下コマンドを実行した後で再度インストーラを起動(./runInstaller)するとよい。(ただし英語になります)
$ export LANG=C
※ソフトウェアをインストールするだけか、インストールしたうえでデータベースを作るかを選ぶ。
ここでは、まとめて実行するため、ソフトウェアインストール+データベース作成のほうを選んだ。
OracleDBを、デスクトップPC(普通のPC)にインストールするか、サーバにインストールする形とするか。
今回はDBサーバとして構築してきたいので、サーバを選択。
続いて、データベースのエディションを選ぶ。
Enterprise Edition(EE)は大規模システム、Standard Edition2(SE2)は比較的小規模向けのエディションとなる。
今回はSE2にすれば十分だったのになぜかEEを選んでしまっていた汗
※ライセンスによっても選ぶべきものは変わるので、適切なほうを選んでください。
Oracleをインストールするディレクトリ先(Oracle Base)のパスを指定する。
インストール事前準備の⑨で作ったディレクトリを指定。
続いて、Oracle Inventoryのディレクトリパスも指定。
同じくインストール準備の手順⑨で作成したパスを指定する。
続いて、データベースのタイプを選ぶ。
汎用的なデータベースとして使う(上の選択肢)か、データ分析をメイン目的としたデータウェアハウスとしたい(下の選択肢)か。
今回は汎用的なデータベースを作るため、上のほうを選択した。
続いてデータベースの名前を任意に設定する。
グローバルデータベース名は、データベースそのもの(データの集合体、データ本体)の名前。
SIDは、データベースのインスタンス(データを操作する役割)の名前を指定。
インスタンスは複数作成することもできるが、単一インスタンスとする場合は、グローバルデータベース名=SID名とすることがふつう。
今回は単一インスタンスとするため、どちらも同じ名前とした。
構成オプション。
タブが3つに分かれており、使用メモリや文字コードなどを設定できる。
メモリはマシンのスペック、性能要件を踏まえて指定。(今回はスペック低め…)
「Charcter sets」タブで、文字コードを選択。今回は汎用的なAL32UTF8とした。
続いて「Sample schemas」タブ。
生成するDBに、スキーマ(≒テーブルなどの所有者)をサンプルで作成するかどうかを指定。
今回はスキーマ不要なので、チェックを外した。
続いて、データをどのように格納するかを選ぶ。
デフォルトのファイルシステムは、DBサーバのOS上にデータを置くよという意味。
その場合、OSのどこに配置するのか、ディレクトリも指定する必要がある。
選択肢2つめのASMはオプション機能で、「Oracle ASMディスク・グループ内のOracle ASMファイル」として論理的にデータを格納することになる。
今回は通常のファイルシステムを選択。
続いて、Enterprise Edition用の設定。特に不要だったのでチェックせず。
続いて、Oracleのバックアップ・リカバリに関する設定を行う。
(以下のように設定しようとしたら、私はスペックの問題で設定できなかった…w
会社のシステムなど、バックアップ必須となるDBは、それなりのスペックを計算しているはずなので大丈夫だと思いますが。。)
システムユーザ(sys, system)のパスワードを登録できる。
ちなみに、パスワードポリシーに合わないパスワードを設定しようとすると、警告が出る。(警告のみであり、登録できないわけではない。)
続いて、Oracleで用いるユーザグループ(OSグループ)を設定する。
基本的に、事前準備⑥で作成した「oinstall」グループを用いる。
(※内容ごとにグループを分けることももちろん可能。その場合、事前準備⑥で、先にOSグループを作っておく必要がある)
続いて、Oracleのインストール処理時の設定を行う。
インストール処理中、OSのrootユーザで一部設定を行う必要があるが、それをインストーラが自動で行って良いかどうかの設定となる。
基本的に自動で問題ないと思うが、今回はrootユーザでの処理内容をあえて確認してみたいので、チェックを外し手動設定するとした。
ここまでの内容を確認。
インストール中。けっこう時間かかるので気長に待つ。
3つ前の画面で、rootユーザでの処理を手動にする設定をしていた。
そのため、インストール途中で、以下のような画面が出てくる。
画面に書いてある通り、別ターミナルでrootユーザとしてログインし、提示されたスクリプトを実行する。
上記のスクリプトを、rootユーザで実行した結果↓
$ opt/app/oraInventory/orainstRoot.sh #1つ目のコマンド
Changing permissions of /opt/app/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.
Changing groupname of /opt/app/oraInventory to oinstall.
The execution of the script is complete.
$ /opt/app/oracle/product/19.3/oradb/root.sh #2つ目のコマンド
Performing root user operation.
The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /opt/app/oracle/product/19.3/oradb
Enter the full pathname of the local bin directory: [/usr/local/bin]: #ここでEnterを押す
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.
Oracle Trace File Analyzer (TFA - Standalone Mode) is available at :
/opt/app/oracle/product/19.3/oradb/bin/tfactl
Note :
1. tfactl will use TFA Service if that service is running and user has been granted access
2. tfactl will configure TFA Standalone Mode only if user has no access to TFA Service or TFA is not installed
2つのスクリプトを実行したら、先ほど出てきた画面(Execute Configration Scripts)に戻り、「OK」を押す。
そして、さらに待つと、ようやく…!
いやあ、長かった…。
このあと、リスナー、TNSの登録が必要となるものの、
力尽きたのでまたの機会に…(それか、気力のある時にこっそり追記します)
必要な方はググってください。
■参考サイト
https://docs.oracle.com/cd/F19136_01/install-and-upgrade.html
・Oracle Database 19c Linuxへのインストール手順(https://dekiruengineer.com/engineer/oracle-database-19c-for-linux/)
・/etc/security/limits.confに関するメモ(https://open-groove.net/linux/memo-etcsecuritylimits-conf)