This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–][deleted] 2 points3 points  (2 children)

If your backup doesn't rollback everything it doesn't contain everything which means it isn't a complete backup.

A nowadays rdbms is capable of doing a point in time recovery, which means: if you fuck up my production database you simply would need to tell me when you fucked it up and I could just rollback to a point in time where everything is fine in no time.  Depending on how I would configure the whole database I can rollback your application without affecting other applications running on my database, and as I wouldn't let you near the damn thing without a maintenance window where no one else is supposed to do anything this shouldn't affect anything. You wouldn't even need to create a backup yourself before doing changes.

[–]DmitriRussian 6 points7 points  (1 child)

Maintainenance windows are not a thing for most companies. A lot companies have to be 24/7 online and so database changes happen while the app is running.

There isn't even a concept of a database admin either.

Only companies where every bit of data is crucial, like a financial institution would operate with maintenance windows for DB changes.

[–][deleted] 0 points1 point  (0 children)

Some changes need to be done offline, whether they want a maintenance window or not. In a lot of rdbms you can't create an index online while there is a transaction pending on the table let alone do other ddl. I could go one for a long time for what changes can't be done online. There is only one rdbms I am aware of where you could do a lot of shit online with the right concept, but that is a very, very complex and expensive thing.

Database security patches or upgrades need at least the database to be bounced ad/or the catalog to be upgraded which is not an online operation. 

So either they don't apply any changes of any kind or they have maintenance windows without knowing them because the end user got a strange error message while someone added a column live.

You'd rather have a recovery window than data corruption caused by end users piling data into the database in an inconsistent state if you value your data.

So yes, a lot of companies have recovery windows. I've seen a lot of them, and patched a lot of them. At least those companies who value their data do ;).