🙄

TiDB Essential と Point in Time Recovery

に公開

今までTiDB Cloudでは TiDB Starter (旧Serverless)Dedicatedの2種類でしたが、その中間に位置するEssentialがPreviewで使えるようになったと、中の人 @bohnen さんから連絡いただいたので早速使ってみました!

https://pingcap.co.jp/press-release/essential/

TiDB Essential とは

ちょうどStarterとDedicatedの間に位置する機能を備えているようです。

プロビジョニング済みRCUと即時スケールアップ
安定したパフォーマンスのため初期RCUレベルを選択し、需要が急増した際に数秒で引き上げることができます。プロビジョニング済みRCUにより、パフォーマンスの予測とコストの可視化が可能です。
オンデマンドなストレージ、スナップショット/バックアップオプション
ストレージを独立して拡張することが可能です。自動バックアップにはPITRが含まれ、デフォルトで最大30日間の保持期間を設定 (Starterプランのフリーミアムでのデフォルトは1日間)できます。
より多くのエンタープライズ機能
監査ログ、より豊富なアプリケーション内メトリクスとモニタリング、パブリックおよびプライベート接続、データのインポート、変更データキャプチャのためのTiCDC (近日提供予定) をご利用いただけます。ウェブコンソールに組み込まれたデータ移行 (DM) 機能も追加され、これはDedicatedプランで提供されている機能と同様です。
利用可能リージョン
Starter (AWS上) で利用可能な5つのリージョンすべてが有効化されます。

あらかじめRCUをしていてキャパシティを確保しつつStarterより高いスケールが可能なようです。StarterにはなかったPITR(Point-in-Time-Recovery)をサポートしているのはテストや開発には嬉しいです。

PITR (Point-in-Time-Recovery)

Starterでは手動のバックアップ取得は行えませんでした。バックアップ取得は1日1回指定した時間のみ行われます。

このため大量のデータ操作を行うテストはデータを戻す場合、一度データをExportして退避し、テスト後データをImportする、等が必要でしたが、Essentialでは最大30日間指定した任意の秒でデータを戻せるようになっています。

さっそくやってみる

1. Essential クラスターの起動

Essentialを指定します。

RCUを指定します。

最低が2000で100づつ指定できます。
次にHigh Availability オプションです。スタンドアローンでの構築は行えずZone冗長かRegional冗長を選択します。

2. 接続とテスト用SQL実行

Essentialと同じように数秒から数十秒で起動します。Essentialと異なりSQL Editorが使えないようです。

mysql clientから接続します。接続方法はEssentialと同じです。Connectボタンをクリックすると接続パラメータが画面に表示されます。

テスト用にSQLを書き込みデータ操作が行えることを確認します。

-- データベース作成
CREATE DATABASE sampledb;

-- データベース選択
USE sampledb;

-- テーブル作成
CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50),
    age INT
);

-- データ挿入
INSERT INTO users (name, age) VALUES
('Alice', 25),
('Bob', 30),
('Charlie', 28);

-- 確認
SELECT * FROM users;
+----+---------+------+
| id | name    | age  |
+----+---------+------+
|  1 | Alice   |   25 |
|  2 | Bob     |   30 |
|  3 | Charlie |   28 |
+----+---------+------+
3 rows in set (0.02 sec)

3. PITR

コンソール左ペインからBackupを選択し、Restoreをクリックします。

Point-in-Time Restoreを指定して戻したい時間を選びます。

リストアは新しく新規に作られたClusterとして復元されます。このClusterはリストア元とは別に存在し新たなRCUや冗長化オプションを選択できます。

Restoreが完了するとClusterがもう一つ起動します。

接続してSQLを実行すると先ほどのデータが消えていることがわかります。

mysql> show tables;
Empty set (0.02 sec)

Discussion