詳細のOracle 10g、11グラムと関連する初期化パラメータチェックポイント

 私たちは、意味および10g、11gデータベースとチェックポイント関連の初期化パラメータとARCHIVE_LAG_TARGETパラメータの役割については、この記事で詳しく説明します。

以下は、議論のバージョンです:
$バージョンWHERE ROWNUM <= 2 VからSQL> SELECT *;
BANNER
--------------------------- -------------------------------------
Oracle Database 10gのEnterprise Editionのリリース10.2.0.1.0 - 64bi
PL / SQLリリース10.2.0.1.0 -生産
   パラメータは、ここで議論し、10gおよび11gは同じです。

:ここでは四つのパラメータに関連するOracle Database 10gの、11グラムとチェックポイントです
。SQL>パラメータのチェックポイントを表示する
値の型をNAME
-------------------------- ---------- ----------- ----------------------------- -
LOG_CHECKPOINT_INTERVAL整数0
LOG_CHECKPOINT_TIMEOUT整数1800
ブール値FALSE LOG_CHECKPOINTS_TO_ALERTの

SQL>パラメータMTTRショー
NAMEに値の型を
------------------------------------ --- ------------------------------ --------
FAST_START_MTTR_TARGET整数0

1 FAST_START_MTTR_TARGETパラメータ。

MTTR略称回復までの平均時間で、次のOracleは、このパラメータの説明です:

FAST_START_MTTR_TARGET

プロパティ 説明
パラメータタイプ 整数
デフォルト値 0
変更可能 ALTERシステム
値の範囲 0から3600秒
基本的な ノー
Real Application Clustersの 複数インスタンスには、異なる値を持つことができ、あなたは、実行時に値を変更することができます。

 

FAST_START_MTTR_TARGETは、データベースが単一インスタンスのクラッシュリカバリを実行するのにかかる秒数を指定することができます。指定された場合は、FAST_START_MTTR_TARGETはLOG_CHECKPOINT_INTERVALによって上書きされます。


    FAST_START_MTTR_TARGET指定された時間制限がデータベース・リカバリの単一インスタンスの例を実行すると、以下のパラメータがカバレッジLOG_CHECKPOINT_INTERVAL初期化パラメータを指定し、デフォルトのパラメータが0です。

:私たちは、LOG_CHECKPOINTS_TO_ALERT TRUEセット120秒に設定したパラメータをFAST_START_MTTR_TARGET
; SQL> ALTER SYSTEM SET FAST_START_MTTR_TARGET = 120
。変更されたシステム

SQL> SHOWパラメータMTTRの
NAME VALUEのTYPE
--------------- --------------------- ----------- ------------------ ------------
FAST_START_MTTR_TARGET整数120

SQL> trueにALTERシステムLOG_CHECKPOINTS_TO_ALERT = SET;
改変されたシステム

SQL>チェックポイントパラメータ表示
名値のタイプを
--------------- --------------------- ----------- ------------------ ------------
整数0 LOG_CHECKPOINT_INTERVAL
LOG_CHECKPOINT_TIMEOUT整数1800
LOG_CHECKPOINTS_TO_ALERTブールTRUE

   LOG_CHECKPOINTS_TO_ALERT = TRUE Oracleデータベースなど、詳細なアラーム・ログ・レコードのチェックポイント(チェックポイントとルーチン増分チェックポイント)の情報が変更されます。

    :アラームログを観察することによってのは、V $ INSTANCE_RECOVERYビューのクエリを見てみましょう、任意のチェックポイント(チェックポイントルーチンと増分チェックポイント)なしでOracleデータベースが120秒以内に発生し、見つかった
SQL> SELECT TARGET_MTTR、ESTIMATED_MTTR、Vからckpt_block_writes INSTANCE_RECOVERY $;
TARGET_MTTR ESTIMATED_MTTR CKPT_BLOCK_WRITES
----------- -------------- -----------------
         29 17 118

以下は、これらの三つのフィールドの説明です:

TARGET_MTTR 効果的なMTTRは、秒単位での目標値を(平均リカバリ時間)。TARGET_MTTRvalueはFAST_START_MTTR_TARGETパラメータ(TARGET_MTTR値を内部的に使用される)の値に基づいて算出され、通常、パラメータの値の近似値です。FAST_START_MTTR_TARGETパラメータ値(例えば、1秒)が非常に小さい、または(例えば、3600秒)非常に大きい場合には、計算は、システムの制約によって決定される目標値を生成します。このような場合には、TARGET_MTTR値は最短算出された時間、またはその回復がかかると予想される最長の計算時間になります。

FAST_START_MTTR_TARGETが指定されていない場合、このフィールドの値は、現在の推定MTTRです。

ESTIMATED_MTTR ダーティバッファの数に基づいて(MTTR)を回収し、(FAST_START_MTTR_TARGETが指定されていない場合は0)のブロックを記録するために、現在の推定平均時間。基本的には、この値は、あなたが回復しているシステムが今やっている仕事に基づいて取ることを期待可能性がどのくらいかを示します。
CKPT_BLOCK_WRITES チェックポイントの書き込みによって書かれたブロックの数


   FAST_START_MTTR_TARGET小さすぎる、または大きすぎる場合は、パラメータ値(秒)有効MTTR値、ベースTARGET_MTTR FAST_START_MTTR_TARGET算出したパラメータ値(内部で使用するため)、多くの場合、パラメータの近似値である:TARGET_MTTRの意味は以下の通りであります、システムの計算された目標値が制限され、この場合には、値が回復されるTARGET_MTTR予想計算時間は、最短または最長の計算時間です。
   ESTIMATED_MTTRの意味は次のとおりです。FAST_START_MTTR_TARGETが0に等しい、値はダーティバッファの数に基づいており、現在の推定MTTRのブロックをログに記録されていない場合、この値は、基本的には現在のシステムに基づいて、私たちに負荷の予想復旧時間を伝えることができます。
   CKPT_BLOCK_WRITESの意味がある:ブロックチェックポイントの数が書き込まれます。
   ESTIMATED_MTTR> TARGET_MTTRトリガデータベースのチェックポイントの後、チェックポイント終了時間が再計算されます。値が値TARGET_MTTR ESTIMATED_MTTRよりも大きい場合には、おそらくIOリソースのボトルネックを続けています。

   このことから、我々はそれを結論付けることができます:時間は、実行時のデータベースとは何の関係もFAST_START_MTTR_TARGETを設定していない、唯一のデータベースに関するダーティバッファの数に基づいて、ブロックを記録してMTTR時間を計算しています。

    Oracle 10gのを開始すると、Oracleは自動的にOracleのチェックポイント自動調整機能が有効になっている、FAST_START_MTTR_TARGETが0に設定されたチェックポイントを、調整することができます。アラームには、以下の情報を参照するにはログイン:
水曜日4月16日夜01時16分37秒2014
FAST_START_MTTR_TARGETがされていないため、MTTRアドバイザが無効になっている設定
    を自動的にチェックポイントは、ある程度のデータベースのピークのパフォーマンスを向上させるであろう時にIOがビジー状態ではありません使用する点調整機能をチェックします。データベースのリカバリ時間には一定の要件が存在しない場合は、FAST_START_MTTR_TARGETのデフォルト値のままにすることができます。

2.LOG_CHECKPOINT_INTERVALパラメータ。

以下は、Oracleパラメータの説明です:

LOG_CHECKPOINT_INTERVAL

プロパティ 説明
パラメータタイプ 整数
デフォルト値 0
変更可能 ALTERシステム
値の範囲 0 231 - 1
基本的な ノー
Real Application Clustersの 複数インスタンスには異なる値を持つことができます。

 

LOG_CHECKPOINT_INTERVALは、増分チェックポイントとREDOログに書き込まれた最後のブロックの間に存在することができますREDOログ・ファイル・ブロックの数の面でチェックポイントの頻度を指定します。この数は、物理的なオペレーティング・システム・ブロックではなく、データベース・ブロックを指します。

別のオンラインREDOログ・ファイルからの切り替え時にかかわらず、この値の、チェックポイントが必ず発生します。値は、実際のREDOログ・ファイルのサイズを超える場合したがって、チェックポイントは、ログを切り替えるときにのみ起こります。チェックポイントの頻度は、予期しない障害から回復するために、データベースに必要な時間に影響を与える要因の一つです。

   LOG_CHECKPOINT_INTERVALは、増分チェックポイントの数を指定し、最終的には、このチェックポイント以上をトリガーするデータのブロック間のREDOログREDOログ・ブロックを書き込みます。設定値は、ブロックがデータベースではなく、物理的なオペレーティング・システム・ブロックです。
   この値は、データベースREDOログの切り替えがチェックポイントをトリガされたとき、どのくらいであるかどうか。したがって、値は、スイッチは、ログチェックポイントが発生する場合にのみREDOログ・ファイルのサイズを超える場合。
   あなたはFAST_START_MTTR_TARGET値を設定した場合、LOG_CHECKPOINT_INTERVALは無視されます。

私たちは、100にパラメータをLOG_CHECKPOINT_INTERVALます:
SQL> SETシステムLOG_CHECKPOINT_INTERVAL ALTER = 100;
システムは、変更された。

SQL>パラメータのチェックポイントを表示
NAMEに値の型を
---------------------- -------------- ----------- ------------------------- -----
LOG_CHECKPOINT_INTERVAL整数100
LOG_CHECKPOINT_TIMEOUT整数1800
LOG_CHECKPOINTS_TO_ALERTブールTRUE

SQL>ショーパラメータMTTR
名タイプVALUE
------------------------------------ ------ ----- ------------------------------
FAST_START_MTTR_TARGET整数0

查询V $ INSTANCE_RECOVERY视图:
SQL>を選択しtarget_redo_blks、actual_redo_blks 、log_file_size_redo_blks、五$ INSTANCE_RECOVERYからlog_chkpt_interval_redo_blks。
TARGET_REDO_BLKS ACTUAL_REDO_BLKS LOG_FILE_SIZE_REDO_BLKS LOG_CHKPT_INTERVAL_REDO_BLKS
---------------- ---------------- -------------- --------- ----------------------------
             100 78 184320 100

下面是对着几个字段的解释:

ACTUAL_REDO_BLKS リカバリに必要なREDOブロックの現在の実際の数
TARGET_REDO_BLKS 回復のために処理しなければならないREDOブロックの現在の目標数。この値は、次の3つの列の最小値であり、チェックポイントを決定する3ユーザ定義の限界のかを識別する。
LOG_FILE_SIZE_REDO_BLKS チェックポイントが完了する前に、ログ・スイッチが発生しないことを保証するために必要なREDOブロックの最大数。
LOG_CHKPT_TIMEOUT_REDO_BLKS LOG_CHECKPOINT_TIMEOUTパラメータを満たすためにリカバリ時に処理する必要があるREDOブロックの数。そのパラメータが設定されていない限り、表示される値は意味がありません。
LOG_CHKPT_INTERVAL_REDO_BLKS LOG_CHECKPOINT_INTERVALパラメータを満たすためにリカバリ時に処理する必要があるREDOブロックの数。そのパラメータが設定されていない限り、表示される値は意味がありません。


    LOG_CHKPT_INTERVAL_REDO_BLKS的含义是在恢复期间满足LOG_CHECKPOINT_INTERVAL参数需要处理的redo block数目。这个参数只在设置了LOG_CHECKPOINT_INTERVAL才有意义。
   LOG_FILE_SIZE_REDO_BLKS的含义是没有发生日志切换,没有完成CHECKPOINT之前要求保留的最大redo块。
   TARGET_REDO_BLKS的含义是当前恢复必须处理的目标块数目,这个值是LOG_FILE_SIZE_REDO_BLKS、LOG_CHKPT_TIMEOUT_REDO_BLKS、LOG_CHKPT_INTERVAL-REDO_BLKS 3个值的最小值,以确定3个用户定义的CHECKPOINT限制值哪个生效。
   ACTUAL_REDO_BLKS的含义是当前恢复操作要处理活动的redo block数目。
   如果ACTUAL_REDO_BLKS>=TARGET_REDO_BLKS将触发检查点操作。

3.LOG_CHECKPOINT_TIMEOUT参数。

下面是Oracle对LOG_CHECKPOINT_TIMEOUT的解释:

LOG_CHECKPOINT_TIMEOUT

Property Description
Parameter type Integer
Default value 1800
Modifiable ALTER SYSTEM
Range of values 0 to 231 - 1
Basic No
Real Application Clusters Multiple instances can have different values.

 

LOG_CHECKPOINT_TIMEOUT specifies (in seconds) the amount of time that has passed since the incremental checkpoint at the position where the last write to the redo log (sometimes called the tail of the log) occurred. This parameter also signifies that no buffer will remain dirty (in the cache) for more than integer seconds.

Specifying a value of 0 for the timeout disables time-based checkpoints. Hence, setting the value to 0 is not recommended unless FAST_START_MTTR_TARGET is set.


    LOG_CHECKPOINT_TIMEOUT指定的是自动上一次增量检查点到最后的redo log写发生经过的总的时间(单位秒),这个参数意味着一旦增量检查点间隔时间超过了该值,将触发新的增量检查点。
   将该值设置为0将禁用基于时间的检查点,因此,除非设置了FAST_START_MTTR_TARGET,否则不建议将该参数设置为0,该参数的默认值为1800,30分钟。

我们将LOG_CHECKPOINT_TIMEOUT设置为80:
SQL> alter system set log_checkpoint_timeout=80;
System altered.

SQL> show parameter checkpoint
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_checkpoint_interval              integer     100
log_checkpoint_timeout               integer     80
log_checkpoints_to_alert             boolean     TRUE

SQL> show parameter mttr
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
fast_start_mttr_target               integer     0

从告警日志可以看出:
Wed Apr 16 04:04:13 2014
ALTER SYSTEM SET log_checkpoint_timeout=80 SCOPE=BOTH;
Wed Apr 16 04:04:14 2014
Incremental checkpoint up to RBA [0x5.15fb.0], current log tail at RBA [0x5.15fb.0]
Wed Apr 16 04:05:32 2014
Incremental checkpoint up to RBA [0x5.1601.0], current log tail at RBA [0x5.1609.0]
Wed Apr 16 04:06:50 2014
Incremental checkpoint up to RBA [0x5.1617.0], current log tail at RBA [0x5.1617.0]
Wed Apr 16 04:08:08 2014
Incremental checkpoint up to RBA [0x5.1624.0], current log tail at RBA [0x5.1624.0]

 

每80秒即会执行一次检查点操作。

查看V$INSTANCE_RECOVERY视图:
SQL> select target_redo_blks,actual_redo_blks,log_file_size_redo_blks,log_chkpt_timeout_redo_blks,log_chkpt_interval_redo_blks from v$instance_recovery;
TARGET_REDO_BLKS ACTUAL_REDO_BLKS LOG_FILE_SIZE_REDO_BLKS LOG_CHKPT_TIMEOUT_REDO_BLKS LOG_CHKPT_INTERVAL_REDO_BLKS
---------------- ---------------- ----------------------- --------------------------- ----------------------------
              24               14                  184320                          24                          100

    TARGET_REDO_BLKS=LOG_CHKPT_TIMEOUT_REDO_BLKS,说明当前是log_checkpoint_timeout在起作用。TARGET_REDO_BLKS和LOG_CHKPT_TIMEOUT_REDO_BLKS会随时发生变化。

4.ARCHIVE_LAG_TARGET参数。

下面是Oracle对ARCHIVE_LAG_TARGET参数的解释:

ARCHIVE_LAG_TARGET

Property Description
Parameter type Integer
Default value 0 (disabled)
Modifiable ALTER SYSTEM
Range of values 0 or any integer in [60, 7200]
Basic No
Real Application Clusters Multiple instances should use the same value.

 

ARCHIVE_LAG_TARGET limits the amount of data that can be lost and effectively increases the availability of the standby database by forcing a log switch after the specified amount of time elapses.

A 0 value disables the time-based thread advance feature; otherwise, the value represents the number of seconds. Values larger than 7200 seconds are not of much use in maintaining a reasonable lag in the standby database. The typical, or recommended value is 1800 (30 minutes). Extremely low values can result in frequent log switches, which could degrade performance; such values can also make the archiver process too busy to archive the continuously generated logs.

  ARCHIVE_LAG_TARGET限制大量的数据丢失,通过超过指定时间之后强制redo log切换,有效的增加了standby database的高可用性。值为0将禁用该特性,否则这个值表示秒数,Oracle推荐的值为1800(30分钟),较低的值将导致过于频繁的切换,将影响性能,这样的值将使得归档进程忙于归档,不断的生成日志。

我们将ARCHIVE_LAG_TARGET设置为30:
SQL> alter system set archive_lag_target=30;
System altered.

SQL> show parameter archive_lag_target
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
archive_lag_target                   integer     60

   可以看到该参数的最小值是60。

查看操作系统归档目的地:
[oracle1@redhat5 2014_04_16]$ ll
total 23060
-rw-r----- 1 oracle1 oinstall  4848128 Apr 16 02:04 o1_mf_1_3_9ntx62g5_.arc
-rw-r----- 1 oracle1 oinstall 15600640 Apr 16 03:00 o1_mf_1_4_9nv0g8c6_.arc
-rw-r----- 1 oracle1 oinstall  3097600 Apr 16 04:31 o1_mf_1_5_9nv5r5ly_.arc
-rw-r----- 1 oracle1 oinstall     6144 Apr 16 04:32 o1_mf_1_6_9nv5t4of_.arc
-rw-r----- 1 oracle1 oinstall     6144 Apr 16 04:33 o1_mf_1_7_9nv5w10y_.arc
-rw-r----- 1 oracle1 oinstall     6144 Apr 16 04:34 o1_mf_1_8_9nv5xx3k_.arc
   从上面的数据可以看到,Oracle每分钟生成一个归档Redo Log。

注意:
   对于不繁忙的数据库更应该设置该值,不繁忙的系统可能几小时才切换一次redo log,如果在切换前由于断电或其他原因导致CURRENT或ACTIVE的Redo log损坏,那么丢失的将是几小时的数据。

おすすめ

転載: blog.csdn.net/w892824196/article/details/95327736