On the Rock

今回はREDOログファイルの最小サイズを確認してみた。

概要


オラクルデータベースにとって必要不可欠なREDOログ。 データベースのパフォーマンスにも関わってくるこのファイル。 サイズはGB等々、それなりに大きい単位で設定することが多いだろうが、 一体最小サイズはいくつだろうかという疑問が湧いた。 というのも、個人のテスト環境で検証する際にはできればファイルサイズはなるたけ小さくしたい。 そういうわけで調べてみた。

といっても、やっぱりこういうのは先人がいるわけで以下のブログですでに調査されていた。

MINIMUM SIZE OF REDO LOGFILES AND THEIR BLOCK SIZE

ただ記事の月日が古いので、12cでもサイズに変更はないのか確認することにした。

環境


  • Linux : Red Hat Enterprise Linux Server release 6.5 (Santiago)
  • oracle 12c ( Single Instance )

実験



-- 現在のREDOグループの最大番号を確認
SQL> select max(group#) from v$logfile;

MAX(GROUP#)
-----------
      7

-- REDOグループの追加
SQL> alter database add logfile group 8 '/u01/app/oracle/oradata/TESTDB/onlinelog/redo8.log' size 3M;
alter database add logfile group 8 '/u01/app/oracle/oradata/TESTDB/onlinelog/redo8.log' size 3M
*
1でエラーが発生しました。:
ORA-00336: ログ・ファイルのサイズ6144が最小値8192より小さくなっています

SQL> alter database add logfile group 8 '/u01/app/oracle/oradata/TESTDB/onlinelog/redo8.log' size 4M;

データベースが変更されました。

SQL>

以上から、最小サイズは4MBであることがわかった。
また、ブロックサイズは4MB/8192=512バイトであることがわかる。
ちなみにREDOログのブロックサイズの情報は12cでは以下の通り、v$logディクショナリに情報が記載されている(参考)。

SQL> select group#, thread#, blocksize, bytes/1024/1024 MB from v$log;

GROUP#    THREAD#  BLOCKSIZE     MB
---------- ------------- --------------- ----------
         1             1         512          50
         2             1         512          50
         3             1         512          50
         8             1         512           4

SQL>

まとめ


REDOログファイルの最小は4MBで、ブロックサイズは512バイトである。

なんだか一抹の不安がよぎり、12c公式ドキュメントを調べてみたところ

REDOログ・ファイルの最小サイズは4MBです。

思いっきり書かれていた。。。涙

自分が疑問に思ったことはすでに調べられていることが多く 日本語で検索して出てこない場合には英語で検索するとたくさんひっかかる。 今回の場合は勇み足で先に英語で検索し ドンピシャの記事を見つけて幸せな気分に浸ってしまっていた。反省。
なので、やっぱりまず最初は公式ドキュメントを調べることが重要である。
これが俗に言う、気づかないふりをしていた例かもしれない。

参考資料


MINIMUM SIZE OF REDO LOGFILES AND THEIR BLOCK SIZE
Oracle® Databaseリファレンス12c リリース1 (12.1) Oracle® Database管理者ガイド12cリリース1 (12.1)