tencent cloud

TencentDB for MySQL

소식 및 공지 사항
제품 동향
신규 사용자 가이드
제품 소개
제품 개요
제품 장점
응용 시나리오
데이터베이스 아키텍처
격리 정책
제품 기능 목록
데이터베이스 인스턴스
고가용성(멀티 가용존)
리전 및 가용존
자체개발 커널
TXSQL 커널 개요
기능적 특성
성능적 특성
보안적 특성
안정적 특성
구매 가이드
과금 개요
구매 방법
연장 안내
연체 안내
환불 안내
인스턴스 비용 조정 설명
백업 공간 과금 안내
시작하기
시작 개요
MySQL 인스턴스 생성
운영 가이드
사용 제한
운영 개요
인스턴스의 점검 관리
인스턴스 프로모션
인스턴스 확장
데이터베이스 프록시
데이터베이스 관리(DMC)
계정 관리
매개변수 설정
백업과 롤백
데이터 마이그레이션
네트워크 및 보안
모니터링 및 알람
로그 센터
태그
사례 튜토리얼
TencentDB for MySQL의 사용 규범
애플리케이션 구성 자동 재연결
MySQL 마스터 인스턴스 매개변수 수정의 영향
MyISAM에서 InnoDB로의 자동 변환 제한
TencentDB for MySQL을 위한 VPC 생성
TencentDB for MySQL를 통해 비즈니스 부하 능력 향상
2리전 3데이터센터 재해 복구 아키텍처 구축
읽기/쓰기 분리로 TencentDB for MySQL 성능 향상
DTS를 사용하여 InnoDB에서 RocksDB로 데이터 마이그레이션
웹 애플리케이션을 위한 LAMP 스택 구축
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
FAQs
과금 관련
백업 관련
롤백 관련
로그인
매개변수 수정
업그레이드 관련
계정 권한
성능 메모리
유지보수 관련 FAQ
데이터 마이그레이션
기능 특징
콘솔 관련
로그 관련
API 2.0에서 3.0으로 전환 가이드
Service Agreement
Service Level Agreement
Terms of Service
범용 참고
표준 및 인증
고객센터
용어집

플래시백 쿼리

PDF
포커스 모드
폰트 크기
마지막 업데이트 시간: 2026-03-11 10:14:59

기능 소개

데이터베이스 운영 과정에서 오작동이 발생할 수 있으며, 이러한 오작동은 비즈니스에 심각한 영향을 미칠 수 있습니다. 오작동으로 인해 비즈니스가 영향을 받을 경우 일반적인 복구 방법으로 롤백, 클로닝 등의 작업이 있지만, 소량의 데이터 변경 및 긴급 장애 복구의 경우 오류가 발생하기 쉽고 시간이 오래 걸리며, 데이터 양이 많을 경우 복구 시간이 통제 불가능합니다. TXSQL 팀은 Innodb 엔진에서 플래시백 쿼리 기능을 설계 및 구현하여 간단한 SQL 문으로 오작동 이전의 이력 데이터를 조회할 수 있도록 했습니다. 특정 SQL 구문을 통해 지정된 시점의 데이터를 조회함으로써 대량의 데이터 조회 및 복구 시간을 절약하고, 오작동 후 데이터를 신속히 복구하여 비즈니스의 빠른 운영 재개를 보장합니다.

지원 버전

커널 버전 MySQL 5.7 20230601 이상.
커널 버전 MySQL 8.0 20220331 이상.
커널 마이너 버전을 확인하거나 업그레이드하는 방법은 커널 마이너 버전 업그레이드를 참조하십시오.

적용 시나리오

플래시백 쿼리 기능은 데이터베이스 운영 과정에서 오작동 발생 후 이력 데이터를 빠르게 조회하기 위해 사용됩니다. 해당 기능 사용 시 다음 사항에 유의해야 합니다:
Innodb 물리 테이블만 지원하며 뷰 및 기타 엔진은 지원하지 않습니다. last_insert_id() 등 실제 열에 대응되지 않는 함수는 지원하지 않습니다.
초 단위 플래시백 쿼리만 지원하며 100% 정확성을 보장하지 않습니다. 1초 내에 여러 변경이 발생한 경우 그 중 아무 변경 사항이나 조회될 수 있습니다.
플래시백 쿼리는 기본 키(또는 GEN_CLUST_INDEX)만 지원합니다.
prepared statement 및 stored procedure에서 사용을 지원하지 않습니다.
DDL을 지원하지 않습니다. 테이블에 대해 DDL(예: truncate table, 이러한 경우 휴지통을 통한 복구 권장)을 진행한 경우 플래시백 쿼리 결과가 예상과 다를 수 있습니다.
동일한 문장에서 동일한 테이블에 여러 플래시백 쿼리 시간이 지정된 경우 현재 쿼리 시간과 가장 멀리 떨어진 시간을 선택합니다.
마스터-슬레이브 인스턴스 간 시간 차이로 인해 동일한 시간에 플래시백 쿼리를 수행해도 마스터와 슬레이브 인스턴스에서 얻은 결과가 다를 수 있습니다.
플래시백 쿼리 활성화 시 언두 로그 정리가 지연되고 메모리 점유율이 증가하므로, Innodb_backquery_window를 과도하게 설정(권장값 900~1800)하지 마십시오. 특히 비즈니스 접근이 빈번한 인스턴스에는 주의가 필요합니다.
데이터베이스 인스턴스가 재시작되거나 크래시(crash) 발생 시, 재시작 또는 크래시 이전의 이력 정보는 조회할 수 없습니다. 지정된 시간은 지원 범위 내에 있어야 합니다(지원 범위는 상태 변수 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
아니요
플래시백 쿼리가 지원하는 시간 범위로 단위는 초(second)입니다. 이 파라미터 값이 클수록 플래시백 쿼리가 지원하는 이력 데이터 조회 기간이 길어지지만, 동시에 undo 테이블스페이스가 차지하는 스토리지 공간도 증가합니다.
Innodb_backquery_history_limit
전역 파라미터
Integer
8000000
1 - 9223372036854476000
아니요
언두 이력 연결 리스트 길이 제한으로, 설정값을 초과하면 Innodb_backquery_window가 트리거하는 purge가 무시되며, 이력 연결 리스트 길이가 설정값 미만으로 낮아질 때까지 유지됩니다.

도움말 및 지원

문제 해결에 도움이 되었나요?

피드백