ブロックチェックパラメータ

(8.0.27)

https://dev.mysql.com/doc/refman/8.0/ja/innodb-parameters.html#sysvar_innodb_checksum_algorithm


select @@innodb_checksum_algorithm;


innodb_checksum_algorithm

・・none

・・innodb

・・crc32
デフォルト

・・strict_none

・・strict_innodb

・・strict_crc32

 

(19c)

・DB_BLOCK_CHECKING
データベース・ブロックに対してブロック・チェックを実行するかどうかを指定します
ブロックのデータ全体をチェックし、論理的な自己一貫性を確認します。
1-10%のオーバーヘッドの原因になります。

・・OFF
デフォルト
ユーザー表領域内のブロックに対してブロック・チェックは実行されません。
ただし、SYSTEM表領域のブロックに対するセマンティック・ブロック・チェックは常にオンです。

・・LOW
モリー内でブロックの内容が変更された後、基本ブロック・ヘッダー・チェックが実行されます。

・・MEDIUM
索引以外のすべてのオブジェクトに対して、すべてのLOWチェックおよび完全セマンティック・チェックが実行されます。

・・FULL
すべてのオブジェクトに対して、すべてのLOWおよびMEDIUMチェックおよび完全セマンティック・チェックが実行されます。


・DB_BLOCK_CHECKSUM
DBWnおよびダイレクト・ローダーが、チェックサムを計算し、ディスクにデータ・ブロックを書き込むときに、
すべてのデータ・ブロックのキャッシュ・ヘッダーにそのチェックサムを格納するかどうかを決めます。
チェックサムを使用すると、基になっているディスク、格納システムまたはI/Oシステムが原因で発生する破損を検出できます。

・・OFF
DBWnはユーザー表領域ではなくSYSTEM表領域のみに対して、チェックサムを計算します。

・・TYPICAL
デフォルト
1-2%のオーバーヘッドが発生します。

・・FULL
インメモリーの破損も捕捉し、ディスクの破損を防ぎます。
4-5%のオーバーヘッドが発生します。

 

・DB_ULTRA_SAFE
・・OFF
デフォルト

・・DATA_ONLY
DB_BLOCK_CHECKING = MEDIUM
DB_BLOCK_CHECKSUM = FULL
DB_LOST_WRITE_PROTECT = TYPICAL

・・DATA_AND_INDEX
DB_BLOCK_CHECKING = FULL
DB_BLOCK_CHECKSUM = FULL
DB_LOST_WRITE_PROTECT = TYPICAL

 

(14)
http://pgsqldeepdive.blogspot.com/2013/12/data-checksum-93.html


initdb時のオプション(--data-checksums)としてデータチェックサムの指定可能


デフォルトはOFF

show data_checksums;
/usr/pgsql-14/bin/pg_controldata $PGDATA | grep -iE  "チェックサム|checksum"

 

(2019)

select name,page_verify_option_desc from sys.databases;

alter database test set page_verify checksum with no_wait;
alter database test set page_verify torn_page_detection with no_wait;
alter database test set page_verify none with no_wait;

・page_verify
・・checksum
デフォルト
ページ全体の内容についてチェックサムを計算し、ページがディスクに書き込まれるときに、その値をページ ヘッダーに格納します。

・・torn_page_detection
8 KB のデータベース ページに含まれる 512 バイトのセクターごとに特定の 2 ビット パターンを保存し、
ページがディスクに書き込まれるときに、データベース ページ ヘッダーに格納します。 

・・none
チェックサムや破損ページを確認しません。