復元
前提条件
- リストア操作を実行するためのadministrator権限があることを確認してください。
- バックアップを保存する既存のRepositoryがあることを確認してください。ない場合は、Repositoryを作成しbackupを実行する手順に従ってください。
- リストアに利用可能な有効なbackupスナップショットがあることを確認してください。
1. スナップショットのバックアップタイムスタンプを取得する
以下のSQL文を使用して、example_repoという名前のRepository内の既存のバックアップを表示できます。
mysql> SHOW SNAPSHOT ON example_repo;
+-----------------+---------------------+--------+
| Snapshot | Timestamp | Status |
+-----------------+---------------------+--------+
| exampledb_20241225 | 2022-04-08-15-52-29 | OK |
+-----------------+---------------------+--------+
1 row in set (0.15 sec)
2. スナップショットからの復元
オプション1: 現在のデータベースへのスナップショット復元
以下のSQL文は、example_repoという名前のRepositoryから、タイムスタンプ2022-04-08-15-52-29を持つrestore_label1というラベルのスナップショットを現在のデータベースに復元します。
RESTORE SNAPSHOT `restore_label1`
FROM `example_repo`
PROPERTIES
(
"backup_timestamp"="2022-04-08-15-52-29"
);
オプション2: 指定されたデータベースへのスナップショット復元
以下のSQL文は、example_repoという名前のRepositoryから、タイムスタンプ2022-04-08-15-52-29を持つrestore_label1というラベルのスナップショットをdestdbという名前のデータベースに復元します。
RESTORE SNAPSHOT destdb.`restore_label1`
FROM `example_repo`
PROPERTIES
(
"backup_timestamp"="2022-04-08-15-52-29"
);
オプション3: スナップショットから単一テーブルを復元
example_repo内のスナップショットからテーブルbackup_tblを現在のデータベースに復元します。スナップショットのラベルはrestore_label1、タイムスタンプは2022-04-08-15-52-29です。
RESTORE SNAPSHOT `restore_label1`
FROM `example_repo`
ON ( `backup_tbl` )
PROPERTIES
(
"backup_timestamp"="2022-04-08-15-52-29"
);
オプション4: スナップショットからのパーティションとテーブルの復元
バックアップスナップショットsnapshot_2から、スナップショットラベルタイムスタンプ"2018-05-04-17-11-01"を使用して、テーブルbackup_tblのパーティションp1とp2、およびテーブルbackup_tbl2を現在のデータベースexample_db1に復元し、new_tblにリネームします。
RESTORE SNAPSHOT `restore_label1`
FROM `example_repo`
ON
(
`backup_tbl` PARTITION (`p1`, `p2`),
`backup_tbl2` AS `new_tbl`
)
PROPERTIES
(
"backup_timestamp"="2022-04-08-15-55-43"
);
3. リストアジョブの実行ステータスを確認する
mysql> SHOW RESTORE\G;
*************************** 1. row ***************************
JobId: 17891851
Label: snapshot_label1
Timestamp: 2022-04-08-15-52-29
DbName: default_cluster:example_db1
State: FINISHED
AllowLoad: false
ReplicationNum: 3
RestoreObjs: {
"name": "snapshot_label1",
"database": "example_db",
"backup_time": 1649404349050,
"content": "ALL",
"olap_table_list": [
{
"name": "backup_tbl",
"partition_names": [
"p1",
"p2"
]
}
],
"view_list": [],
"odbc_table_list": [],
"odbc_resource_list": []
}
CreateTime: 2022-04-08 15:59:01
MetaPreparedTime: 2022-04-08 15:59:02
SnapshotFinishedTime: 2022-04-08 15:59:05
DownloadFinishedTime: 2022-04-08 15:59:12
FinishedTime: 2022-04-08 15:59:18
UnfinishedTasks:
Progress:
TaskErrMsg:
Status: [OK]
Timeout: 86400
1 row in set (0.01 sec)