

# DB エンジンのリードレプリカ間の違い
<a name="USER_ReadRepl.Overview.Differences"></a>

Amazon RDS DB エンジンごとにレプリケーションの実装方法は異なるため、いくつかの大きな違いを知っておく必要があります。

## Db2
<a name="USER_ReadRepl.Overview.Differences.Db2"></a>

RDS for Db2 のレプリカには、以下の機能と動作があります。
+ **レプリケーション方法** – 物理レプリケーション。
+ **トランザクションログの消去** – 以下の条件が満たされると、RDS for Db2 はプライマリ DB インスタンスからログを消去します。
  + ログは 2 時間以上経過している。
  + アーカイブログに設定した保持時間が経過している。
  + RDS for Db2 は、すべてのレプリカ DB インスタンスにログを正常にレプリケートした。

  これは、同じ AWS リージョンの DB インスタンスとクロスリージョンの DB インスタンスの両方に適用されます。アーカイブログの保持時間の設定については、「[rdsadmin.set\$1archive\$1log\$1retention](db2-sp-managing-databases.md#db2-sp-set-archive-log-retention)」を参照してください。
+ **書き込み可能なレプリカ** – Db2 レプリカは物理コピーであり、Db2 はレプリカへの書き込みを許可しません。リードレプリカを昇格させることで、書き込み可能にすることができます。昇格させたレプリカには、昇格をリクエストした時点までにレプリケートされたデータが含まれます。
+ **バックアップ** – RDS for Db2 リードレプリカでは、自動バックアップと手動スナップショットがサポートされています。
+ **並列レプリケーション** – アーカイブログデータは、常にプライマリデータベースからそのすべてのレプリカに並列に送信されます。
+ **スタンバイ状態** – スタンバイレプリカの主な用途は、クロスリージョンのディザスタリカバリです。詳細については、「[Amazon RDS for Db2 のレプリカの使用](db2-replication.md)」を参照してください。

## MariaDB と MySQL
<a name="USER_ReadRepl.Overview.Differences.MariaDBMySQL"></a>

RDS for MariaDB および RDS for MySQL のリードレプリカには、次の機能と動作があります。
+ **レプリケーション方法** – 論理レプリケーション。
+ **トランザクションログの消去** – RDS for MariaDB および RDS for MySQL は、適用されていないバイナリログを保持します。
+ **書き込み可能なレプリカ** – MariaDB または MySQL のリードレプリカは書き込み可能にすることができます。
+ **バックアップ** – RDS for MariaDB または RDS for MySQL のリードレプリカでは、自動バックアップと手動スナップショットがサポートされています。
+ **並列レプリケーション** – すべてのサポートされている MariaDB バージョンおよび MySQL のバージョンでは、並列レプリケーションのスレッドが許可されます。
+ **マウント状態** – サポートされていません。

## Oracle
<a name="USER_ReadRepl.Overview.Differences.Oracle"></a>

RDS for Oracle のリードレプリカには、次の機能と動作があります。
+ **レプリケーション方法** – 物理レプリケーション。
+ **トランザクションログの消去** – プライマリ DB インスタンスにクロスリージョンのリードレプリカがない場合、Amazon RDS for Oracle は、ソース DB インスタンスで最低 2 時間のトランザクションログを保持します。2 時間後、またはアーカイブログの保持時間設定のいずれか長い方の時間が経過すると、ログはソース DB インスタンスから削除されます。ログがデータベースに正常に適用された場合にのみ、アーカイブログの保持時間設定が経過すると、ログはリードレプリカから削除されます。

  プライマリ DB インスタンスには、1 つ以上のクロスリージョンのリードレプリカが存在する場合があります。その場合 Amazon RDS for Oracle は、ソース DB インスタンスのトランザクションログが転送され、すべてのクロスリージョンリードレプリカに適用されるまで保持します。

  アーカイブログの保持時間の設定については、「[アーカイブ REDO ログの保持](Appendix.Oracle.CommonDBATasks.RetainRedoLogs.md)」を参照してください。
+ **書き込み可能なレプリカ** – Oracle のリードレプリカは物理コピーであり、Oracle ではリードレプリカの書き込みは許可されません。リードレプリカを昇格させて書き込み可能にすることができます。昇格したリードレプリカには、昇格をリクエストされた時点までのレプリケートされたデータがあります。
+ **バックアップ** – RDS for Oracle のリードレプリカでは、自動バックアップと手動スナップショットがサポートされています。
+ **並列レプリケーション** – REDO ログデータは、常にプライマリデータベースからそのすべてのリードレプリカに並列に送信されます。
+ **マウント状態** – マウントされたレプリカの主な用途は、クロスリージョンのディザスタリカバリです。マウントされたレプリカには、Active Data Guard ライセンスは必要ありません。詳細については、「[Amazon RDS for Oracle でのリードレプリカの使用](oracle-read-replicas.md)」を参照してください。

## PostgreSQL
<a name="USER_ReadRepl.Overview.Differences.PostgreSQL"></a>

RDS for PostgreSQL のリードレプリカには、次の機能と動作があります。
+ **レプリケーション方法** – 物理レプリケーション。
+ **トランザクションログの消去** – PostgreSQL にはパラメータ `wal_keep_segments` があり、これにより、データをリードレプリカに提供するために、先書きログ (WAL) ファイルをいくつ保持するかを指示します。パラメータ値は、保持するログの数を指定します。
+ **書き込み可能なレプリカ** – PostgreSQL のリードレプリカは物理コピーであり、PostgreSQL ではリードレプリカを書き込み可能にすることは許可されません。
+ **バックアップ** – RDS for PostgreSQL のリードレプリカでは、手動スナップショットがサポートされています。リードレプリカの自動バックアップは、RDS for PostgreSQL 14.1 以降のバージョンでのみサポートされます。RDS for PostgreSQL 14.1 より前のバージョンの PostgreSQL リードレプリカでは、自動バックアップをオンにすることはできません。RDS for PostgreSQL 13 以前のバージョンでバックアップが必要な場合は、リードレプリカのスナップショットを作成します。
+ **並列レプリケーション** – PostgreSQL では、単一プロセスでレプリケーションを処理します。
+ **マウント状態** – サポートされていません。

## SQL Server
<a name="USER_ReadRepl.Overview.Differences.SQLServer"></a>

RDS for SQL Server のリードレプリカには、次の機能と動作があります。
+ **レプリケーション方法** – 物理レプリケーション。
+ **トランザクションログの消去** – プライマリレプリカのトランザクションログファイルの仮想ログファイル (VLF) は、セカンダリレプリカで不要になったら切り捨てることができます。

  VLF は、レプリカでログレコードがハードニングされている場合にのみ非アクティブとしてマークできます。プライマリレプリカ内でのディスクサブシステムの速度に関係なく、トランザクションログは、最も遅いレプリカで強化されるまで VLF を保持します。
+ **書き込み可能なレプリカ** – SQL Server のリードレプリカは物理コピーであり、書き込みは許可されません。リードレプリカを昇格させて書き込み可能にすることができます。昇格したリードレプリカには、昇格をリクエストされた時点までのレプリケートされたデータがあります。
+ **バックアップ** – RDS for SQL Server のリードレプリカでは、自動バックアップと手動スナップショットはサポートされていません。
+ **並列レプリケーション** – REDO ログデータは、常にプライマリデータベースからそのすべてのリードレプリカに並列に送信されます。
+ **マウント状態** – サポートされていません。