tencent cloud

TencentDB for MySQL

動向とお知らせ
製品アップデート情報一覧
初心者ガイド
製品紹介
製品概要
製品の優位性
適用シナリオ
データベースのアーキテクチャ
タグ編集
製品機能リスト
データベースインスタンス
高可用性(マルチアベイラビリティゾーン)
地域とAvailability Zone
自社研究カーネル
TXSQLカーネル概要
機能系特性
パフォーマンス系特性
セキュリティ系特性
安定性系特性
TXRocksエンジン
購入ガイド
課金概要
購入方法
支払い更新の説明
支払い延滞の説明
返金説明
インスタンス調整の料金の説明
バックアップキャパシティ課金説明
クイックスタート
概要
MySQLインスタンスの作成
操作ガイド
使用制限
操作一覧
インスタンスの管理とメンテナンス
アップグレードインスタンス
拡張インスタンス
データベースプロキシ
データベース管理(DMC)
アカウント管理
パラメータ設定
バックアップとロールバック
データ移行
インターネットとセキュリティ
監視とアラーム
ログセンター
タグ
プラクティスチュートリアル
MySQL利用規約
アプリケーションの自動再接続機能のコンフィグレーション
MySQLマスターインスタンスパラメータの変更影響
MyISAMからInnoDBエンジンへの切り替え制限
TencentDB for MySQLのためのVPC作成
MySQLによるサービス負荷能力の向上
2地域3センターのディザスタリカバリ構築
リード・ライト分離によるTencentDB for MySQLパフォーマンスの拡張
DTSでInnoDBデータをRocksDBに移行します
LAMPスタック上のWebアプリケーションの構築
Drupalウエブサイトの構築
Python言語によるMySQL APIの使用
ホワイトペーパー
パフォーマンス白書
セキュリティ白書
トラブルシューティング
接続に関する問題
性能関連
インスタンスデータの同期遅延
大文字と小文字を区別しない設定に失敗しました
APIドキュメント
History
Introduction
API Category
Instance APIs
Making API Requests
Data Import APIs
Database Proxy APIs
Database Audit APIs
Security APIs
Task APIs
Backup APIs
Account APIs
Rollback APIs
Parameter APIs
Database APIs
Monitoring APIs
Log-related API
Data Types
Error Codes
よくある質問
課金関連
ロールバック関連の問題
接続とログインに関する問題
パラメータを変更
アップグレード関連の問題
アカウント権限
性能メモリ
運営する
データ移行
機能特徴
コンソール関連
ログ関連
API 2.0切り替え 3.0ガイド
Service Agreement
Service Level Agreement
Terms of Service
汎用参考
標準と認証
お問い合わせ
用語集

フラッシュバッククエリー

PDF
フォーカスモード
フォントサイズ
最終更新日: 2026-03-11 10:14:17

機能説明

データベースの運用保守中に誤動作が発生することがあります、このような誤動作は、業務に重大な影響を及ぼす可能性があります。誤動作によって業務に影響が及んだ場合、一般的なリカバリ手段としては、ロールバックやクローン作成などがありますが、データの変更が少ない場合や、緊急の障害修復では、エラーが発生しやすく時間がかかり、また、データ量が多い場合にはリカバリ時間を把握できません。TXSQLチームは、Innodbエンジン上でフラッシュバッククエリー機能を設計・実装しました。簡単なSQL文だけで誤動作前の履歴データを照会することができます。特定のSQL構文で特定の時点のデータを照会することで、大量のデータ照会と回復時間を節約し、誤動作後のデータを迅速に復元し、業務の迅速な再開を保証します。

対応バージョン

カーネルバージョン MySQL 5.7 20230601以降です。
カーネルバージョンはMySQL 8.0 20220331以降です。
カーネルマイナーバージョンの確認またはアップグレード方法については、カーネルマイナーバージョンのアップグレードを参照してください。

適用シーン

フラッシュバック照会機能は、データベース運用保守プロセス中に誤操作が発生した後、過去データを迅速に照会するために使用されます。 この機能を使用する際には、以下の点に注意が必要です。
Innodb物理テーブルのみサポートされ、viewやその他のエンジンはサポートされず、last_insert_id()など実際の列に対応しない関数もサポートされません。
秒単位のフラッシュバック照会のみサポートされ、100%正確であることを保証しません。1秒以内に複数の変更があった場合、いずれかが照会される可能性があります。
フラッシュバック照会は、主キー(または GEN_CLUST_INDEX)のみサポートされます。
プリペアドステートメントおよびストアドプロシージャ内での使用はサポートされていません。
DDLはサポートされていません。テーブルに対してDDL(例:truncate table、このような操作はごみ箱からの復元を推奨します)を実行した場合、フラッシュバック照会で得られる結果が期待通りでない可能性があります。
同一ステートメント内で同一テーブルに対して複数のフラッシュバック照会時刻が指定された場合、現在の照会時刻から最も離れた時刻が選択されます。
マスターインスタンスとスレーブインスタンス間に時間差が存在するため、同じ時間を指定してフラッシュバック照会を行っても、得られる結果が異なる可能性があります。
フラッシュバック照会を有効化すると、undoログのクリーンアップが遅延し、メモリ使用量が増加します。特にアクセスが頻繁なインスタンスでは、Innodb_backquery_windowを大きすぎる値(900から1800の範囲内での設定を推奨)に設定することは避けてください。
データベースインスタンスが再起動またはクラッシュした場合、再起動またはクラッシュ前の履歴情報を照会できなくなります。指定された時間はサポート範囲内である必要があります(サポート範囲はステータス変数 Innodb_backquery_up_time および Innodb_backquery_low_time で確認でき、show status like '%backquery%'を実行してください)。

使用説明

フラッシュバック照会では新たなAS OF構文が提供されています。パラメータ設定でInnodb_backquery_enableパラメータをONに設定することでフラッシュバック照会機能が有効化され、特定の構文を使用して指定時点のデータを照会できます。構文は以下の通りです:
SELECT ... FROM <テーブル名>
AS OF TIMESTAMP <時刻>;
指定時刻の照会参考例
MySQL [test]> create table t1(id int,c1 int) engine=innodb;
Query OK, 0 rows affected (0.06 sec)

MySQL [test]> insert into t1 values(1,1),(2,2),(3,3),(4,4);
Query OK, 4 rows affected (0.01 sec)
Records: 4 Duplicates: 0 Warnings: 0

MySQL [test]> select now();
+---------------------+
| now() |
+---------------------+
| 2024-10-18 16:01:01 |
+---------------------+
1 row in set (0.00 sec)

MySQL [test]> delete from t1 where id=4;
Query OK, 1 row affected (0.00 sec)

MySQL [test]> select * from t1;
+------+------+
| id | c1 |
+------+------+
| 1 | 1 |
| 2 | 2 |
| 3 | 3 |
+------+------+
3 rows in set (0.00 sec)

MySQL [test]> select * from t1 as of timestamp '2024-10-18 16:01:01';
+------+------+
| id | c1 |
+------+------+
| 1 | 1 |
| 2 | 2 |
| 3 | 3 |
| 4 | 4 |
+------+------+
4 rows in set (0.00 sec)
履歴データによるテーブル作成参考例
create table t3 select * from t1 as of timestamp '2024-10-18 16:01:01';
テーブルへの履歴データ挿入参考例
insert into t4 select * from t1 as of timestamp '2024-10-18 16:01:01';

パラメータ説明

以下の表はフラッシュバック照会機能で設定可能なパラメータの説明を記載しています。
パラメータ名
パラメータ範囲
タイプ
デフォルト値
設定可能範囲
再起動の必要があるかどうか。
説明
Innodb_backquery_enable
グローバルパラメータ
Boolean
OFF
ON\\OFF
いいえ
フラッシュバック照会機能の有効化設定。
Innodb_backquery_window
グローバルパラメータ
Integer
900
1 - 86400
いいえ
フラッシュバック照会がサポートする時間範囲(単位:秒)です。このパラメータの値が大きいほど、フラッシュバック照会がサポートする履歴データの照会可能時間が長くなりますが、同時にundoテーブルスペースが占有するストレージ容量も増加します。
Innodb_backquery_history_limit
グローバルパラメータ
Integer
8000000
1 - 9223372036854476000
いいえ
undo履歴リストの長さ制限を超えると、Innodb_backquery_windowのトリガーによるpurgeが無視され、履歴リストの長さが設定値を下回るまで実行されません。

ヘルプとサポート

この記事はお役に立ちましたか?

フィードバック