システム開発・アプリケーション開発、AWSの運用・導入のことならXPクラウド

電話番号

お問い合わせ

受付時間 平日10:00~18:00

AWSコンサルティングパートナー

クロスパワーブログ

Amazon RDS for Oracle入門(2)

マツナミです。前回に引き続いてAmazon RDS for Oracleのオンプレ環境との違いについて見ていきたいと思います。

初期化パラメータ

OracleDBを管理するうえで重要な項目の1つに初期化パラメータがあると思います。
オンプレではPFILE(initSID.ora)を手で修正したり、ALTER SYSTEMで動的に変更したり、という管理方法になりますがRDSではこれらの方法は不可となります。
ではどうするかというとAWSのマネジメントコンソール(Web)かAWS CLIを利用するということになります。
パラメータグループと呼ばれる初期化パラメータのグループを用意し、それを作成したDBに割り当てることになります。
デフォルトのパラメータグループは編集できませんが、追加したグループであれば編集可能です。

マネジメントコンソールでのパラメータ操作については直感的にわかるのでここでは割愛させていただきます。
まずは、デフォルトのパラメータグループを付与したときの初期化パラメータを見てみましょう。
マスターユーザにはv$parameterを参照するための権限が付与されてますので、パラメータを見るだけなら従来どおりsqlplusで確認することができます。

SQL> select name, value from v$parameter where isdefault = 'FALSE' order by 1;

NAME                           VALUE
 -------------------------------------------------------------------------------------
archive_lag_target             300
audit_file_dest                /rdsdbdata/admin/ORCL/adump
control_files                  /rdsdbdata/db/ORCL_A/controlfile/control-01.ctl
db_block_checking              MEDIUM
db_create_file_dest            /rdsdbdata/db
db_name                        ORCL
db_recovery_file_dest_size     1073741824
db_unique_name                 ORCL_A
dg_broker_config_file1         /rdsdbdata/config/dr1ORCL.dat
dg_broker_config_file2         /rdsdbdata/config/dr2ORCL.dat
diagnostic_dest                /rdsdbdata/log
filesystemio_options           setall
local_listener                 (ADDRESS = (PROTOCOL=TCP)(HOST=localhost)(PORT=1521))
log_archive_dest_1             location="/rdsdbdata/db/ORCL_A/arch/redolog",  valid_for=(ALL_LOGFILES,ALL_ROLES)
log_archive_format             -%s-%t-%r.arc
memory_max_target              624951296
memory_target                  624951296
open_cursors                   300
processes                      84
recyclebin                     OFF
spfile                         /rdsdbbin/oracle/dbs/spfileORCL.ora
standby_file_management        AUTO
undo_tablespace                UNDO_T1

23行が選択されました。

SQL>

上記SQLはデフォルト値から変更されているパラメータを確認してます。
チューニングの基本項目であるmemory_targetやprocessesなどはかなり控え目な値になっていますが
これはRDSを最小ランクにしているためです。
また、各種ファイルのパスが/rdsdbdata/以下に指定されていることがわかります。spfileだけは/rdsdbbinですね。

REDOログ

REDOログはデフォルトで128MBのファイルが4つ作成されています。

SQL> select GROUP#, THREAD#, BYTES/1024/1024 MB from v$log;

    GROUP#    THREAD#         MB
---------- ---------- ----------
         1          1        128
         2          1        128
         3          1        128
         4          1        128

SQL>

オンプレ環境でDBCAを使った場合、デフォルトでは50MBのファイルが3つ作成されるのでオンプレとの構成は異なります。
といってもREDOログのサイズは、各システムにあわせてチューニングされるのが常なので、ファイルサイズのデフォルト値が異なることはDBA的にあまり気にするところではありません。
どちらかというとREDOログメンバー数が1固定となっている方が気になりそうですが、メンバー数を2以上にする方法は公開されていません。

表領域・データファイル

RDS for Oracleのデータファイル管理の特徴はOMFとBIGFILEといえると思います。

OMF(Oracle Managed Files)

OMFはデータファイル名をOracleが自動的に付与する機能です。
オンプレでも使っているシステムは普通にあるかと思います。RMANでリストアのテストをするとファイル名が変わってしまったりするアイツです。
OMFだとデータファイル作成時にファイル名を指定しなくてよいため、マネージドサービスのRDSにはうってつけの機能なのだと思います。
データファイルの作成先は前述のパラメータのとおり、/rdsdbdata/db です。

BIGFILE

RDSでは、導入初期から存在する表領域(SYSTEMやSYSAUXなど)はBIGFILEです。

SQL> select tablespace_name, bigfile from dba_tablespaces;

TABLESPACE_NAME                BIGFILE
------------------------------ ----------
SYSTEM                         YES
SYSAUX                         YES
UNDO_T1                        YES
TEMP                           YES
USERS                          YES
RDSADMIN                       YES

6行が選択されました。

SQL>

オンプレ環境ではSMALLFILEがデフォルトなので、その差異には気をつけないといけませんね。

差異についてざっくり説明するとSMALLFILE表領域は複数のデータファイルから構成されるのに対し、BIGFILE表領域は1つのデータファイルから構成されます。
SMALLFILEの場合、データファイルのサイズの上限は約32GB(ブロックサイズが8KBの場合)ですがBIGFILEの場合、32TBです。

SQL> create smallfile tablespace TESTTBS datafile size 100M autoextend on;

表領域が作成されました。

SQL> select tablespace_name, maxbytes/1024/1024/1024 GB from dba_data_files;

TABLESPACE_NAME                    GB
------------------------------ ------
SYSTEM                          32768
SYSAUX                          32768
UNDO_T1                           100
USERS                           32768
RDSADMIN                        32768
TESTTBS                            32

6行が選択されました。

SQL>

オンプレシステムではデータファイルのサイズは固定として、自動拡張としないシステムが少なくありません。
そういうシステムでは表領域の使用率の監視を定期的に行い、ディスクフルになる前にDBAがファイルサイズの拡張、もしくはデータファイルの追加を行います。
が、BIGFILE表領域ではデータファイルの追加は行えないことになります。保守の手順がシンプルになると喜ぶところでしょうか。

ちなみに、新規に作る表領域については上記の通りSMALLFILE表領域とすることもできますが、AWSはBIGFILEを推奨していますので素直にBIGFILEにした方がよさそうです。
SMALLFILE表領域のサイズ変更や自動拡張設定の変更をするにはALTER DATABASEが必要になる(つまりRDSでは実行できない)ので、保守性を考えてもBIGFILEです。

BIGFILEとするうえで気をつけておかないといけない点として挙げられるのは、そのままではデータファイルが32GB以上に自動拡張するという点でしょうか。
データが急に大きくなることはあまりないですが、UNDOやTEMPがクエリーによって一気に数10GB利用したという話は珍しくありません。
そのような事態になり、ファイルシステムが逼迫しても嫌なので、サイズ管理は必要ですね。

長くなってしまったので、今回はこの辺で。
次回はオプショングループや運用面について書きたいと思います。

最新記事

  • Amazon RDS for Oracle入門(2)

    マツナミです。前回に引き続いてAmazon RDS for Oracleのオンプレ環境との違いについて見ていきたいと思います。 初期化パラメータ OracleDBを管理するうえで重要な項目の1つに初期化パラメータがあると …

  • Amazon RDS for Oracle入門(1)

    はじめまして、マツナミと申します。 普段はOracle Databaseの導入を主軸として、ITインフラの設計・構築などの仕事をしています。 そんなわけで、データベース周りのことについてこのブログに書いていきたいと思いま …

  • 河北新報オンラインニュースに弊社サービスが取り上げられました

    河北新報オンラインニュース(宮城県仙台市)に、弊社サービスを取り上げて頂きました。リンクと内容は以下です。   http://www.kahoku.co.jp/release/201612267501.html …

  • 新年のご挨拶

    謹んで新年のお慶びを申し上げます。 昨年は格別の御厚情を賜り、厚く御礼を申し上げます。 昨年末はAWS専用の監視ツールを作成するなどし、ノウハウを着実に積んでまいりました。 今後とも皆様の信頼にお応えできるよう、倍旧の努 …

  • WAFによるアクセス制御(Cloud Front + S3)

    こんにちは。新卒のKatoです。 今回はAWS WAFによるWebアクセス制御の機能についてご紹介致します。 下記のような構成でWAFによるS3バケット内のオブジェクトへのアクセス制御を行っていきます。 [S3の設定] …

AWSの導入支援・運用代行のことならおまかせクラウドにご相談ください
Copyright 2016 Cross Power Corporation. All Rights Reserved.