Understanding Snapshot IDs vs Restoration IDs Jim KnicelyDecember 21, 2025 When working with YugabyteDB YSQL snapshots, itβs common to see two different UUIDs and wonder:β Which snapshot did I restore?β What is this restoration UUID used for?β How do I see details of a restore operation? This tip walks through a complete, end-to-end example:1. Create data2. Take multiple snapshots3. Restore a snapshot4. Correlate Snapshot UUIDs β Restoration UUIDs5. Verify the restore π§ Key Concept (TL;DR) UUID Type What it Represents Snapshot UUID The snapshot artifact (point-in-time copy of data). Restoration UUID A restore operation that applies a snapshot (each restore generates a new UUID). π Each restore creates a new Restoration UUID, even if you restore the same snapshot multiple times. π§ͺ Step 0: Setup Variables export YB_HOME=/root/yugabyte-2025.2.0.0 export YB_MASTER="127.0.0.1:7100" π§ͺ Step 1: Create a Test Table CREATE TABLE north_pole_accounts ( id INT PRIMARY KEY, name TEXT, gift_count INT ); Insert some festive sample data: INSERT INTO north_pole_accounts VALUES (1, 'Santa Claus', 1000000), (2, 'Mrs. Claus', 500000), (3, 'Rudolph', 250000), (4, 'Dasher', 200000), (5, 'Blitzen', 200000); Verify: SELECT * FROM north_pole_accounts ORDER BY id; Example: yugabyte=# SELECT * FROM north_pole_accounts ORDER BY id; id | name | gift_count ----+-------------+------------ 1 | Santa Claus | 1000000 2 | Mrs. Claus | 500000 3 | Rudolph | 250000 4 | Dasher | 200000 5 | Blitzen | 200000 (5 rows) πΈ Step 2: Take the First Snapshot $YB_HOME/bin/yb-admin \ --init_master_addrs "$YB_MASTER" \ create_database_snapshot ysql.yugabyte Example: [root@localhost ~]# $YB_HOME/bin/yb-admin \ --init_master_addrs "$YB_MASTER" \ create_database_snapshot ysql.yugabyte Started snapshot creation: 8ecc6226-e5f2-4111-b8eb-e115b5f104a8 This UUID is the Snapshot UUID. βοΈ Step 3: Modify Data and Take Another Snapshot Update the data: UPDATE north_pole_accounts SET gift_count = gift_count - 10000 WHERE name = 'Santa Claus'; Take a second snapshot of the database: $YB_HOME/bin/yb-admin \ --init_master_addrs "$YB_MASTER" \ create_database_snapshot ysql.yugabyte Example: [root@localhost ~]# $YB_HOME/bin/yb-admin \ --init_master_addrs "$YB_MASTER" \ create_database_snapshot ysql.yugabyte Started snapshot creation: 751cad5d-3d71-4d0f-92eb-4945d459a5fe π Step 4: List All Snapshots $YB_HOME/bin/yb-admin \ --init_master_addrs "$YB_MASTER" \ list_snapshots Example: [root@localhost ~]# $YB_HOME/bin/yb-admin \ --init_master_addrs "$YB_MASTER" \ list_snapshots Snapshot UUID State Creation Time 8ecc6226-e5f2-4111-b8eb-e115b5f104a8 COMPLETE 2025-12-21 23:36:02.687373 751cad5d-3d71-4d0f-92eb-4945d459a5fe COMPLETE 2025-12-21 23:40:10.805329 No snapshot restorations π Step 5: Restore a Snapshot Restore the first snapshot (before Santaβs gift count changed): $YB_HOME/bin/yb-admin \ --init_master_addrs "$YB_MASTER" \ restore_snapshot 8ecc6226-e5f2-4111-b8eb-e115b5f104a8 Example: [root@localhost ~]# $YB_HOME/bin/yb-admin \ --init_master_addrs "$YB_MASTER" \ restore_snapshot 8ecc6226-e5f2-4111-b8eb-e115b5f104a8 Started restoring snapshot: 8ecc6226-e5f2-4111-b8eb-e115b5f104a8 Restoration id: 3a837c02-01b5-4f08-a6b4-7c51103b10c8 π― This UUID is the Restoration UUID. π Step 6: List Snapshots Again (Notice Restorations) $YB_HOME/bin/yb-admin \ --init_master_addrs "$YB_MASTER" \ list_snapshots Example: [root@localhost ~]# $YB_HOME/bin/yb-admin \ --init_master_addrs "$YB_MASTER" \ list_snapshots Snapshot UUID State Creation Time 8ecc6226-e5f2-4111-b8eb-e115b5f104a8 COMPLETE 2025-12-21 23:36:02.687373 751cad5d-3d71-4d0f-92eb-4945d459a5fe COMPLETE 2025-12-21 23:40:10.805329 Restoration UUID State 3a837c02-01b5-4f08-a6b4-7c51103b10c8 RESTORED What this tells us: β Two Snapshot UUIDs exist:β 8ecc6226-e5f2-4111-b8eb-e115b5f104a8β 751cad5d-3d71-4d0f-92eb-4945d459a5feβ One restore operation has occurred:β Restoration UUID 3a837c02-01b5-4f08-a6b4-7c51103b10c8 At this point, it is not yet obvious which snapshot was restored. π Step 7: Correlate Restoration UUID β Snapshot UUID This is the most important command in this tip. $YB_HOME/bin/yb-admin \ --init_master_addrs "$YB_MASTER" \ list_snapshot_restorations \ 3a837c02-01b5-4f08-a6b4-7c51103b10c8 Example: [root@localhost ~]# $YB_HOME/bin/yb-admin \ --init_master_addrs "$YB_MASTER" \ list_snapshot_restorations \ 3a837c02-01b5-4f08-a6b4-7c51103b10c8 { "restorations": [ { "id": "3a837c02-01b5-4f08-a6b4-7c51103b10c8", "snapshot_id": "8ecc6226-e5f2-4111-b8eb-e115b5f104a8", "state": "RESTORED" } ] } β This explicitly shows:β Which snapshot was restoredβ The final state of the restore operation π Step 8: List All Restorations (Optional) $YB_HOME/bin/yb-admin \ --init_master_addrs "$YB_MASTER" \ list_snapshot_restorations This is useful when:β Multiple restores have been performedβ You are auditing operational historyβ You are investigating failed restores β Step 9: Verify the Restored Data SELECT * FROM north_pole_accounts; You should see data exactly as it existed at the time snapshot 8ecc6226-e5f2-4111-b8eb-e115b5f104a8 was taken. Example: yugabyte=# SELECT * FROM north_pole_accounts ORDER BY id; id | name | gift_count ----+-------------+------------ 1 | Santa Claus | 1000000 2 | Mrs. Claus | 500000 3 | Rudolph | 250000 4 | Dasher | 200000 5 | Blitzen | 200000 (5 rows) β οΈ Important Notes & Gotchas β YSQL snapshots are database-level onlyβ Table-level snapshots are not supported for YSQLβ Restoration UUIDs are informationalβ They are not reusedβ They are not passed into restore_snapshotβ Each restore generates a new Restoration UUIDβ Restoration UUIDs are essential for auditing and troubleshooting π Reference YugabyteDB yb-admin backup and snapshot commands π― Summary β Snapshot UUID = the stored point-in-time database snapshotβ Restoration UUID = a restore operationβ Use list_snapshot_restorations to correlate restores to snapshotsβ YSQL snapshots operate at the database levelβ Each restore is tracked independently for observability Have Fun!