はじめに
今回は、以下の記事で紹介しているOracle Database 21cのインストレーション作業など、プロセスの途中でスワップ領域が不足してしまった場合の追加方法について紹介する。インストレーションの詳細は以下のリンクを参考にするとよい。
Oracle Databaseのインストレーション作業でOUIを使用したとき、前提条件でスワップ領域が不足しているとこのように注意される。
今回は上記のOUIの前提条件より600MBほどのスワップ領域が必要とされているため600MB追加することにする。
スワップ領域の追加方法
ディスクの空き容量の確認
まず、OUIのウィンドウを閉じずに新たにターミナルを立ち上げ、以下のコマンドでディスクの空き容量を確認する。
free -m
オプション-mはメガバイトで表示する。※デフォルトはキロバイト
以下のように、メモリー(Mem)とスワップ(Swap)の総容量(total)、使用容量(used)、空き容量(free)がそれぞれ表示される。
# free -m
total used free shared buff/cache available
Mem: 1694 1159 82 12 452 483
Swap: 2107 119 1988
スワップ用の領域を作成
以下のコマンドでスワップ領域として使用するためのファイルを作成する。
dd if=/dev/zero of=/var/swp bs=1M count=600
ddコマンドについて
dd if=fileA of=fileB
fileAをfileBにコピーするという内容。
dd if=/dev/zero of=作成するファイル名 bs=ブロックサイズ count=ブロック数
/dev/zeroは全てnullを返すというスペシャルファイルである。また、bsとcountで作成するファイルのサイズと個数を指定できる。
以上より、今回実行した上記のコマンドは、「600M(1M×600)バイトの(中身が全てnullの)ファイルを作成する」という内容である。
# dd if=/dev/zero of=/var/swpfile bs=1M count=600
600+0 records in
600+0 records out
629145600 bytes (629 MB, 600 MiB) copied, 0.776777 s, 810 MB/s
スワップ用ファイルに変換
以下のコマンドを実行して、作成したファイルをスワップ領域として使用できるファイルに変換する。
mkswap /var/swp
# mkswap /var/swp
mkswap: /var/swp: insecure permissions 0644, 0600 suggested.
Setting up swapspace version 1, size = 600 MiB (629141504 bytes)
no label, UUID=af2e5f79-ccfe-4433-af69-9bd2aeccbc10
また、以下のコマンドで作成したファイルに権限を付与する。
chmod 600 /var/swp
スワップ領域の追加
以下のコマンドで、作成したスワップ領域用のファイルをスワップ領域に追加する。
swapon /var/swp
追加されているか確認する
以下のコマンドを実行してスワップ領域が追加されていることを確認する。
free -m
# free -m
total used free shared buff/cache available
Mem: 1694 1101 28 12 564 542
Swap: 2707 158 2549
以上よりスワップ領域が600MB追加されていることが確認できた。