0

So this is essentially the same as this RDS question: Should I stick only to AWS RDS Automated Backup or DB Snapshots?

Dynamo now has Snapshots and PITR continuous backups.

In RDS it seems PITR backups will fail you if you delete the actual DB instance. What happens if I delete my dynamo table accidentally? Will I similarly loose all the PITR backups?

I'm thinking scheduling my own snapshots is only necessary to guard against accidental table deletion or if I want backups old than 35 days. Is this reasoning correct?

Also, how does dynamo achieve PITR without traditional relational transaction logs?

red888
  • 27,709
  • 55
  • 204
  • 392

1 Answers1

1

Is this reasoning correct?

Yes, for the most part.

There appears to be a safety net for dropped tables...

If you need to recover a deleted table that had point in time recovery enabled, you need to contact AWS Support to restore that table within the 35-day recovery window

https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/pointintimerecovery_beforeyoubegin.html

...it seems foolhardy to assume that nothing can go wrong, here.

For example:

Important

If you disable point-in-time recovery and later re-enable it on a table, you reset the start time for which you can recover that table

https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/PointInTimeRecovery_Howitworks.html

...and, of course, as a matter of practice, the privileges required for deleting a table should be granted sparingly.

As a long-time DBA, I would also assert that if you like your data, you never entrust any single entity with the data. For data that isn't ephemeral and can't be reproduced from another source, the data needs to be somewhere else, as well.

How does dynamo achieve PITR without traditional relational transaction logs?

There must internally be some type of "transaction" logs -- and we already know that the necessary underpinnings are present, otherwise how would DynamoDB Streams and Global Tables be possible? Theoretically, you could roll your own PITR by capturing everything using Streams (although that seems unlikely to be worth the effort)... but it would be a viable mechanism for off-site/off-platform backup.

Michael - sqlbot
  • 169,571
  • 25
  • 353
  • 427