UNDO_RETENTION
undo retention という言葉は文字通り、アンドゥーの保持ポイントを意味します。つまり、現在時刻からどの程度遡ったアンドゥーログが保持されるかということです。OceanBaseデータベースにおいては、この期間内のすべてのデータの複数バージョンを保持することになります。テナントレベルの構成パラメータ undo_retention を使用して設定でき、デフォルト単位は秒です。
フラッシュバッククエリ
フラッシュバッククエリ(Flashback Query)は、ユーザーが特定の履歴バージョンのデータを照会することを可能にします。OceanBaseデータベースでは、以下の構文を使用してクエリを実行できます:
Oracleモード:
AS OF SCNおよびAS OF TIMESTAMP。MySQLモード:
AS OF SNAPSHOT。
ユーザーがテナントレベルの構成パラメータ undo_retention を設定した後、T - undo_retention から現在時刻 T までの時間範囲内の任意の複数バージョンをフラッシュバッククエリで照会できます。
クエリレプリカの選択
ユーザーが特定の履歴バージョンのデータのクエリを指定した場合、通常のクエリのように常にリーダーを照会するわけではなく、まずローカルマシン上のレプリカを優先的に照会します。ローカルレプリカが存在しない場合は、同ゾーン内の他のマシン上のレプリカを優先的に照会し、最後にリーダーを照会します。
注意事項
T - undo_retention の時間帯内にDDL操作があった場合、次のようになります:
列追加操作について、フラッシュバッククエリで操作前のデータを照会する際、新しく追加されたすべての列はデフォルト値となります。
テーブルの作成、テーブルの削除、または列の削除などの操作について、フラッシュバッククエリで操作前のデータを照会する際、システムはエラーを報告します。